From 5f63146bd1c3b863c79a313f48104ca0a9611d3f Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Fri, 30 Apr 2010 13:12:23 +0100 Subject: [PATCH 01/20] Updated manual --- doc/glm-manual.doc | Bin 74752 -> 80384 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/glm-manual.doc b/doc/glm-manual.doc index a5cc9337e049719bd19cce568e7077e2dd30f7e3..8cb617b6b990bfb50e962c310f335a50a265f71c 100644 GIT binary patch delta 12374 zcmcKA30zfW-oWwaTrMCAhzpB=dO;LaHWf)h!vz;yP*VfMGJ*?NMIgXTZMrUvm6h8w zN{cm_nWi;UG8Hq~WTVZ{OyyRVYv!9v%d||(l=bHO`=5J{T*>C0=KZ_}zV|unv!8RG zbM9TzY+v%FeNB4Yeabt9DfIxe27b7B@uIBVfQDzL{LQcxr0Z_B9wD_#b;>eK1xb3X zy_>GI^>>$Zs7w<2&RgqRhn;1GcUt5i#C+gpcQM=M1<>Ip)b{+%#^{dVUm<>J7k3GI|x#){X8AY4zeb!uzX zLEIn~BiyZ1Y`rW8`cBs2R%n&T+DDd;v2dE>A_$)v>e8YXG@XyS$^7-SI`8Uug5zO`Y z$>z7pVMXv$p_N~&=lg~U4y7KZQr@?>oEg5`Id+`6gGAD5!=>exc9XqYD&|M)8+Qa& z_(xP#*E`DRSC!V!uC5BnNF9*saFtY+>*SEe;4u>>I%;aGZ=PM|tkeFX@gXHuWtaA? z(@#97)%dEUd3BDV6y&$2BE&^{lTekrMV! zcFdkvQsI-+!z!-$xn}t>8IC3b=Iq5BK0#-k+Bt(^RlvTc9v!& z^-E1pc9ndf9ggzLT`&1&Sh&T7&)KQ#p< z%qyK5^;AbuCzg?B!j+E;1EzAW9Vio9K3L}MT#7GJw1v`e5 z=+|DUiI{}RC`B309Ng2mW8pyC*2>tTZNL@KAsP7dwhk6d1H#VqE9aJ}SSwEfK z+235DU&`&SAImOwcWR_8N4@3pC;tIxU8Y-Dw-B4clzJ3(9h9oa9k>${J1Uir=h1|B za0G`sDfK4apo4v8Rf2@)tp)dGOaFS|ly#7VZ~HEs`i~dP^f~%JkHMSte;7ee@8Jah zA_o1^RRi@SBLn*7 zkcIJ>fQgulnW%x)%wIA8J=)T&VU>LJLT^}Yzk&G&uo0WE8QbtAo`uyf?xa7QIryi8 zf7&S@t^Up&eCXiHhgKe3Oz8PLb5Q>_H%({eOxCA{ch~RcICODdqJASQ!>v*zuDj5H z`>++;kWPQg#&leZa=1{7Td)W#aW7WkVSEq&aHVd>dOVEZ;Si4E1AK@t;m2tCv$PYh z^Vf7@Thoaq?F~GZJ49i^!4AZcV^I3z9K zG@4m{6_U;|NLpv`Ad8s?$~^=QD^1G_x`n^!H| zysB*B__AH&%j9aH*V}ux&RC%I4YS}E*N2)JYbk_OClyIY^H!&J=L80LR#KN{AwAo@ zcO8i}Juox>~)y{*=Z^YO5C&tHcE5my@jazu=Ux-Cm980g7tli@h_3m-c zX-}`Jn-?LqY{j#Q`QO6Mu^rG62kG%QZvVDs0N*JkL5iQ)R)?6&&T^iKNlq~3b(E3bN#_9_%oD)*KdeJJPJ^V<+vRgaSY~BfI<}a;D(Q{mCy7^ z<870d8Ez@X)$mR4NtQpsr|3a?39$0;Tjrav7l-gRE<%y60UPW%|HiYMR=HPIt#WUg zkvAi6P~MDZ-;iNpT!gFRG~1;CufD6OlP)Zd*JGz9>HDUZ>l(sU`Tg~ZoD99cD9s%% zk;Op@ScGCoL8XA17z8P(6!1FC!WJA!;Kq(qcn=>Uq^DA$=!7!|&itXpgG=WuoqQlm zd8WSB9V{e*k-TScZs%dju4cAbdOd+&Q`AMbFZhdIcTK81TIr2N88@hK$%CZ*xKH|$ zUN@v74UnhXt))|_cypT! zG_8@5)ZVV)iDoT6ogJO)8AV>|rz+X(!``90Cr+#HNuO>N|D_w;mB*8M|Mf*PVx$ZU zaT{*O>o|xXa8)vo&)9+kIEYht4=ROrgAEh$(J}ek*R=2PM^`T_FUT#B6EL`^-yCVO zaMyLYee}bH(E+iZ+1*p40usElIgYSC=4?y3^wOdjy}l&Ph}SRYM0HU1s4#VE$bZH#cYv?t9)c08|(T3*^s zZ)3>y&(qCSPpe_CuxHC|sXo2r--$Ig%{ST~y@Kj%=CwZ8lUHxo>*^<6aCeTww+lKv zU2x5;p5|6MXh+Y%)gv!EINGf`N=2>RXDiq$oCkH8Q&=|}dC_i9JO11T^3$xz-r&azqE4q5?n4gtQ z>ug9e?N3tfFJTq)f^UDhe1SLYe>K{*Tv+^emhZRO`Uf-~bnVDB@^sCP%J%PYxJ%XZ zSEI62T0_5Jqf=0-s!+38mD+Hzoe|g1vykRpxj;G9jVe`@n#(yHH&j(KU&#f3o+{xm zml;dHY!-&9I#oqjL+E0+dX-H$RE<@m)Nqx{Qk^Pixt<6X>9p-Jw)d32X~$fnrs41H zj3S-BJ=%6o))e^j$gCn7=Cw0Ycu#if)ejeb`-e9=+_Ow=SL2^(H(EBN$?ir9MwIn`=oR^YR3SXk8t9~j|f4IG?;rd_q8n>gT-s3;YZ-s40quI|d*s zjG}jXtW0%&Y=P>Npo$ZW;7fP$dPV`#ss)UELKsBIm%RKO;bO!0kw&Z@z5BSkyB|*p z$V4utVLFcCJC6MxtNgj(BR7EWG_VnkIErKN52Q0<5+qT~8IQGhlQ1*C$FwjK#+#70!+}@_jqNyyLpXtV5ycDLXiUN)EXE4l ziM#M1aL z#W|cu9FM+7aSRvm9U^(mU5j;S#;c&iDg%$hkEc*OIwL%e_D^Oe1zqA9JR=8Fa1D;* z1irwRxT6Qviyv?i2NGx&SdXuY=e1Q>jcv&4MGYb!-4n?N`am8SG#*K$nolru5?|t4 z&Xb~~#-|Sq2-GSweiKbdigh2zd6%d z3b(lxlbkj`r#Jpo8~;?5{)-ZJzpRLlP$J*b6(#Ag=19HzRA64-ohsen)+UnyX(b!d zOPT{)Z=+Sc(-OmXo9rK}bDCoeDxf(=UpUoH=QVfu*O zfxg=$P1)|5mIQXtvrfh6RPqogpWV!z1AGd`HZXL6s zbKZ-YA>|Ee6&)8A_1TW2W(mPftBr+azY6@)%qRsc3%9)LCzA?rtZAj{4J6 z5!79lEQEU(1_hWYM9E^TS@BWcj7WsSGcD22yc^+mmkZseGr=gGA&) zc01mIT)<{vH6C|xaf3nW3?k0QJ&@N?-(V0Wm21n3y(nT=awiuTC*+lioPDq07`{R> zxta!k>-XB}c&Z4|3bP4%ed+a@%_zzoIw%8vgW#V5HFQbTipYI@B+x^Wa0>6EC`suz&MekT&!+1WXC~-p&USXkawQWojYT1*a3Q!39sRhU zA^}N|J~SLnwDSx2$lHuzG)pY{LYmWRLaXVdsT>%F(Xg7Vp*{WNAy%Z)ZW*we!fJvT zsyP9ZQG{Eu3|5t|ZH|OvZ@$IZ^7t*-=V1BHu@Tj4P6nSTHxE`9hZ#!@70*_&f8JoDkPayGGFhRG zo?%Y%#IauB-HV8@pxnH}tfx!vaQ<*2pCJoveP~)3$o&*I9OHjmFQu4l}eP zWPF8&L+3srUi}^oIXjs(Ma2vG^7rGjYj1>*@yRo$D`LDVe?fm}- DH#97c delta 9483 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 Date: Fri, 30 Apr 2010 13:14:39 +0100 Subject: [PATCH 02/20] Updated manual --- doc/glm-manual.pdf | Bin 139122 -> 134346 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/glm-manual.pdf b/doc/glm-manual.pdf index a23a28b4e2666f40b9152719a27c6c73de20b102..639d25b8709a3aa2746f83a8ecb74c35b39f11c1 100644 GIT binary patch delta 114702 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� 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˜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 z°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 From 6210685f5bb2bf8bdfbd2ef8f12d1268d63d8028 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Fri, 30 Apr 2010 13:20:45 +0100 Subject: [PATCH 03/20] Updated readme --- copying => copying.txt | 2 +- readme => readme.txt | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) rename copying => copying.txt (96%) rename readme => readme.txt (89%) diff --git a/copying b/copying.txt similarity index 96% rename from copying rename to copying.txt index b4905ab7..9c8fbf98 100644 --- a/copying +++ b/copying.txt @@ -1,6 +1,6 @@ The MIT License -Copyright (c) 2005 - 2009 G-Truc Creation +Copyright (c) 2005 - 2010 G-Truc Creation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/readme b/readme.txt similarity index 89% rename from readme rename to readme.txt index 0a4220d1..09edee00 100644 --- a/readme +++ b/readme.txt @@ -1,3 +1,29 @@ +============================= +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 +----------------------------- +- Based on GLSL 4.00 specification +- Added the new core functions +- Added some implicit conversion support + +============================= +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 +----------------------------- +- Removed deprecated features +- Internal redesign + ============================= GLM 0.8.4.4 final: 2010-01-25 ----------------------------- From 0fb7a32c099e7b2be95e8ed343e436670a73a23f Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Fri, 30 Apr 2010 13:25:38 +0100 Subject: [PATCH 04/20] Removed generated html --- doc/html/a00001_source.html | 346 ----- doc/html/a00002_source.html | 1112 -------------- doc/html/a00003_source.html | 192 --- doc/html/a00004_source.html | 105 -- doc/html/a00005_source.html | 106 -- doc/html/a00006_source.html | 71 - doc/html/a00007_source.html | 128 -- doc/html/a00008_source.html | 91 -- doc/html/a00009_source.html | 81 -- doc/html/a00010_source.html | 71 - doc/html/a00011_source.html | 199 --- doc/html/a00012_source.html | 81 -- doc/html/a00013_source.html | 68 - doc/html/a00014_source.html | 92 -- doc/html/a00015_source.html | 76 - doc/html/a00016_source.html | 81 -- doc/html/a00017_source.html | 95 -- doc/html/a00018_source.html | 133 -- doc/html/a00019_source.html | 54 - doc/html/a00020_source.html | 71 - doc/html/a00021_source.html | 107 -- doc/html/a00022_source.html | 97 -- doc/html/a00023_source.html | 83 -- doc/html/a00024_source.html | 86 -- doc/html/a00025_source.html | 125 -- doc/html/a00026_source.html | 80 - doc/html/a00027_source.html | 83 -- doc/html/a00028_source.html | 76 - doc/html/a00029_source.html | 80 - doc/html/a00030_source.html | 106 -- doc/html/a00031_source.html | 86 -- doc/html/a00032_source.html | 88 -- doc/html/a00033_source.html | 161 --- doc/html/a00034_source.html | 81 -- doc/html/a00035_source.html | 52 - doc/html/a00036_source.html | 109 -- doc/html/a00037_source.html | 366 ----- doc/html/a00038_source.html | 71 - doc/html/a00039_source.html | 73 - doc/html/a00040_source.html | 48 - doc/html/a00041_source.html | 44 - doc/html/a00042_source.html | 101 -- doc/html/a00043_source.html | 70 - doc/html/a00044_source.html | 91 -- doc/html/a00045_source.html | 87 -- doc/html/a00046_source.html | 29 - doc/html/a00047_source.html | 72 - doc/html/a00048_source.html | 63 - doc/html/a00049_source.html | 29 - doc/html/a00050_source.html | 45 - doc/html/a00051_source.html | 66 - doc/html/a00052_source.html | 65 - doc/html/a00053_source.html | 70 - doc/html/a00054_source.html | 29 - doc/html/a00055_source.html | 72 - doc/html/a00056_source.html | 73 - doc/html/a00057_source.html | 121 -- doc/html/a00058_source.html | 61 - doc/html/a00059_source.html | 101 -- doc/html/a00060_source.html | 115 -- doc/html/a00061_source.html | 83 -- doc/html/a00062_source.html | 107 -- doc/html/a00063_source.html | 95 -- doc/html/a00064_source.html | 85 -- doc/html/a00065_source.html | 207 --- doc/html/a00066_source.html | 70 - doc/html/a00067_source.html | 76 - doc/html/a00068_source.html | 140 -- doc/html/a00069_source.html | 71 - doc/html/a00070_source.html | 73 - doc/html/a00071_source.html | 87 -- doc/html/a00072_source.html | 130 -- doc/html/a00073_source.html | 82 -- doc/html/a00074_source.html | 74 - doc/html/a00075_source.html | 82 -- doc/html/a00076_source.html | 67 - doc/html/a00077_source.html | 80 - doc/html/a00078_source.html | 193 --- doc/html/a00079_source.html | 175 --- doc/html/a00080_source.html | 108 -- doc/html/a00081_source.html | 70 - doc/html/a00082_source.html | 99 -- doc/html/a00083_source.html | 115 -- doc/html/a00084_source.html | 376 ----- doc/html/a00085_source.html | 29 - doc/html/a00086_source.html | 29 - doc/html/a00087_source.html | 168 --- doc/html/a00088_source.html | 145 -- doc/html/a00089_source.html | 87 -- doc/html/a00090_source.html | 95 -- doc/html/a00091_source.html | 102 -- doc/html/a00092_source.html | 84 -- doc/html/a00093_source.html | 111 -- doc/html/a00094_source.html | 132 -- doc/html/a00095_source.html | 61 - doc/html/a00096_source.html | 92 -- doc/html/a00097_source.html | 116 -- doc/html/a00098_source.html | 112 -- doc/html/a00099_source.html | 136 -- doc/html/a00100_source.html | 233 --- doc/html/a00101_source.html | 227 --- doc/html/a00102_source.html | 223 --- doc/html/a00103_source.html | 224 --- doc/html/a00104_source.html | 232 --- doc/html/a00105_source.html | 224 --- doc/html/a00106_source.html | 226 --- doc/html/a00107_source.html | 231 --- doc/html/a00108_source.html | 237 --- doc/html/a00109_source.html | 223 --- doc/html/a00110_source.html | 210 --- doc/html/a00111_source.html | 56 - doc/html/a00112_source.html | 261 ---- doc/html/a00113_source.html | 282 ---- doc/html/a00114_source.html | 280 ---- doc/html/a00115_source.html | 290 ---- doc/html/a00116_source.html | 75 - doc/html/a00117_source.html | 86 -- doc/html/a00118_source.html | 84 -- doc/html/a00119_source.html | 107 -- doc/html/a00120_source.html | 243 ---- doc/html/a00121_source.html | 79 - doc/html/a00122_source.html | 55 - doc/html/a00123_source.html | 171 --- doc/html/a00124.html | 60 - doc/html/a00125.html | 52 - doc/html/a00126.html | 73 - doc/html/a00127.html | 577 -------- doc/html/a00128.html | 220 --- doc/html/a00129.html | 301 ---- doc/html/a00130.html | 161 --- doc/html/a00132.html | 355 ----- doc/html/a00133.html | 313 ---- doc/html/a00134.html | 58 - doc/html/a00135.html | 299 ---- doc/html/a00136.html | 611 -------- doc/html/a00137.html | 70 - doc/html/a00138.html | 224 --- doc/html/a00139.html | 299 ---- doc/html/a00140.html | 596 -------- doc/html/a00142.html | 77 - doc/html/a00143.html | 283 ---- doc/html/a00144.html | 189 --- doc/html/a00145.html | 41 - doc/html/a00146.html | 337 ----- doc/html/a00147.html | 148 -- doc/html/a00148.html | 407 ------ doc/html/a00149.html | 324 ----- doc/html/a00150.html | 372 ----- doc/html/a00151.html | 66 - doc/html/a00152.html | 363 ----- doc/html/a00153.html | 82 -- doc/html/a00154.html | 263 ---- doc/html/a00155.html | 205 --- doc/html/a00156.html | 139 -- doc/html/a00157.html | 107 -- doc/html/a00158.html | 373 ----- doc/html/a00159.html | 139 -- doc/html/a00160.html | 41 - doc/html/a00161.html | 83 -- doc/html/a00162.html | 121 -- doc/html/a00163.html | 487 ------- doc/html/a00164.html | 82 -- doc/html/a00165.html | 154 -- doc/html/a00166.html | 229 --- doc/html/a00167.html | 172 --- doc/html/a00168.html | 220 --- doc/html/a00169.html | 41 - doc/html/a00170.html | 64 - doc/html/a00171.html | 121 -- doc/html/a00172.html | 307 ---- doc/html/a00173.html | 153 -- doc/html/a00174.html | 271 ---- doc/html/a00175.html | 67 - doc/html/a00176.html | 67 - doc/html/a00177.html | 76 - doc/html/a00178.html | 121 -- doc/html/a00179.html | 91 -- doc/html/a00180.html | 421 ------ doc/html/a00181.html | 259 ---- doc/html/a00182.html | 171 --- doc/html/a00183.html | 307 ---- doc/html/a00184.html | 241 --- doc/html/a00185.html | 41 - doc/html/a00186.html | 46 - doc/html/a00187.html | 481 ------ doc/html/a00188.html | 82 -- doc/html/a00189.html | 109 -- doc/html/a00190.html | 81 -- doc/html/a00191.html | 207 --- doc/html/a00192.html | 207 --- doc/html/a00193.html | 100 -- doc/html/a00194.html | 142 -- doc/html/a00195.html | 91 -- doc/html/a00196.html | 142 -- doc/html/a00197.html | 713 --------- doc/html/a00198.html | 210 --- doc/html/a00199.html | 123 -- doc/html/a00200.html | 331 ----- doc/html/a00201.html | 385 ----- doc/html/a00202.html | 41 - doc/html/a00203.html | 41 - doc/html/a00204.html | 196 --- doc/html/a00205.html | 41 - doc/html/a00206.html | 41 - doc/html/a00207.html | 67 - doc/html/a00208.html | 388 ----- doc/html/a00209.html | 402 ----- doc/html/a00210.html | 667 --------- doc/html/a00211.html | 152 -- doc/html/a00212.html | 178 --- doc/html/a00213.html | 148 -- doc/html/a00214.html | 304 ---- doc/html/a00215.html | 41 - doc/html/a00216.html | 209 --- doc/html/a00217.html | 48 - doc/html/a00218.html | 109 -- doc/html/a00221.html | 643 -------- doc/html/a00222.html | 41 - doc/html/a00223.html | 96 -- doc/html/a00224.html | 41 - doc/html/doxygen.css | 498 ------- doc/html/doxygen.png | Bin 1281 -> 0 bytes doc/html/files.html | 156 -- doc/html/index.hhc | 237 --- doc/html/index.hhk | 1689 ---------------------- doc/html/index.hhp | 298 ---- doc/html/index.html | 31 - doc/html/namespacemembers.html | 157 -- doc/html/namespacemembers_0x62.html | 144 -- doc/html/namespacemembers_0x63.html | 287 ---- doc/html/namespacemembers_0x64.html | 187 --- doc/html/namespacemembers_0x65.html | 127 -- doc/html/namespacemembers_0x66.html | 471 ------ doc/html/namespacemembers_0x67.html | 141 -- doc/html/namespacemembers_0x68.html | 213 --- doc/html/namespacemembers_0x69.html | 239 --- doc/html/namespacemembers_0x6c.html | 180 --- doc/html/namespacemembers_0x6d.html | 217 --- doc/html/namespacemembers_0x6e.html | 91 -- doc/html/namespacemembers_0x6f.html | 102 -- doc/html/namespacemembers_0x70.html | 123 -- doc/html/namespacemembers_0x71.html | 78 - doc/html/namespacemembers_0x72.html | 130 -- doc/html/namespacemembers_0x73.html | 156 -- doc/html/namespacemembers_0x74.html | 100 -- doc/html/namespacemembers_0x75.html | 210 --- doc/html/namespacemembers_0x76.html | 90 -- doc/html/namespacemembers_0x77.html | 72 - doc/html/namespacemembers_0x79.html | 81 -- doc/html/namespacemembers_func.html | 156 -- doc/html/namespacemembers_func_0x62.html | 89 -- doc/html/namespacemembers_func_0x63.html | 147 -- doc/html/namespacemembers_func_0x64.html | 120 -- doc/html/namespacemembers_func_0x65.html | 126 -- doc/html/namespacemembers_func_0x66.html | 218 --- doc/html/namespacemembers_func_0x67.html | 86 -- doc/html/namespacemembers_func_0x68.html | 83 -- doc/html/namespacemembers_func_0x69.html | 125 -- doc/html/namespacemembers_func_0x6c.html | 116 -- doc/html/namespacemembers_func_0x6d.html | 116 -- doc/html/namespacemembers_func_0x6e.html | 90 -- doc/html/namespacemembers_func_0x6f.html | 101 -- doc/html/namespacemembers_func_0x70.html | 122 -- doc/html/namespacemembers_func_0x71.html | 71 - doc/html/namespacemembers_func_0x72.html | 129 -- doc/html/namespacemembers_func_0x73.html | 152 -- doc/html/namespacemembers_func_0x74.html | 99 -- doc/html/namespacemembers_func_0x75.html | 125 -- doc/html/namespacemembers_func_0x76.html | 80 - doc/html/namespacemembers_func_0x79.html | 80 - doc/html/namespacemembers_type.html | 115 -- doc/html/namespacemembers_type_0x63.html | 199 --- doc/html/namespacemembers_type_0x64.html | 127 -- doc/html/namespacemembers_type_0x66.html | 313 ---- doc/html/namespacemembers_type_0x67.html | 115 -- doc/html/namespacemembers_type_0x68.html | 190 --- doc/html/namespacemembers_type_0x69.html | 172 --- doc/html/namespacemembers_type_0x6c.html | 124 -- doc/html/namespacemembers_type_0x6d.html | 160 -- doc/html/namespacemembers_type_0x71.html | 67 - doc/html/namespacemembers_type_0x73.html | 64 - doc/html/namespacemembers_type_0x75.html | 145 -- doc/html/namespacemembers_type_0x76.html | 70 - doc/html/namespacemembers_type_0x77.html | 64 - doc/html/namespaces.html | 131 -- doc/html/tab_b.gif | Bin 35 -> 0 bytes doc/html/tab_l.gif | Bin 706 -> 0 bytes doc/html/tab_r.gif | Bin 2585 -> 0 bytes doc/html/tabs.css | 105 -- doc/readme.txt | 248 ---- doc/usertype.dat | 646 --------- 291 files changed, 47445 deletions(-) delete mode 100644 doc/html/a00001_source.html delete mode 100644 doc/html/a00002_source.html delete mode 100644 doc/html/a00003_source.html delete mode 100644 doc/html/a00004_source.html delete mode 100644 doc/html/a00005_source.html delete mode 100644 doc/html/a00006_source.html delete mode 100644 doc/html/a00007_source.html delete mode 100644 doc/html/a00008_source.html delete mode 100644 doc/html/a00009_source.html delete mode 100644 doc/html/a00010_source.html delete mode 100644 doc/html/a00011_source.html delete mode 100644 doc/html/a00012_source.html delete mode 100644 doc/html/a00013_source.html delete mode 100644 doc/html/a00014_source.html delete mode 100644 doc/html/a00015_source.html delete mode 100644 doc/html/a00016_source.html delete mode 100644 doc/html/a00017_source.html delete mode 100644 doc/html/a00018_source.html delete mode 100644 doc/html/a00019_source.html delete mode 100644 doc/html/a00020_source.html delete mode 100644 doc/html/a00021_source.html delete mode 100644 doc/html/a00022_source.html delete mode 100644 doc/html/a00023_source.html delete mode 100644 doc/html/a00024_source.html delete mode 100644 doc/html/a00025_source.html delete mode 100644 doc/html/a00026_source.html delete mode 100644 doc/html/a00027_source.html delete mode 100644 doc/html/a00028_source.html delete mode 100644 doc/html/a00029_source.html delete mode 100644 doc/html/a00030_source.html delete mode 100644 doc/html/a00031_source.html delete mode 100644 doc/html/a00032_source.html delete mode 100644 doc/html/a00033_source.html delete mode 100644 doc/html/a00034_source.html delete mode 100644 doc/html/a00035_source.html delete mode 100644 doc/html/a00036_source.html delete mode 100644 doc/html/a00037_source.html delete mode 100644 doc/html/a00038_source.html delete mode 100644 doc/html/a00039_source.html delete mode 100644 doc/html/a00040_source.html delete mode 100644 doc/html/a00041_source.html delete mode 100644 doc/html/a00042_source.html delete mode 100644 doc/html/a00043_source.html delete mode 100644 doc/html/a00044_source.html delete mode 100644 doc/html/a00045_source.html delete mode 100644 doc/html/a00046_source.html delete mode 100644 doc/html/a00047_source.html delete mode 100644 doc/html/a00048_source.html delete mode 100644 doc/html/a00049_source.html delete mode 100644 doc/html/a00050_source.html delete mode 100644 doc/html/a00051_source.html delete mode 100644 doc/html/a00052_source.html delete mode 100644 doc/html/a00053_source.html delete mode 100644 doc/html/a00054_source.html delete mode 100644 doc/html/a00055_source.html delete mode 100644 doc/html/a00056_source.html delete mode 100644 doc/html/a00057_source.html delete mode 100644 doc/html/a00058_source.html delete mode 100644 doc/html/a00059_source.html delete mode 100644 doc/html/a00060_source.html delete mode 100644 doc/html/a00061_source.html delete mode 100644 doc/html/a00062_source.html delete mode 100644 doc/html/a00063_source.html delete mode 100644 doc/html/a00064_source.html delete mode 100644 doc/html/a00065_source.html delete mode 100644 doc/html/a00066_source.html delete mode 100644 doc/html/a00067_source.html delete mode 100644 doc/html/a00068_source.html delete mode 100644 doc/html/a00069_source.html delete mode 100644 doc/html/a00070_source.html delete mode 100644 doc/html/a00071_source.html delete mode 100644 doc/html/a00072_source.html delete mode 100644 doc/html/a00073_source.html delete mode 100644 doc/html/a00074_source.html delete mode 100644 doc/html/a00075_source.html delete mode 100644 doc/html/a00076_source.html delete mode 100644 doc/html/a00077_source.html delete mode 100644 doc/html/a00078_source.html delete mode 100644 doc/html/a00079_source.html delete mode 100644 doc/html/a00080_source.html delete mode 100644 doc/html/a00081_source.html delete mode 100644 doc/html/a00082_source.html delete mode 100644 doc/html/a00083_source.html delete mode 100644 doc/html/a00084_source.html delete mode 100644 doc/html/a00085_source.html delete mode 100644 doc/html/a00086_source.html delete mode 100644 doc/html/a00087_source.html delete mode 100644 doc/html/a00088_source.html delete mode 100644 doc/html/a00089_source.html delete mode 100644 doc/html/a00090_source.html delete mode 100644 doc/html/a00091_source.html delete mode 100644 doc/html/a00092_source.html delete mode 100644 doc/html/a00093_source.html delete mode 100644 doc/html/a00094_source.html delete mode 100644 doc/html/a00095_source.html delete mode 100644 doc/html/a00096_source.html delete mode 100644 doc/html/a00097_source.html delete mode 100644 doc/html/a00098_source.html delete mode 100644 doc/html/a00099_source.html delete mode 100644 doc/html/a00100_source.html delete mode 100644 doc/html/a00101_source.html delete mode 100644 doc/html/a00102_source.html delete mode 100644 doc/html/a00103_source.html delete mode 100644 doc/html/a00104_source.html delete mode 100644 doc/html/a00105_source.html delete mode 100644 doc/html/a00106_source.html delete mode 100644 doc/html/a00107_source.html delete mode 100644 doc/html/a00108_source.html delete mode 100644 doc/html/a00109_source.html delete mode 100644 doc/html/a00110_source.html delete mode 100644 doc/html/a00111_source.html delete mode 100644 doc/html/a00112_source.html delete mode 100644 doc/html/a00113_source.html delete mode 100644 doc/html/a00114_source.html delete mode 100644 doc/html/a00115_source.html delete mode 100644 doc/html/a00116_source.html delete mode 100644 doc/html/a00117_source.html delete mode 100644 doc/html/a00118_source.html delete mode 100644 doc/html/a00119_source.html delete mode 100644 doc/html/a00120_source.html delete mode 100644 doc/html/a00121_source.html delete mode 100644 doc/html/a00122_source.html delete mode 100644 doc/html/a00123_source.html delete mode 100644 doc/html/a00124.html delete mode 100644 doc/html/a00125.html delete mode 100644 doc/html/a00126.html delete mode 100644 doc/html/a00127.html delete mode 100644 doc/html/a00128.html delete mode 100644 doc/html/a00129.html delete mode 100644 doc/html/a00130.html delete mode 100644 doc/html/a00132.html delete mode 100644 doc/html/a00133.html delete mode 100644 doc/html/a00134.html delete mode 100644 doc/html/a00135.html delete mode 100644 doc/html/a00136.html delete mode 100644 doc/html/a00137.html delete mode 100644 doc/html/a00138.html delete mode 100644 doc/html/a00139.html delete mode 100644 doc/html/a00140.html delete mode 100644 doc/html/a00142.html delete mode 100644 doc/html/a00143.html delete mode 100644 doc/html/a00144.html delete mode 100644 doc/html/a00145.html delete mode 100644 doc/html/a00146.html delete mode 100644 doc/html/a00147.html delete mode 100644 doc/html/a00148.html delete mode 100644 doc/html/a00149.html delete mode 100644 doc/html/a00150.html delete mode 100644 doc/html/a00151.html delete mode 100644 doc/html/a00152.html delete mode 100644 doc/html/a00153.html delete mode 100644 doc/html/a00154.html delete mode 100644 doc/html/a00155.html delete mode 100644 doc/html/a00156.html delete mode 100644 doc/html/a00157.html delete mode 100644 doc/html/a00158.html delete mode 100644 doc/html/a00159.html delete mode 100644 doc/html/a00160.html delete mode 100644 doc/html/a00161.html delete mode 100644 doc/html/a00162.html delete mode 100644 doc/html/a00163.html delete mode 100644 doc/html/a00164.html delete mode 100644 doc/html/a00165.html delete mode 100644 doc/html/a00166.html delete mode 100644 doc/html/a00167.html delete mode 100644 doc/html/a00168.html delete mode 100644 doc/html/a00169.html delete mode 100644 doc/html/a00170.html delete mode 100644 doc/html/a00171.html delete mode 100644 doc/html/a00172.html delete mode 100644 doc/html/a00173.html delete mode 100644 doc/html/a00174.html delete mode 100644 doc/html/a00175.html delete mode 100644 doc/html/a00176.html delete mode 100644 doc/html/a00177.html delete mode 100644 doc/html/a00178.html delete mode 100644 doc/html/a00179.html delete mode 100644 doc/html/a00180.html delete mode 100644 doc/html/a00181.html delete mode 100644 doc/html/a00182.html delete mode 100644 doc/html/a00183.html delete mode 100644 doc/html/a00184.html delete mode 100644 doc/html/a00185.html delete mode 100644 doc/html/a00186.html delete mode 100644 doc/html/a00187.html delete mode 100644 doc/html/a00188.html delete mode 100644 doc/html/a00189.html delete mode 100644 doc/html/a00190.html delete mode 100644 doc/html/a00191.html delete mode 100644 doc/html/a00192.html delete mode 100644 doc/html/a00193.html delete mode 100644 doc/html/a00194.html delete mode 100644 doc/html/a00195.html delete mode 100644 doc/html/a00196.html delete mode 100644 doc/html/a00197.html delete mode 100644 doc/html/a00198.html delete mode 100644 doc/html/a00199.html delete mode 100644 doc/html/a00200.html delete mode 100644 doc/html/a00201.html delete mode 100644 doc/html/a00202.html delete mode 100644 doc/html/a00203.html delete mode 100644 doc/html/a00204.html delete mode 100644 doc/html/a00205.html delete mode 100644 doc/html/a00206.html delete mode 100644 doc/html/a00207.html delete mode 100644 doc/html/a00208.html delete mode 100644 doc/html/a00209.html delete mode 100644 doc/html/a00210.html delete mode 100644 doc/html/a00211.html delete mode 100644 doc/html/a00212.html delete mode 100644 doc/html/a00213.html delete mode 100644 doc/html/a00214.html delete mode 100644 doc/html/a00215.html delete mode 100644 doc/html/a00216.html delete mode 100644 doc/html/a00217.html delete mode 100644 doc/html/a00218.html delete mode 100644 doc/html/a00221.html delete mode 100644 doc/html/a00222.html delete mode 100644 doc/html/a00223.html delete mode 100644 doc/html/a00224.html delete mode 100644 doc/html/doxygen.css delete mode 100644 doc/html/doxygen.png delete mode 100644 doc/html/files.html delete mode 100644 doc/html/index.hhc delete mode 100644 doc/html/index.hhk delete mode 100644 doc/html/index.hhp delete mode 100644 doc/html/index.html delete mode 100644 doc/html/namespacemembers.html delete mode 100644 doc/html/namespacemembers_0x62.html delete mode 100644 doc/html/namespacemembers_0x63.html delete mode 100644 doc/html/namespacemembers_0x64.html delete mode 100644 doc/html/namespacemembers_0x65.html delete mode 100644 doc/html/namespacemembers_0x66.html delete mode 100644 doc/html/namespacemembers_0x67.html delete mode 100644 doc/html/namespacemembers_0x68.html delete mode 100644 doc/html/namespacemembers_0x69.html delete mode 100644 doc/html/namespacemembers_0x6c.html delete mode 100644 doc/html/namespacemembers_0x6d.html delete mode 100644 doc/html/namespacemembers_0x6e.html delete mode 100644 doc/html/namespacemembers_0x6f.html delete mode 100644 doc/html/namespacemembers_0x70.html delete mode 100644 doc/html/namespacemembers_0x71.html delete mode 100644 doc/html/namespacemembers_0x72.html delete mode 100644 doc/html/namespacemembers_0x73.html delete mode 100644 doc/html/namespacemembers_0x74.html delete mode 100644 doc/html/namespacemembers_0x75.html delete mode 100644 doc/html/namespacemembers_0x76.html delete mode 100644 doc/html/namespacemembers_0x77.html delete mode 100644 doc/html/namespacemembers_0x79.html delete mode 100644 doc/html/namespacemembers_func.html delete mode 100644 doc/html/namespacemembers_func_0x62.html delete mode 100644 doc/html/namespacemembers_func_0x63.html delete mode 100644 doc/html/namespacemembers_func_0x64.html delete mode 100644 doc/html/namespacemembers_func_0x65.html delete mode 100644 doc/html/namespacemembers_func_0x66.html delete mode 100644 doc/html/namespacemembers_func_0x67.html delete mode 100644 doc/html/namespacemembers_func_0x68.html delete mode 100644 doc/html/namespacemembers_func_0x69.html delete mode 100644 doc/html/namespacemembers_func_0x6c.html delete mode 100644 doc/html/namespacemembers_func_0x6d.html delete mode 100644 doc/html/namespacemembers_func_0x6e.html delete mode 100644 doc/html/namespacemembers_func_0x6f.html delete mode 100644 doc/html/namespacemembers_func_0x70.html delete mode 100644 doc/html/namespacemembers_func_0x71.html delete mode 100644 doc/html/namespacemembers_func_0x72.html delete mode 100644 doc/html/namespacemembers_func_0x73.html delete mode 100644 doc/html/namespacemembers_func_0x74.html delete mode 100644 doc/html/namespacemembers_func_0x75.html delete mode 100644 doc/html/namespacemembers_func_0x76.html delete mode 100644 doc/html/namespacemembers_func_0x79.html delete mode 100644 doc/html/namespacemembers_type.html delete mode 100644 doc/html/namespacemembers_type_0x63.html delete mode 100644 doc/html/namespacemembers_type_0x64.html delete mode 100644 doc/html/namespacemembers_type_0x66.html delete mode 100644 doc/html/namespacemembers_type_0x67.html delete mode 100644 doc/html/namespacemembers_type_0x68.html delete mode 100644 doc/html/namespacemembers_type_0x69.html delete mode 100644 doc/html/namespacemembers_type_0x6c.html delete mode 100644 doc/html/namespacemembers_type_0x6d.html delete mode 100644 doc/html/namespacemembers_type_0x71.html delete mode 100644 doc/html/namespacemembers_type_0x73.html delete mode 100644 doc/html/namespacemembers_type_0x75.html delete mode 100644 doc/html/namespacemembers_type_0x76.html delete mode 100644 doc/html/namespacemembers_type_0x77.html delete mode 100644 doc/html/namespaces.html delete mode 100644 doc/html/tab_b.gif delete mode 100644 doc/html/tab_l.gif delete mode 100644 doc/html/tab_r.gif delete mode 100644 doc/html/tabs.css delete mode 100644 doc/readme.txt delete mode 100644 doc/usertype.dat diff --git a/doc/html/a00001_source.html b/doc/html/a00001_source.html deleted file mode 100644 index 15eeb2a5..00000000 --- a/doc/html/a00001_source.html +++ /dev/null @@ -1,346 +0,0 @@ - - - - -GLM: _detail.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00002_source.html b/doc/html/a00002_source.html deleted file mode 100644 index fd2bd067..00000000 --- a/doc/html/a00002_source.html +++ /dev/null @@ -1,1112 +0,0 @@ - - - - -GLM: _swizzle.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00003_source.html b/doc/html/a00003_source.html deleted file mode 100644 index 09ab7b89..00000000 --- a/doc/html/a00003_source.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - -GLM: address.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00004_source.html b/doc/html/a00004_source.html deleted file mode 100644 index cd0f4827..00000000 --- a/doc/html/a00004_source.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - -GLM: associated_min_max.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00005_source.html b/doc/html/a00005_source.html deleted file mode 100644 index 42b726d2..00000000 --- a/doc/html/a00005_source.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - -GLM: bit.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00006_source.html b/doc/html/a00006_source.html deleted file mode 100644 index b0e8412d..00000000 --- a/doc/html/a00006_source.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - -GLM: closest_point.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00007_source.html b/doc/html/a00007_source.html deleted file mode 100644 index 4b6df693..00000000 --- a/doc/html/a00007_source.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - -GLM: color_cast.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00008_source.html b/doc/html/a00008_source.html deleted file mode 100644 index 7f939d94..00000000 --- a/doc/html/a00008_source.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -GLM: color_space.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00009_source.html b/doc/html/a00009_source.html deleted file mode 100644 index 9b094762..00000000 --- a/doc/html/a00009_source.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - -GLM: color_space_YCoCg.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00010_source.html b/doc/html/a00010_source.html deleted file mode 100644 index 978efd3f..00000000 --- a/doc/html/a00010_source.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - -GLM: comparison.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00011_source.html b/doc/html/a00011_source.html deleted file mode 100644 index 866a8f89..00000000 --- a/doc/html/a00011_source.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - -GLM: compatibility.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00012_source.html b/doc/html/a00012_source.html deleted file mode 100644 index 1f10830b..00000000 --- a/doc/html/a00012_source.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - -GLM: component_wise.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00013_source.html b/doc/html/a00013_source.html deleted file mode 100644 index dcc011c3..00000000 --- a/doc/html/a00013_source.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - -GLM: determinant.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00014_source.html b/doc/html/a00014_source.html deleted file mode 100644 index 76424812..00000000 --- a/doc/html/a00014_source.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - -GLM: double_float.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00015_source.html b/doc/html/a00015_source.html deleted file mode 100644 index 80a7e249..00000000 --- a/doc/html/a00015_source.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - -GLM: double_float.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00016_source.html b/doc/html/a00016_source.html deleted file mode 100644 index ea95f815..00000000 --- a/doc/html/a00016_source.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - -GLM: epsilon.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00017_source.html b/doc/html/a00017_source.html deleted file mode 100644 index 8582b263..00000000 --- a/doc/html/a00017_source.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - -GLM: equal_operator.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00018_source.html b/doc/html/a00018_source.html deleted file mode 100644 index ad0375e2..00000000 --- a/doc/html/a00018_source.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - -GLM: euler_angles.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00019_source.html b/doc/html/a00019_source.html deleted file mode 100644 index b1106628..00000000 --- a/doc/html/a00019_source.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - -GLM: ext.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00020_source.html b/doc/html/a00020_source.html deleted file mode 100644 index 74a68e46..00000000 --- a/doc/html/a00020_source.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - -GLM: extend.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00021_source.html b/doc/html/a00021_source.html deleted file mode 100644 index 3b54c128..00000000 --- a/doc/html/a00021_source.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - -GLM: extented_min_max.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00022_source.html b/doc/html/a00022_source.html deleted file mode 100644 index b4b4e0aa..00000000 --- a/doc/html/a00022_source.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - -GLM: fast_exponential.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00023_source.html b/doc/html/a00023_source.html deleted file mode 100644 index 25575f3c..00000000 --- a/doc/html/a00023_source.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - -GLM: fast_square_root.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00024_source.html b/doc/html/a00024_source.html deleted file mode 100644 index c748cec0..00000000 --- a/doc/html/a00024_source.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -GLM: fast_trigonometry.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00025_source.html b/doc/html/a00025_source.html deleted file mode 100644 index 10fbec56..00000000 --- a/doc/html/a00025_source.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - -GLM: func_common.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00026_source.html b/doc/html/a00026_source.html deleted file mode 100644 index e8f40443..00000000 --- a/doc/html/a00026_source.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - -GLM: func_exponential.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00027_source.html b/doc/html/a00027_source.html deleted file mode 100644 index 09a59cbf..00000000 --- a/doc/html/a00027_source.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - -GLM: func_geometric.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00028_source.html b/doc/html/a00028_source.html deleted file mode 100644 index 11d6722c..00000000 --- a/doc/html/a00028_source.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - -GLM: func_matrix.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00029_source.html b/doc/html/a00029_source.html deleted file mode 100644 index 232080d3..00000000 --- a/doc/html/a00029_source.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - -GLM: func_noise.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00030_source.html b/doc/html/a00030_source.html deleted file mode 100644 index c146daa7..00000000 --- a/doc/html/a00030_source.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - -GLM: func_trigonometric.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00031_source.html b/doc/html/a00031_source.html deleted file mode 100644 index c2d471fd..00000000 --- a/doc/html/a00031_source.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -GLM: func_vector_relational.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00032_source.html b/doc/html/a00032_source.html deleted file mode 100644 index b03e2491..00000000 --- a/doc/html/a00032_source.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - -GLM: gl.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00033_source.html b/doc/html/a00033_source.html deleted file mode 100644 index bab876e8..00000000 --- a/doc/html/a00033_source.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - -GLM: glm.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00034_source.html b/doc/html/a00034_source.html deleted file mode 100644 index aed2fa22..00000000 --- a/doc/html/a00034_source.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - -GLM: gradient_paint.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00035_source.html b/doc/html/a00035_source.html deleted file mode 100644 index 0016026a..00000000 --- a/doc/html/a00035_source.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - -GLM: gtc.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00036_source.html b/doc/html/a00036_source.html deleted file mode 100644 index f91e1b41..00000000 --- a/doc/html/a00036_source.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - -GLM: gtx.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00037_source.html b/doc/html/a00037_source.html deleted file mode 100644 index d08ba5e7..00000000 --- a/doc/html/a00037_source.html +++ /dev/null @@ -1,366 +0,0 @@ - - - - -GLM: half_float.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00038_source.html b/doc/html/a00038_source.html deleted file mode 100644 index da3ea92c..00000000 --- a/doc/html/a00038_source.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - -GLM: half_float.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00039_source.html b/doc/html/a00039_source.html deleted file mode 100644 index 97fea681..00000000 --- a/doc/html/a00039_source.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - -GLM: handed_coordinate_space.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00040_source.html b/doc/html/a00040_source.html deleted file mode 100644 index 81d8bec5..00000000 --- a/doc/html/a00040_source.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - -GLM: hint.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00041_source.html b/doc/html/a00041_source.html deleted file mode 100644 index 39c437f8..00000000 --- a/doc/html/a00041_source.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - -GLM: img.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00042_source.html b/doc/html/a00042_source.html deleted file mode 100644 index ccb3e24a..00000000 --- a/doc/html/a00042_source.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - -GLM: inertia.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00043_source.html b/doc/html/a00043_source.html deleted file mode 100644 index 6a5a8985..00000000 --- a/doc/html/a00043_source.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - -GLM: integer.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00044_source.html b/doc/html/a00044_source.html deleted file mode 100644 index 5569baaf..00000000 --- a/doc/html/a00044_source.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -GLM: intersect.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00045_source.html b/doc/html/a00045_source.html deleted file mode 100644 index dfdca88f..00000000 --- a/doc/html/a00045_source.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - -GLM: intrinsic_common.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00046_source.html b/doc/html/a00046_source.html deleted file mode 100644 index 30329f9d..00000000 --- a/doc/html/a00046_source.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - -GLM: intrinsic_exponential.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00047_source.html b/doc/html/a00047_source.html deleted file mode 100644 index 502fc42f..00000000 --- a/doc/html/a00047_source.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - -GLM: intrinsic_geometric.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00048_source.html b/doc/html/a00048_source.html deleted file mode 100644 index 3b5339ca..00000000 --- a/doc/html/a00048_source.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - -GLM: intrinsic_matrix.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00049_source.html b/doc/html/a00049_source.html deleted file mode 100644 index 2fb3a287..00000000 --- a/doc/html/a00049_source.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - -GLM: intrinsic_trigonometric.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00050_source.html b/doc/html/a00050_source.html deleted file mode 100644 index a1f4b5b9..00000000 --- a/doc/html/a00050_source.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - -GLM: intrinsic_vector_relational.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00051_source.html b/doc/html/a00051_source.html deleted file mode 100644 index 7961e859..00000000 --- a/doc/html/a00051_source.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - -GLM: inverse.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00052_source.html b/doc/html/a00052_source.html deleted file mode 100644 index 4ff847c9..00000000 --- a/doc/html/a00052_source.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - -GLM: inverse_transpose.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00053_source.html b/doc/html/a00053_source.html deleted file mode 100644 index 5fd7df16..00000000 --- a/doc/html/a00053_source.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - -GLM: log_base.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00054_source.html b/doc/html/a00054_source.html deleted file mode 100644 index 5c60e3c0..00000000 --- a/doc/html/a00054_source.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - -GLM: matrix_access.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00055_source.html b/doc/html/a00055_source.html deleted file mode 100644 index 2f53489f..00000000 --- a/doc/html/a00055_source.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - -GLM: matrix_access.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00056_source.html b/doc/html/a00056_source.html deleted file mode 100644 index bf2c768c..00000000 --- a/doc/html/a00056_source.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - -GLM: matrix_cross_product.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00057_source.html b/doc/html/a00057_source.html deleted file mode 100644 index 36b81d96..00000000 --- a/doc/html/a00057_source.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -GLM: matrix_major_storage.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00058_source.html b/doc/html/a00058_source.html deleted file mode 100644 index 7d74d6bb..00000000 --- a/doc/html/a00058_source.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - -GLM: matrix_operation.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00059_source.html b/doc/html/a00059_source.html deleted file mode 100644 index a8b548f9..00000000 --- a/doc/html/a00059_source.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - -GLM: matrix_operation.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00060_source.html b/doc/html/a00060_source.html deleted file mode 100644 index 2e79976a..00000000 --- a/doc/html/a00060_source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - -GLM: matrix_projection.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00061_source.html b/doc/html/a00061_source.html deleted file mode 100644 index 1fda8b5a..00000000 --- a/doc/html/a00061_source.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - -GLM: matrix_projection.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00062_source.html b/doc/html/a00062_source.html deleted file mode 100644 index eca5d4ec..00000000 --- a/doc/html/a00062_source.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - -GLM: matrix_query.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00063_source.html b/doc/html/a00063_source.html deleted file mode 100644 index 2d6caee2..00000000 --- a/doc/html/a00063_source.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - -GLM: matrix_selection.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00064_source.html b/doc/html/a00064_source.html deleted file mode 100644 index 91a06e65..00000000 --- a/doc/html/a00064_source.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - -GLM: matrix_transform.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00065_source.html b/doc/html/a00065_source.html deleted file mode 100644 index ca053071..00000000 --- a/doc/html/a00065_source.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - -GLM: matx.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00066_source.html b/doc/html/a00066_source.html deleted file mode 100644 index d41402f3..00000000 --- a/doc/html/a00066_source.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - -GLM: mixed_product.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00067_source.html b/doc/html/a00067_source.html deleted file mode 100644 index c03b1326..00000000 --- a/doc/html/a00067_source.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - -GLM: multiple.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00068_source.html b/doc/html/a00068_source.html deleted file mode 100644 index 5ff0cb02..00000000 --- a/doc/html/a00068_source.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - -GLM: norm.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00069_source.html b/doc/html/a00069_source.html deleted file mode 100644 index bc789420..00000000 --- a/doc/html/a00069_source.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - -GLM: normal.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00070_source.html b/doc/html/a00070_source.html deleted file mode 100644 index f1d19ed5..00000000 --- a/doc/html/a00070_source.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - -GLM: normalize_dot.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00071_source.html b/doc/html/a00071_source.html deleted file mode 100644 index 9526c083..00000000 --- a/doc/html/a00071_source.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - -GLM: number_precision.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00072_source.html b/doc/html/a00072_source.html deleted file mode 100644 index 23befbbc..00000000 --- a/doc/html/a00072_source.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - -GLM: ocl_type.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00073_source.html b/doc/html/a00073_source.html deleted file mode 100644 index 57ecd450..00000000 --- a/doc/html/a00073_source.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -GLM: optimum_pow.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00074_source.html b/doc/html/a00074_source.html deleted file mode 100644 index 1cc9902b..00000000 --- a/doc/html/a00074_source.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - -GLM: orthonormalize.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00075_source.html b/doc/html/a00075_source.html deleted file mode 100644 index a20a5841..00000000 --- a/doc/html/a00075_source.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -GLM: perpendicular.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00076_source.html b/doc/html/a00076_source.html deleted file mode 100644 index ea540476..00000000 --- a/doc/html/a00076_source.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - -GLM: polar_coordinates.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00077_source.html b/doc/html/a00077_source.html deleted file mode 100644 index 668c4e4d..00000000 --- a/doc/html/a00077_source.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - -GLM: projection.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00078_source.html b/doc/html/a00078_source.html deleted file mode 100644 index 98b8e358..00000000 --- a/doc/html/a00078_source.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - -GLM: quaternion.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00079_source.html b/doc/html/a00079_source.html deleted file mode 100644 index 6db2253f..00000000 --- a/doc/html/a00079_source.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - -GLM: quaternion.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00080_source.html b/doc/html/a00080_source.html deleted file mode 100644 index 52075cc4..00000000 --- a/doc/html/a00080_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - -GLM: random.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00081_source.html b/doc/html/a00081_source.html deleted file mode 100644 index 2ef9bc8d..00000000 --- a/doc/html/a00081_source.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - -GLM: raw_data.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00082_source.html b/doc/html/a00082_source.html deleted file mode 100644 index d2e4996a..00000000 --- a/doc/html/a00082_source.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - -GLM: reciprocal.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00083_source.html b/doc/html/a00083_source.html deleted file mode 100644 index 7b38c985..00000000 --- a/doc/html/a00083_source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - -GLM: rotate_vector.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00084_source.html b/doc/html/a00084_source.html deleted file mode 100644 index 2748783d..00000000 --- a/doc/html/a00084_source.html +++ /dev/null @@ -1,376 +0,0 @@ - - - - -GLM: setup.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00085_source.html b/doc/html/a00085_source.html deleted file mode 100644 index 29d234ee..00000000 --- a/doc/html/a00085_source.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - -GLM: simd_common.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00086_source.html b/doc/html/a00086_source.html deleted file mode 100644 index 91a027f3..00000000 --- a/doc/html/a00086_source.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - -GLM: simd_geometric.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00087_source.html b/doc/html/a00087_source.html deleted file mode 100644 index 2044f649..00000000 --- a/doc/html/a00087_source.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - -GLM: simd_mat4.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00088_source.html b/doc/html/a00088_source.html deleted file mode 100644 index 3b4b63da..00000000 --- a/doc/html/a00088_source.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - -GLM: simd_vec4.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00089_source.html b/doc/html/a00089_source.html deleted file mode 100644 index 41698625..00000000 --- a/doc/html/a00089_source.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - -GLM: spline.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00090_source.html b/doc/html/a00090_source.html deleted file mode 100644 index 2d1ac45a..00000000 --- a/doc/html/a00090_source.html +++ /dev/null @@ -1,95 +0,0 @@ - - - - -GLM: statistics_operation.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00091_source.html b/doc/html/a00091_source.html deleted file mode 100644 index 2b71394f..00000000 --- a/doc/html/a00091_source.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - -GLM: std_based_type.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00092_source.html b/doc/html/a00092_source.html deleted file mode 100644 index 27d8f384..00000000 --- a/doc/html/a00092_source.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - -GLM: string_cast.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00093_source.html b/doc/html/a00093_source.html deleted file mode 100644 index 86ae3a93..00000000 --- a/doc/html/a00093_source.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - -GLM: transform.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00094_source.html b/doc/html/a00094_source.html deleted file mode 100644 index a8d8b39c..00000000 --- a/doc/html/a00094_source.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - -GLM: transform2.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00095_source.html b/doc/html/a00095_source.html deleted file mode 100644 index acdc93f3..00000000 --- a/doc/html/a00095_source.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - -GLM: type.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00096_source.html b/doc/html/a00096_source.html deleted file mode 100644 index e8a0325e..00000000 --- a/doc/html/a00096_source.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - -GLM: type_float.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00097_source.html b/doc/html/a00097_source.html deleted file mode 100644 index 0b105102..00000000 --- a/doc/html/a00097_source.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - -GLM: type_gentype.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00098_source.html b/doc/html/a00098_source.html deleted file mode 100644 index 49694d14..00000000 --- a/doc/html/a00098_source.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - -GLM: type_half.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00099_source.html b/doc/html/a00099_source.html deleted file mode 100644 index a2b4962d..00000000 --- a/doc/html/a00099_source.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - -GLM: type_int.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00100_source.html b/doc/html/a00100_source.html deleted file mode 100644 index d7a8846b..00000000 --- a/doc/html/a00100_source.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - -GLM: type_mat2x2.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00101_source.html b/doc/html/a00101_source.html deleted file mode 100644 index 4896c107..00000000 --- a/doc/html/a00101_source.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - -GLM: type_mat2x3.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00102_source.html b/doc/html/a00102_source.html deleted file mode 100644 index ccc7dac2..00000000 --- a/doc/html/a00102_source.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - -GLM: type_mat2x4.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00103_source.html b/doc/html/a00103_source.html deleted file mode 100644 index 8d53f31e..00000000 --- a/doc/html/a00103_source.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - -GLM: type_mat3x2.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00104_source.html b/doc/html/a00104_source.html deleted file mode 100644 index 0a30b71d..00000000 --- a/doc/html/a00104_source.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -GLM: type_mat3x3.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00105_source.html b/doc/html/a00105_source.html deleted file mode 100644 index 4891f42c..00000000 --- a/doc/html/a00105_source.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - -GLM: type_mat3x4.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00106_source.html b/doc/html/a00106_source.html deleted file mode 100644 index 30603229..00000000 --- a/doc/html/a00106_source.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - -GLM: type_mat4x2.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00107_source.html b/doc/html/a00107_source.html deleted file mode 100644 index d8920d71..00000000 --- a/doc/html/a00107_source.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - -GLM: type_mat4x3.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00108_source.html b/doc/html/a00108_source.html deleted file mode 100644 index 3bcb5dfe..00000000 --- a/doc/html/a00108_source.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - -GLM: type_mat4x4.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00109_source.html b/doc/html/a00109_source.html deleted file mode 100644 index a3ef6430..00000000 --- a/doc/html/a00109_source.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - -GLM: type_precision.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00110_source.html b/doc/html/a00110_source.html deleted file mode 100644 index e5dc734e..00000000 --- a/doc/html/a00110_source.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - -GLM: type_ptr.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00111_source.html b/doc/html/a00111_source.html deleted file mode 100644 index ed9c7dfb..00000000 --- a/doc/html/a00111_source.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - -GLM: type_size.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00112_source.html b/doc/html/a00112_source.html deleted file mode 100644 index 99fdf12b..00000000 --- a/doc/html/a00112_source.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - -GLM: type_vec1.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00113_source.html b/doc/html/a00113_source.html deleted file mode 100644 index 4d93651c..00000000 --- a/doc/html/a00113_source.html +++ /dev/null @@ -1,282 +0,0 @@ - - - - -GLM: type_vec2.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00114_source.html b/doc/html/a00114_source.html deleted file mode 100644 index 441a6b09..00000000 --- a/doc/html/a00114_source.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - -GLM: type_vec3.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00115_source.html b/doc/html/a00115_source.html deleted file mode 100644 index 39216b3a..00000000 --- a/doc/html/a00115_source.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - -GLM: type_vec4.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00116_source.html b/doc/html/a00116_source.html deleted file mode 100644 index 7cf2d8c9..00000000 --- a/doc/html/a00116_source.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - -GLM: unsigned_int.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00117_source.html b/doc/html/a00117_source.html deleted file mode 100644 index a01eae98..00000000 --- a/doc/html/a00117_source.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -GLM: vector_access.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00118_source.html b/doc/html/a00118_source.html deleted file mode 100644 index 2daa0c84..00000000 --- a/doc/html/a00118_source.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - -GLM: vector_angle.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00119_source.html b/doc/html/a00119_source.html deleted file mode 100644 index 1c7407ee..00000000 --- a/doc/html/a00119_source.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - -GLM: vector_query.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00120_source.html b/doc/html/a00120_source.html deleted file mode 100644 index 4852de31..00000000 --- a/doc/html/a00120_source.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - -GLM: vecx.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00121_source.html b/doc/html/a00121_source.html deleted file mode 100644 index 17b5e8dd..00000000 --- a/doc/html/a00121_source.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - -GLM: verbose_operator.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00122_source.html b/doc/html/a00122_source.html deleted file mode 100644 index 54c35dd2..00000000 --- a/doc/html/a00122_source.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - -GLM: virtrev.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00123_source.html b/doc/html/a00123_source.html deleted file mode 100644 index 28703e88..00000000 --- a/doc/html/a00123_source.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - -GLM: xstream.hpp Source File - - - - - - -
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00124.html b/doc/html/a00124.html deleted file mode 100644 index 4900c6bf..00000000 --- a/doc/html/a00124.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - -GLM: glm Namespace Reference - - - - - - -
-

glm Namespace Reference

-

GLM namespace, it contains all GLSL based features. -More...

- - - - -

-

- - -

-

- - -

-

- - -

-

-

Namespaces

namespace  core
 

GLM core. Namespace that includes all the feature define by GLSL 1.30.8 specification. This namespace is included in glm namespace.

-
namespace  gtc
 

GLM stable extensions.

-
namespace  gtx
 

GLM experimental extensions. The interface could change between releases.

-
namespace  img
 

IMG extensions.

-
-

Detailed Description

-

GLM namespace, it contains all GLSL based features.

-
-
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00125.html b/doc/html/a00125.html deleted file mode 100644 index bae25ab5..00000000 --- a/doc/html/a00125.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - -GLM: glm::core Namespace Reference - - - - - - -
-

glm::core Namespace Reference

-

GLM core. Namespace that includes all the feature define by GLSL 1.30.8 specification. This namespace is included in glm namespace. -More...

- - - - -

-

- - -

-

-

Namespaces

namespace  function
 

Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification.

-
namespace  type
 

Scalar, vectors and matrices from section 4.1.2 Booleans, 4.1.3 Integers section, 4.1.4 Floats section, 4.1.5 Vectors and section 4.1.6 Matrices of GLSL 1.30.8 specification.

-
-

Detailed Description

-

GLM core. Namespace that includes all the feature define by GLSL 1.30.8 specification. This namespace is included in glm namespace.

-
-
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00126.html b/doc/html/a00126.html deleted file mode 100644 index a016af69..00000000 --- a/doc/html/a00126.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - -GLM: glm::core::function Namespace Reference - - - - - - -
-

glm::core::function Namespace Reference

-

Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification. -More...

- - - - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

-

Namespaces

namespace  common
 

Define common functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace.

-
namespace  exponential
 

Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace.

-
namespace  geometric
 

Define all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace.

-
namespace  matrix
 

Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace.

-
namespace  trigonometric
 

Define Angle and trigonometry functions from Section 8.1 of GLSL 1.30.8 specification.

-
namespace  vector_relational
 

Define vector relational functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace.

-
-

Detailed Description

-

Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification.

-

Angle and trigonometry, exponential, common, geometric, matrix and vector relational functions.

-
-
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00127.html b/doc/html/a00127.html deleted file mode 100644 index f7d2eea0..00000000 --- a/doc/html/a00127.html +++ /dev/null @@ -1,577 +0,0 @@ - - - - -GLM: glm::core::function::common Namespace Reference - - - - - - -
-

glm::core::function::common Namespace Reference

-

Define common functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename genFIType >
genFIType abs (genFIType const &x)
 Returns x if x >= 0; otherwise, it returns -x.
template<typename genType >
genType ceil (genType const &x)
 Returns a value equal to the nearest integer that is greater than or equal to x.
template<typename genUIFTypeT , typename genUIFTypeU >
genUIFTypeT clamp (genUIFTypeT const &x, genUIFTypeU const &minVal, genUIFTypeU const &maxVal)
 Returns min(max(x, minVal), maxVal) for each component in x.
template<typename genType >
genType floor (genType const &x)
 Returns a value equal to the nearest integer that is less then or equal to x.
template<typename genType >
genType fract (genType const &x)
 Return x - floor(x).
template<typename genType >
genType::bool_type isinf (genType const &x)
 Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations.
template<typename genType >
genType::bool_type isnan (genType const &x)
 Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations.
template<typename genUIFTypeT , typename genUIFTypeU >
genUIFTypeT max (genUIFTypeT const &x, genUIFTypeU const &y)
 Returns y if x < y; otherwise, it returns x.
template<typename genUIFTypeT , typename genUIFTypeU >
genUIFTypeT min (genUIFTypeT const &x, genUIFTypeU const &y)
 Returns y if y < x; otherwise, it returns x.
template<typename genTypeT , typename genTypeU >
genTypeT mix (genTypeT const &x, genTypeT const &y, genTypeU const &a)
template<typename genTypeT , typename genTypeU >
genTypeT mod (genTypeT const &x, genTypeU const &y)
 Modulus.
template<typename genType >
genType modf (genType const &x, genType &i)
 Returns the fractional part of x and sets i to the integer part (as a whole number floating point value).
template<typename genType >
genType round (genType const &x)
 Returns a value equal to the nearest integer to x.
template<typename genType >
genType roundEven (genType const &x)
 Returns a value equal to the nearest integer to x.
template<typename genFIType >
genFIType sign (genFIType const &x)
 Returns 1.0 if x > 0, 0.0 if x = 0, or -1.0 if x < 0.
template<typename genTypeT , typename genTypeU >
genTypeU smoothstep (genTypeT const &edge0, genTypeT const &edge1, genTypeU const &x)
 Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1.
template<typename genTypeT , typename genTypeU >
genTypeU step (genTypeT const &edge, genTypeU const &x)
 Returns 0.0 if x < edge, otherwise it returns 1.0.
template<typename genType >
genType trunc (genType const &x)
 Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x.
-

Detailed Description

-

Define common functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace.

-

Function Documentation

- -
-
- - - - - - - - - -
genFIType glm::core::function::common::abs (genFIType const &  x ) 
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::common::ceil (genType const &  x ) 
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
genUIFTypeT glm::core::function::common::clamp (genUIFTypeT const &  x,
genUIFTypeU const &  minVal,
genUIFTypeU const &  maxVal 
)
-
-
- -

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

-

using the floating-point values minVal and maxVal. (From GLSL 1.30.08 specification, section 8.3)

- -

Referenced by glm::gtx::compatibility::saturate().

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::common::floor (genType const &  x ) 
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::common::fract (genType const &  x ) 
-
-
- -

Return x - floor(x).

-

(From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - -
genType::bool_type glm::core::function::common::isinf (genType const &  x ) 
-
-
- -

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

-

Returns false otherwise, including for implementations with no infinity representations. (From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - -
genType::bool_type glm::core::function::common::isnan (genType const &  x ) 
-
-
- -

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

-

Returns false otherwise, including for implementations with no NaN representations. (From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genUIFTypeT glm::core::function::common::max (genUIFTypeT const &  x,
genUIFTypeU const &  y 
)
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genUIFTypeT glm::core::function::common::min (genUIFTypeT const &  x,
genUIFTypeU const &  y 
)
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
genTypeT glm::core::function::common::mix (genTypeT const &  x,
genTypeT const &  y,
genTypeU const &  a 
)
-
-
-
Returns:
If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1].
-
-If genTypeU is a boolean scalar or vector: Selects which vector each returned component comes from. For a component of a that is false, the corresponding component of x is returned. For a component of a that is true, the corresponding component of y is returned. Components of x and y that are not selected are allowed to be invalid floating point values and will have no effect on the results. Thus, this provides different functionality than genType mix(genType x, genType y, genType(a)) where a is a Boolean vector.
-

From GLSL 1.30.08 specification, section 8.3

-
Parameters:
- - - - -
[in] x Floating point scalar or vector.
[in] y Floating point scalar or vector.
[in] a Floating point or boolean scalar or vector.
-
-
- -

Referenced by glm::gtx::compatibility::lerp().

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genTypeT glm::core::function::common::mod (genTypeT const &  x,
genTypeU const &  y 
)
-
-
- -

Modulus.

-

Returns x - y * floor(x / y) for each component in x using the floating point value y. (From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType glm::core::function::common::modf (genType const &  x,
genType &  i 
)
-
-
- -

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

-

Both the return value and the output parameter will have the same sign as x. (From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::common::round (genType const &  x ) 
-
-
- -

Returns a value equal to the nearest integer to x.

-

The fraction 0.5 will round in a direction chosen by the implementation, presumably the direction that is fastest. This includes the possibility that round(x) returns the same value as roundEven(x) for all values of x. (From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::common::roundEven (genType const &  x ) 
-
-
- -

Returns a value equal to the nearest integer to x.

-

A fractional part of 0.5 will round toward the nearest even integer. (Both 3.5 and 4.5 for x will return 4.0.) (From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - -
genFIType glm::core::function::common::sign (genFIType const &  x ) 
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
genTypeU glm::core::function::common::smoothstep (genTypeT const &  edge0,
genTypeT const &  edge1,
genTypeU const &  x 
)
-
-
- -

Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1.

-

This is useful in cases where you would want a threshold function with a smooth transition. This is equivalent to: genType t; t = clamp ((x – edge0) / (edge1 – edge0), 0, 1); return t * t * (3 – 2 * t); Results are undefined if edge0 >= edge1. (From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genTypeU glm::core::function::common::step (genTypeT const &  edge,
genTypeU const &  x 
)
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.3)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::common::trunc (genType const &  x ) 
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.3)

- -
-
-
-
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00128.html b/doc/html/a00128.html deleted file mode 100644 index eb77adf6..00000000 --- a/doc/html/a00128.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - -GLM: glm::core::function::exponential Namespace Reference - - - - - - -
-

glm::core::function::exponential Namespace Reference

-

Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace. -More...

- - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename genType >
genType exp (genType const &x)
 Returns the natural exponentiation of x, i.e., e^x.
template<typename genType >
genType exp2 (genType const &x)
 Returns 2 raised to the x power.
template<typename genType >
genType inversesqrt (genType const &x)
 Returns the reciprocal of the positive square root of x.
template<typename genType >
genType log (genType const &x)
 Returns the natural logarithm of x, i.e., returns the value y which satisfies the equation x = e^y.
template<typename genType >
genType log2 (genType const &x)
 Returns the base 2 log of x, i.e., returns the value y, which satisfies the equation x = 2 ^ y.
template<typename genType >
genType pow (genType const &x, genType const &y)
 Returns x raised to the y power.
template<typename genType >
genType sqrt (genType const &x)
 Returns the positive square root of x.
-

Detailed Description

-

Define all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace.

-

Function Documentation

- -
-
- - - - - - - - - -
genType glm::core::function::exponential::exp (genType const &  x ) 
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.2)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::exponential::exp2 (genType const &  x ) 
-
-
- -

Returns 2 raised to the x power.

-

(From GLSL 1.30.08 specification, section 8.2)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::exponential::inversesqrt (genType const &  x ) 
-
-
- -

Returns the reciprocal of the positive square root of x.

-

(From GLSL 1.30.08 specification, section 8.2)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::exponential::log (genType const &  x ) 
-
-
- -

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

-

Results are undefined if x <= 0. (From GLSL 1.30.08 specification, section 8.2)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::exponential::log2 (genType const &  x ) 
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.2)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType glm::core::function::exponential::pow (genType const &  x,
genType const &  y 
)
-
-
- -

Returns x raised to the y power.

-

(From GLSL 1.30.08 specification, section 8.2)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::exponential::sqrt (genType const &  x ) 
-
-
- -

Returns the positive square root of x.

-

(From GLSL 1.30.08 specification, section 8.2)

- -
-
-
-
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00129.html b/doc/html/a00129.html deleted file mode 100644 index 2e4eca0c..00000000 --- a/doc/html/a00129.html +++ /dev/null @@ -1,301 +0,0 @@ - - - - -GLM: glm::core::function::geometric Namespace Reference - - - - - - -
-

glm::core::function::geometric Namespace Reference

-

Define all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename valType >
detail::tvec3< valType > cross (detail::tvec3< valType > const &x, detail::tvec3< valType > const &y)
 Returns the cross product of x and y.
template<typename genType >
genType::value_type distance (genType const &p0, genType const &p1)
 Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
template<typename genType >
genType::value_type dot (genType const &x, genType const &y)
 Returns the dot product of x and y, i.e., result = x * y.
template<typename genType >
genType faceforward (genType const &N, genType const &I, genType const &Nref)
 If dot(Nref, I) < 0.0, return N, otherwise, return -N.
template<typename genType >
genType::value_type length (genType const &x)
 Returns the length of x, i.e., sqrt(x * x).
template<typename genType >
genType normalize (genType const &x)
 Returns a vector in the same direction as x but with length of 1.
template<typename genType >
genType reflect (genType const &I, genType const &N)
 For the incident vector I and surface orientation N, returns the reflection direction : result = I - 2.0 * dot(N, I) * N.
template<typename genType >
genType refract (genType const &I, genType const &N, typename genType::value_type const &eta)
 For the incident vector I and surface normal N, and the ratio of indices of refraction eta, return the refraction vector.
-

Detailed Description

-

Define all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<valType> glm::core::function::geometric::cross (detail::tvec3< valType > const &  x,
detail::tvec3< valType > const &  y 
)
-
-
- -

Returns the cross product of x and y.

-

(From GLSL 1.30.08 specification, section 8.4)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType::value_type glm::core::function::geometric::distance (genType const &  p0,
genType const &  p1 
)
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.4)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType::value_type glm::core::function::geometric::dot (genType const &  x,
genType const &  y 
)
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.4)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
genType glm::core::function::geometric::faceforward (genType const &  N,
genType const &  I,
genType const &  Nref 
)
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.4)

- -
-
- -
-
- - - - - - - - - -
genType::value_type glm::core::function::geometric::length (genType const &  x ) 
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.4)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::geometric::normalize (genType const &  x ) 
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.4)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType glm::core::function::geometric::reflect (genType const &  I,
genType const &  N 
)
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.4)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
genType glm::core::function::geometric::refract (genType const &  I,
genType const &  N,
typename genType::value_type const &  eta 
)
-
-
- -

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

-

(From GLSL 1.30.08 specification, section 8.4)

- -
-
-
-
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00130.html b/doc/html/a00130.html deleted file mode 100644 index 551191ce..00000000 --- a/doc/html/a00130.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - -GLM: glm::core::function::matrix Namespace Reference - - - - - - -
-

glm::core::function::matrix Namespace Reference

-

Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace. -More...

- - - - - - - - - - - - - - - - - -

Functions

template<typename genType >
genType::value_type determinant (genType const &m)
 Return the determinant of a matrix.
template<typename genType >
genType inverse (genType const &m)
 Return the inverse of a matrix.
template<typename matType >
matType matrixCompMult (matType const &x, matType const &y)
 Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j].
template<typename vecType , typename matType >
matType outerProduct (vecType const &c, vecType const &r)
 Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r.
-template<typename matType >
matType::transpose_type transpose (matType const &x)
 Returns the transposed matrix of x (From GLSL 1.30.08 specification, section 8.5).
-

Detailed Description

-

Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace.

-

Function Documentation

- -
-
- - - - - - - - - -
genType::value_type glm::core::function::matrix::determinant (genType const &  m ) 
-
-
- -

Return the determinant of a matrix.

-

(From GLSL 1.50.09 specification, section 8.5). genType: mat2, mat3, mat4.

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::matrix::inverse (genType const &  m ) 
-
-
- -

Return the inverse of a matrix.

-

(From GLSL 1.40.07 specification, section 8.5). genType: mat2, mat3, mat4.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
matType glm::core::function::matrix::matrixCompMult (matType const &  x,
matType const &  y 
)
-
-
- -

Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j].

-

(From GLSL 1.30.08 specification, section 8.5)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
matType glm::core::function::matrix::outerProduct (vecType const &  c,
vecType const &  r 
)
-
-
- -

Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r.

-

(From GLSL 1.30.08 specification, section 8.5)

- -
-
-
-
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00132.html b/doc/html/a00132.html deleted file mode 100644 index bf46ef97..00000000 --- a/doc/html/a00132.html +++ /dev/null @@ -1,355 +0,0 @@ - - - - -GLM: glm::core::function::trigonometric Namespace Reference - - - - - - -
-

glm::core::function::trigonometric Namespace Reference

-

Define Angle and trigonometry functions from Section 8.1 of GLSL 1.30.8 specification. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename genType >
genType acos (genType const &x)
 Arc cosine.
template<typename genType >
genType acosh (genType const &x)
 Arc hyperbolic cosine; returns the non-negative inverse of cosh.
template<typename genType >
genType asin (genType const &x)
 Arc sine.
template<typename genType >
genType asinh (genType const &x)
 Arc hyperbolic sine; returns the inverse of sinh.
template<typename genType >
genType atan (genType const &y_over_x)
 Arc tangent.
template<typename genType >
genType atan (genType const &y, genType const &x)
 Arc tangent.
template<typename genType >
genType atanh (genType const &x)
 Arc hyperbolic tangent; returns the inverse of tanh.
template<typename genType >
genType cos (genType const &angle)
 The standard trigonometric cosine function.
-template<typename genType >
genType cosh (genType const &angle)
 Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2 (From GLSL 1.30.08 specification, section 8.1).
template<typename genType >
genType degrees (genType const &radians)
 Converts radians to degrees and returns the result.
template<typename genType >
genType radians (genType const &degrees)
 Converts degrees to radians and returns the result.
template<typename genType >
genType sin (genType const &angle)
 The standard trigonometric sine function.
-template<typename genType >
genType sinh (genType const &angle)
 Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2 (From GLSL 1.30.08 specification, section 8.1).
template<typename genType >
genType tan (genType const &angle)
 The standard trigonometric tangent function.
-template<typename genType >
genType tanh (genType const &angle)
 Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) (From GLSL 1.30.08 specification, section 8.1).
-

Detailed Description

-

Define Angle and trigonometry functions from Section 8.1 of GLSL 1.30.8 specification.

-

Included in glm namespace.

-

Function Documentation

- -
-
- - - - - - - - - -
genType glm::core::function::trigonometric::acos (genType const &  x ) 
-
-
- -

Arc cosine.

-

Returns an angle whose sine is x. The range of values returned by this function is [0, PI]. Results are undefined if |x| > 1. (From GLSL 1.30.08 specification, section 8.1)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::trigonometric::acosh (genType const &  x ) 
-
-
- -

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

-

Results are undefined if x < 1. (From GLSL 1.30.08 specification, section 8.1)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::trigonometric::asin (genType const &  x ) 
-
-
- -

Arc sine.

-

Returns an angle whose sine is x. The range of values returned by this function is [-PI/2, PI/2]. Results are undefined if |x| > 1. (From GLSL 1.30.08 specification, section 8.1)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::trigonometric::asinh (genType const &  x ) 
-
-
- -

Arc hyperbolic sine; returns the inverse of sinh.

-

(From GLSL 1.30.08 specification, section 8.1)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::trigonometric::atan (genType const &  y_over_x ) 
-
-
- -

Arc tangent.

-

Returns an angle whose tangent is y_over_x. The range of values returned by this function is [-PI/2, PI/2]. (From GLSL 1.30.08 specification, section 8.1)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType glm::core::function::trigonometric::atan (genType const &  y,
genType const &  x 
)
-
-
- -

Arc tangent.

-

Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLSL 1.30.08 specification, section 8.1)

- -

Referenced by glm::gtx::compatibility::atan2().

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::trigonometric::atanh (genType const &  x ) 
-
-
- -

Arc hyperbolic tangent; returns the inverse of tanh.

-

Results are undefined if abs(x) >= 1. (From GLSL 1.30.08 specification, section 8.1)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::trigonometric::cos (genType const &  angle ) 
-
-
- -

The standard trigonometric cosine function.

-

The values returned by this function will range from [-1, 1]. (From GLSL 1.30.08 specification, section 8.1)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::trigonometric::degrees (genType const &  radians ) 
-
-
- -

Converts radians to degrees and returns the result.

-

(From GLSL 1.30.08 specification, section 8.1)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::trigonometric::radians (genType const &  degrees ) 
-
-
- -

Converts degrees to radians and returns the result.

-

(From GLSL 1.30.08 specification, section 8.1)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::trigonometric::sin (genType const &  angle ) 
-
-
- -

The standard trigonometric sine function.

-

The values returned by this function will range from [-1, 1]. (From GLSL 1.30.08 specification, section 8.1)

- -
-
- -
-
- - - - - - - - - -
genType glm::core::function::trigonometric::tan (genType const &  angle ) 
-
-
- -

The standard trigonometric tangent function.

-

(From GLSL 1.30.08 specification, section 8.1)

- -
-
-
-
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00133.html b/doc/html/a00133.html deleted file mode 100644 index d12d388f..00000000 --- a/doc/html/a00133.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - -GLM: glm::core::function::vector_relational Namespace Reference - - - - - - -
-

glm::core::function::vector_relational Namespace Reference

-

Define vector relational functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename vecType >
bool all (vecType const &x)
 Returns true if all components of x are true.
template<typename vecType >
bool any (vecType const &x)
 Returns true if any component of x is true.
template<typename vecType >
vecType::bool_type equal (vecType const &x, vecType const &y)
 Returns the component-wise compare of x == y.
template<typename vecType >
vecType::bool_type greaterThan (vecType const &x, vecType const &y)
 Returns the component-wise compare of x > y.
template<typename vecType >
vecType::bool_type greaterThanEqual (vecType const &x, vecType const &y)
 Returns the component-wise compare of x >= y.
template<typename vecType >
vecType::bool_type lessThan (vecType const &x, vecType const &y)
 Returns the component-wise compare of x < y.
template<typename vecType >
vecType::bool_type lessThanEqual (vecType const &x, vecType const &y)
 Returns the component-wise compare of x <= y.
template<typename vecType >
vecType::bool_type not_ (vecType const &x)
 Returns the component-wise logical complement of x.
template<typename vecType >
vecType::bool_type notEqual (vecType const &x, vecType const &y)
 Returns the component-wise compare of x != y.
-

Detailed Description

-

Define vector relational functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace.

-

Function Documentation

- -
-
- - - - - - - - - -
bool glm::core::function::vector_relational::all (vecType const &  x ) 
-
-
- -

Returns true if all components of x are true.

-

(From GLSL 1.30.08 specification, section 8.6)

- -
-
- -
-
- - - - - - - - - -
bool glm::core::function::vector_relational::any (vecType const &  x ) 
-
-
- -

Returns true if any component of x is true.

-

(From GLSL 1.30.08 specification, section 8.6)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
vecType::bool_type glm::core::function::vector_relational::equal (vecType const &  x,
vecType const &  y 
)
-
-
- -

Returns the component-wise compare of x == y.

-

(From GLSL 1.30.08 specification, section 8.6)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
vecType::bool_type glm::core::function::vector_relational::greaterThan (vecType const &  x,
vecType const &  y 
)
-
-
- -

Returns the component-wise compare of x > y.

-

(From GLSL 1.30.08 specification, section 8.6)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
vecType::bool_type glm::core::function::vector_relational::greaterThanEqual (vecType const &  x,
vecType const &  y 
)
-
-
- -

Returns the component-wise compare of x >= y.

-

(From GLSL 1.30.08 specification, section 8.6)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
vecType::bool_type glm::core::function::vector_relational::lessThan (vecType const &  x,
vecType const &  y 
)
-
-
- -

Returns the component-wise compare of x < y.

-

(From GLSL 1.30.08 specification, section 8.6)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
vecType::bool_type glm::core::function::vector_relational::lessThanEqual (vecType const &  x,
vecType const &  y 
)
-
-
- -

Returns the component-wise compare of x <= y.

-

(From GLSL 1.30.08 specification, section 8.6)

- -
-
- -
-
- - - - - - - - - -
vecType::bool_type glm::core::function::vector_relational::not_ (vecType const &  x ) 
-
-
- -

Returns the component-wise logical complement of x.

-

(From GLSL 1.30.08 specification, section 8.6)

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
vecType::bool_type glm::core::function::vector_relational::notEqual (vecType const &  x,
vecType const &  y 
)
-
-
- -

Returns the component-wise compare of x != y.

-

(From GLSL 1.30.08 specification, section 8.6)

- -
-
-
-
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00134.html b/doc/html/a00134.html deleted file mode 100644 index 6367549d..00000000 --- a/doc/html/a00134.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -GLM: glm::core::type Namespace Reference - - - - - - -
-

glm::core::type Namespace Reference

-

Scalar, vectors and matrices from section 4.1.2 Booleans, 4.1.3 Integers section, 4.1.4 Floats section, 4.1.5 Vectors and section 4.1.6 Matrices of GLSL 1.30.8 specification. -More...

- - - - -

-

- - -

-

- - -

-

-

Namespaces

namespace  matrix
 

Matrix types from section 4.1.6 of GLSL 1.30.8 specification.

-
namespace  scalar
 

Scalar types from section 4.1.2 Booleans, 4.1.3 Integers and 4.1.4 Floats of GLSL 1.30.8 specification.

-
namespace  vector
 

Vector types from section 4.1.5 of GLSL 1.30.8 specification.

-
-

Detailed Description

-

Scalar, vectors and matrices from section 4.1.2 Booleans, 4.1.3 Integers section, 4.1.4 Floats section, 4.1.5 Vectors and section 4.1.6 Matrices of GLSL 1.30.8 specification.

-

This namespace resolves precision qualifier define in section 4.5 of GLSL 1.30.8 specification.

-
-
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00135.html b/doc/html/a00135.html deleted file mode 100644 index 0bb5c2d0..00000000 --- a/doc/html/a00135.html +++ /dev/null @@ -1,299 +0,0 @@ - - - - -GLM: glm::core::type::matrix Namespace Reference - - - - - - -
-

glm::core::type::matrix Namespace Reference

-

Matrix types from section 4.1.6 of GLSL 1.30.8 specification. -More...

- - - - -

-

- - - - - - - - - - - - - - - - - - - - - - - - - -

Namespaces

namespace  precision
 

Matrix types with precision qualifier.

-

Typedefs

typedef mat2x2 mat2
 2 columns of 2 components matrix of floating-point numbers.
typedef detail::tmat2x2
-< mediump_float > 
mat2x2
 2 columns of 2 components matrix of floating-point numbers.
typedef detail::tmat2x3
-< mediump_float > 
mat2x3
 2 columns of 3 components matrix of floating-point numbers.
typedef detail::tmat2x4
-< mediump_float > 
mat2x4
 2 columns of 4 components matrix of floating-point numbers.
typedef mat3x3 mat3
 3 columns of 3 components matrix of floating-point numbers.
typedef detail::tmat3x2
-< mediump_float > 
mat3x2
 3 columns of 2 components matrix of floating-point numbers.
typedef detail::tmat3x3
-< mediump_float > 
mat3x3
 3 columns of 3 components matrix of floating-point numbers.
typedef detail::tmat3x4
-< mediump_float > 
mat3x4
 3 columns of 4 components matrix of floating-point numbers.
typedef mat4x4 mat4
 4 columns of 4 components matrix of floating-point numbers.
typedef detail::tmat4x2
-< mediump_float > 
mat4x2
 4 columns of 2 components matrix of floating-point numbers.
typedef detail::tmat4x3
-< mediump_float > 
mat4x3
 4 columns of 3 components matrix of floating-point numbers.
typedef detail::tmat4x4
-< mediump_float > 
mat4x4
 4 columns of 4 components matrix of floating-point numbers.
-

Detailed Description

-

Matrix types from section 4.1.6 of GLSL 1.30.8 specification.

-

This namespace is included in glm namespace.

-

Typedef Documentation

- -
-
- - - - -
typedef mat2x2 mat2
-
-
- -

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

-

(From GLSL 1.30.8 specification, section 4.1.6 Matrices)

- -

Definition at line 212 of file type_mat2x2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<mediump_float> mat2x2
-
-
- -

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

-

(From GLSL 1.30.8 specification, section 4.1.6 Matrices)

- -

Definition at line 199 of file type_mat2x2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<mediump_float> mat2x3
-
-
- -

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

-

(From GLSL 1.30.8 specification, section 4.1.6 Matrices)

- -

Definition at line 194 of file type_mat2x3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<mediump_float> mat2x4
-
-
- -

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

-

(From GLSL 1.30.8 specification, section 4.1.6 Matrices)

- -

Definition at line 190 of file type_mat2x4.hpp.

- -
-
- -
-
- - - - -
typedef mat3x3 mat3
-
-
- -

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

-

(From GLSL 1.30.8 specification, section 4.1.6 Matrices)

- -

Definition at line 210 of file type_mat3x3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<mediump_float> mat3x2
-
-
- -

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

-

(From GLSL 1.30.8 specification, section 4.1.6 Matrices)

- -

Definition at line 191 of file type_mat3x2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<mediump_float> mat3x3
-
-
- -

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

-

(From GLSL 1.30.8 specification, section 4.1.6 Matrices)

- -

Definition at line 197 of file type_mat3x3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<mediump_float> mat3x4
-
-
- -

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

-

(From GLSL 1.30.8 specification, section 4.1.6 Matrices)

- -

Definition at line 191 of file type_mat3x4.hpp.

- -
-
- -
-
- - - - -
typedef mat4x4 mat4
-
-
- -

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

-

(From GLSL 1.30.8 specification, section 4.1.6 Matrices)

- -

Definition at line 215 of file type_mat4x4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<mediump_float> mat4x2
-
-
- -

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

-

(From GLSL 1.30.8 specification, section 4.1.6 Matrices)

- -

Definition at line 193 of file type_mat4x2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<mediump_float> mat4x3
-
-
- -

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

-

(From GLSL 1.30.8 specification, section 4.1.6 Matrices)

- -

Definition at line 198 of file type_mat4x3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<mediump_float> mat4x4
-
-
- -

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

-

(From GLSL 1.30.8 specification, section 4.1.6 Matrices)

- -

Definition at line 202 of file type_mat4x4.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00136.html b/doc/html/a00136.html deleted file mode 100644 index aefe65fd..00000000 --- a/doc/html/a00136.html +++ /dev/null @@ -1,611 +0,0 @@ - - - - -GLM: glm::core::type::matrix::precision Namespace Reference - - - - - - -
-

glm::core::type::matrix::precision Namespace Reference

-

Matrix types with precision qualifier. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Typedefs

typedef detail::tmat2x2
-< highp_float > 
highp_mat2x2
 2 columns of 2 components matrix of high precision floating-point numbers.
typedef detail::tmat2x3
-< highp_float > 
highp_mat2x3
 2 columns of 3 components matrix of high precision floating-point numbers.
typedef detail::tmat2x4
-< highp_float > 
highp_mat2x4
 2 columns of 4 components matrix of high precision floating-point numbers.
typedef detail::tmat3x2
-< highp_float > 
highp_mat3x2
 3 columns of 2 components matrix of high precision floating-point numbers.
typedef detail::tmat3x3
-< highp_float > 
highp_mat3x3
 3 columns of 3 components matrix of high precision floating-point numbers.
typedef detail::tmat3x4
-< highp_float > 
highp_mat3x4
 3 columns of 4 components matrix of high precision floating-point numbers.
typedef detail::tmat4x2
-< highp_float > 
highp_mat4x2
 4 columns of 2 components matrix of high precision floating-point numbers.
typedef detail::tmat4x3
-< highp_float > 
highp_mat4x3
 4 columns of 3 components matrix of high precision floating-point numbers.
typedef detail::tmat4x4
-< highp_float > 
highp_mat4x4
 4 columns of 4 components matrix of high precision floating-point numbers.
typedef detail::tmat2x2
-< lowp_float > 
lowp_mat2x2
 2 columns of 2 components matrix of low precision floating-point numbers.
typedef detail::tmat2x3
-< lowp_float > 
lowp_mat2x3
 2 columns of 3 components matrix of low precision floating-point numbers.
typedef detail::tmat2x4
-< lowp_float > 
lowp_mat2x4
 2 columns of 4 components matrix of low precision floating-point numbers.
typedef detail::tmat3x2
-< lowp_float > 
lowp_mat3x2
 3 columns of 2 components matrix of low precision floating-point numbers.
typedef detail::tmat3x3
-< lowp_float > 
lowp_mat3x3
 3 columns of 3 components matrix of low precision floating-point numbers.
typedef detail::tmat3x4
-< lowp_float > 
lowp_mat3x4
 3 columns of 4 components matrix of low precision floating-point numbers.
typedef detail::tmat4x2
-< lowp_float > 
lowp_mat4x2
 4 columns of 2 components matrix of low precision floating-point numbers.
typedef detail::tmat4x3
-< lowp_float > 
lowp_mat4x3
 4 columns of 3 components matrix of low precision floating-point numbers.
typedef detail::tmat4x4
-< lowp_float > 
lowp_mat4x4
 4 columns of 4 components matrix of low precision floating-point numbers.
typedef detail::tmat2x2
-< mediump_float > 
mediump_mat2x2
 2 columns of 2 components matrix of medium precision floating-point numbers.
typedef detail::tmat2x3
-< mediump_float > 
mediump_mat2x3
 2 columns of 3 components matrix of medium precision floating-point numbers.
typedef detail::tmat2x4
-< mediump_float > 
mediump_mat2x4
 2 columns of 4 components matrix of medium precision floating-point numbers.
typedef detail::tmat3x2
-< mediump_float > 
mediump_mat3x2
 3 columns of 2 components matrix of medium precision floating-point numbers.
typedef detail::tmat3x3
-< mediump_float > 
mediump_mat3x3
 3 columns of 3 components matrix of medium precision floating-point numbers.
typedef detail::tmat3x4
-< mediump_float > 
mediump_mat3x4
 3 columns of 4 components matrix of medium precision floating-point numbers.
typedef detail::tmat4x2
-< mediump_float > 
mediump_mat4x2
 4 columns of 2 components matrix of medium precision floating-point numbers.
typedef detail::tmat4x3
-< mediump_float > 
mediump_mat4x3
 4 columns of 3 components matrix of medium precision floating-point numbers.
typedef detail::tmat4x4
-< mediump_float > 
mediump_mat4x4
 4 columns of 4 components matrix of medium precision floating-point numbers.
-

Detailed Description

-

Matrix types with precision qualifier.

-

This namespace is included in glm namespace.

-

Typedef Documentation

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

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 192 of file type_mat2x2.hpp.

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

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 187 of file type_mat2x3.hpp.

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

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 183 of file type_mat2x4.hpp.

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

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 184 of file type_mat3x2.hpp.

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

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 190 of file type_mat3x3.hpp.

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

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 184 of file type_mat3x4.hpp.

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

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 186 of file type_mat4x2.hpp.

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

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 191 of file type_mat4x3.hpp.

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

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 195 of file type_mat4x4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<lowp_float> lowp_mat2x2
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 184 of file type_mat2x2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<lowp_float> lowp_mat2x3
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 179 of file type_mat2x3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<lowp_float> lowp_mat2x4
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 175 of file type_mat2x4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<lowp_float> lowp_mat3x2
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 176 of file type_mat3x2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<lowp_float> lowp_mat3x3
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 182 of file type_mat3x3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<lowp_float> lowp_mat3x4
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 176 of file type_mat3x4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<lowp_float> lowp_mat4x2
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 178 of file type_mat4x2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<lowp_float> lowp_mat4x3
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 183 of file type_mat4x3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<lowp_float> lowp_mat4x4
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 187 of file type_mat4x4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<mediump_float> mediump_mat2x2
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 188 of file type_mat2x2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x3<mediump_float> mediump_mat2x3
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 183 of file type_mat2x3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x4<mediump_float> mediump_mat2x4
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 179 of file type_mat2x4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x2<mediump_float> mediump_mat3x2
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 180 of file type_mat3x2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<mediump_float> mediump_mat3x3
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 186 of file type_mat3x3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x4<mediump_float> mediump_mat3x4
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 180 of file type_mat3x4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x2<mediump_float> mediump_mat4x2
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 182 of file type_mat4x2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x3<mediump_float> mediump_mat4x3
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 187 of file type_mat4x3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<mediump_float> mediump_mat4x4
-
-
- -

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

-

There is no garanty on the actual precision. (From GLSL 1.30.8 specification, section 4.1.6 Matrices and section 4.5 Precision and Precision Qualifiers)

- -

Definition at line 191 of file type_mat4x4.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00137.html b/doc/html/a00137.html deleted file mode 100644 index 4aad0652..00000000 --- a/doc/html/a00137.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - -GLM: glm::core::type::scalar Namespace Reference - - - - - - -
-

glm::core::type::scalar Namespace Reference

-

Scalar types from section 4.1.2 Booleans, 4.1.3 Integers and 4.1.4 Floats of GLSL 1.30.8 specification. -More...

- - - - -

-

- - - -

Namespaces

namespace  precision
 

Scalar types with precision qualifier.

-

Typedefs

typedef uint_t uint
 Unsigned integer.
-

Detailed Description

-

Scalar types from section 4.1.2 Booleans, 4.1.3 Integers and 4.1.4 Floats of GLSL 1.30.8 specification.

-

This namespace is included in glm namespace.

-

Typedef Documentation

- -
-
- - - - -
typedef uint_t uint
-
-
- -

Unsigned integer.

-

From GLSL 1.30.8 specification section 4.1.3 Integers.

- -

Definition at line 122 of file type_int.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00138.html b/doc/html/a00138.html deleted file mode 100644 index d738bf55..00000000 --- a/doc/html/a00138.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - -GLM: glm::core::type::scalar::precision Namespace Reference - - - - - - -
-

glm::core::type::scalar::precision Namespace Reference

-

Scalar types with precision qualifier. -More...

- - - - - - - - - - - - - - - - - - - - -

Typedefs

typedef highp_float_t highp_float
 High precision floating-point numbers.
typedef highp_int_t highp_int
 High precision signed integer.
typedef highp_uint_t highp_uint
 High precision unsigned integer.
typedef lowp_float_t lowp_float
 Low precision floating-point numbers.
typedef lowp_int_t lowp_int
 Low precision signed integer.
typedef lowp_uint_t lowp_uint
 Low precision unsigned integer.
typedef mediump_float_t mediump_float
 Medium precision floating-point numbers.
typedef mediump_int_t mediump_int
 Medium precision signed integer.
typedef mediump_uint_t mediump_uint
 Medium precision unsigned integer.
-

Detailed Description

-

Scalar types with precision qualifier.

-

This namespace is included in glm namespace.

-

Typedef Documentation

- -
-
- - - - -
typedef highp_float_t highp_float
-
-
- -

High precision floating-point numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification

- -

Definition at line 52 of file type_float.hpp.

- -
-
- -
-
- - - - -
typedef highp_int_t highp_int
-
-
- -

High precision signed integer.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification.

- -

Definition at line 77 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef highp_uint_t highp_uint
-
-
- -

High precision unsigned integer.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification.

- -

Definition at line 90 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef lowp_float_t lowp_float
-
-
- -

Low precision floating-point numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification

- -

Definition at line 44 of file type_float.hpp.

- -
-
- -
-
- - - - -
typedef lowp_int_t lowp_int
-
-
- -

Low precision signed integer.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification.

- -

Definition at line 69 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef lowp_uint_t lowp_uint
-
-
- -

Low precision unsigned integer.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification.

- -

Definition at line 82 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef mediump_float_t mediump_float
-
-
- -

Medium precision floating-point numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification

- -

Definition at line 48 of file type_float.hpp.

- -
-
- -
-
- - - - -
typedef mediump_int_t mediump_int
-
-
- -

Medium precision signed integer.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification.

- -

Definition at line 73 of file type_int.hpp.

- -
-
- -
-
- - - - -
typedef mediump_uint_t mediump_uint
-
-
- -

Medium precision unsigned integer.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification.

- -

Definition at line 86 of file type_int.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00139.html b/doc/html/a00139.html deleted file mode 100644 index 96fba2ea..00000000 --- a/doc/html/a00139.html +++ /dev/null @@ -1,299 +0,0 @@ - - - - -GLM: glm::core::type::vector Namespace Reference - - - - - - -
-

glm::core::type::vector Namespace Reference

-

Vector types from section 4.1.5 of GLSL 1.30.8 specification. -More...

- - - - -

-

- - - - - - - - - - - - - - - - - - - - - - - - - -

Namespaces

namespace  precision
 

Vector types with precision qualifier.

-

Typedefs

typedef detail::tvec2< bool > bvec2
 2 components vector of boolean.
typedef detail::tvec3< bool > bvec3
 3 components vector of boolean.
typedef detail::tvec4< bool > bvec4
 4 components vector of boolean.
typedef detail::tvec2
-< mediump_int > 
ivec2
 2 components vector of signed integer numbers.
typedef detail::tvec3
-< mediump_int > 
ivec3
 3 components vector of signed integer numbers.
typedef detail::tvec4
-< mediump_int > 
ivec4
 4 components vector of signed integer numbers.
typedef detail::tvec2
-< mediump_uint > 
uvec2
 2 components vector of unsigned integer numbers.
typedef detail::tvec3
-< mediump_uint > 
uvec3
 3 components vector of unsigned integer numbers.
typedef detail::tvec4
-< mediump_uint > 
uvec4
 4 components vector of unsigned integer numbers.
typedef detail::tvec2
-< mediump_float > 
vec2
 2 components vector of floating-point numbers.
typedef detail::tvec3
-< mediump_float > 
vec3
 3 components vector of floating-point numbers.
typedef detail::tvec4
-< mediump_float > 
vec4
 4 components vector of floating-point numbers.
-

Detailed Description

-

Vector types from section 4.1.5 of GLSL 1.30.8 specification.

-

This namespace is included in glm namespace.

-

Typedef Documentation

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

2 components vector of boolean.

-

From GLSL 1.30.8 specification, section 4.1.5 Vectors.

- -

Definition at line 200 of file type_vec2.hpp.

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

3 components vector of boolean.

-

From GLSL 1.30.8 specification, section 4.1.5 Vectors.

- -

Definition at line 199 of file type_vec3.hpp.

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

4 components vector of boolean.

-

From GLSL 1.30.8 specification, section 4.1.5 Vectors.

- -

Definition at line 215 of file type_vec4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<mediump_int> ivec2
-
-
- -

2 components vector of signed integer numbers.

-

From GLSL 1.30.8 specification, section 4.1.5 Vectors.

- -

Definition at line 242 of file type_vec2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<mediump_int> ivec3
-
-
- -

3 components vector of signed integer numbers.

-

From GLSL 1.30.8 specification, section 4.1.5 Vectors.

- -

Definition at line 241 of file type_vec3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<mediump_int> ivec4
-
-
- -

4 components vector of signed integer numbers.

-

From GLSL 1.30.8 specification, section 4.1.5 Vectors.

- -

Definition at line 255 of file type_vec4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<mediump_uint> uvec2
-
-
- -

2 components vector of unsigned integer numbers.

-

From GLSL 1.30.8 specification, section 4.1.5 Vectors.

- -

Definition at line 276 of file type_vec2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<mediump_uint> uvec3
-
-
- -

3 components vector of unsigned integer numbers.

-

From GLSL 1.30.8 specification, section 4.1.5 Vectors.

- -

Definition at line 275 of file type_vec3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<mediump_uint> uvec4
-
-
- -

4 components vector of unsigned integer numbers.

-

From GLSL 1.30.8 specification, section 4.1.5 Vectors.

- -

Definition at line 287 of file type_vec4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<mediump_float> vec2
-
-
- -

2 components vector of floating-point numbers.

-

From GLSL 1.30.8 specification, section 4.1.5 Vectors.

- -

Definition at line 208 of file type_vec2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<mediump_float> vec3
-
-
- -

3 components vector of floating-point numbers.

-

From GLSL 1.30.8 specification, section 4.1.5 Vectors.

- -

Definition at line 207 of file type_vec3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<mediump_float> vec4
-
-
- -

4 components vector of floating-point numbers.

-

From GLSL 1.30.8 specification, section 4.1.5 Vectors.

- -

Definition at line 223 of file type_vec4.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00140.html b/doc/html/a00140.html deleted file mode 100644 index 305bdfdb..00000000 --- a/doc/html/a00140.html +++ /dev/null @@ -1,596 +0,0 @@ - - - - -GLM: glm::core::type::vector::precision Namespace Reference - - - - - - -
-

glm::core::type::vector::precision Namespace Reference

-

Vector types with precision qualifier. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Typedefs

typedef detail::tvec2< highp_int > highp_ivec2
 2 components vector of high precision signed integer numbers.
typedef detail::tvec3< highp_int > highp_ivec3
 3 components vector of high precision signed integer numbers.
typedef detail::tvec4< highp_int > highp_ivec4
 4 components vector of high precision signed integer numbers.
typedef detail::tvec2< highp_uint > highp_uvec2
 2 components vector of high precision unsigned integer numbers.
typedef detail::tvec3< highp_uint > highp_uvec3
 3 components vector of high precision unsigned integer numbers.
typedef detail::tvec4< highp_uint > highp_uvec4
 4 components vector of high precision unsigned integer numbers.
typedef detail::tvec2
-< highp_float > 
highp_vec2
 2 components vector of high precision floating-point numbers.
typedef detail::tvec3
-< highp_float > 
highp_vec3
 3 components vector of high precision floating-point numbers.
typedef detail::tvec4
-< highp_float > 
highp_vec4
 4 components vector of high precision floating-point numbers.
typedef detail::tvec2< lowp_int > lowp_ivec2
 2 components vector of low precision signed integer numbers.
typedef detail::tvec3< lowp_int > lowp_ivec3
 3 components vector of low precision signed integer numbers.
typedef detail::tvec4< lowp_int > lowp_ivec4
 4 components vector of low precision signed integer numbers.
typedef detail::tvec2< lowp_uint > lowp_uvec2
 2 components vector of low precision unsigned integer numbers.
typedef detail::tvec3< lowp_uint > lowp_uvec3
 3 components vector of low precision unsigned integer numbers.
typedef detail::tvec4< lowp_uint > lowp_uvec4
 4 components vector of low precision unsigned integer numbers.
typedef detail::tvec2< lowp_float > lowp_vec2
 2 components vector of low precision floating-point numbers.
typedef detail::tvec3< lowp_float > lowp_vec3
 3 components vector of low precision floating-point numbers.
typedef detail::tvec4< lowp_float > lowp_vec4
 4 components vector of low precision floating-point numbers.
typedef detail::tvec2
-< mediump_int > 
mediump_ivec2
 2 components vector of medium precision signed integer numbers.
typedef detail::tvec3
-< mediump_int > 
mediump_ivec3
 3 components vector of medium precision signed integer numbers.
typedef detail::tvec4
-< mediump_int > 
mediump_ivec4
 4 components vector of medium precision signed integer numbers.
typedef detail::tvec2
-< mediump_uint > 
mediump_uvec2
 2 components vector of medium precision unsigned integer numbers.
typedef detail::tvec3
-< mediump_uint > 
mediump_uvec3
 3 components vector of medium precision unsigned integer numbers.
typedef detail::tvec4
-< mediump_uint > 
mediump_uvec4
 4 components vector of medium precision unsigned integer numbers.
typedef detail::tvec2
-< mediump_float > 
mediump_vec2
 2 components vector of medium precision floating-point numbers.
typedef detail::tvec3
-< mediump_float > 
mediump_vec3
 3 components vector of medium precision floating-point numbers.
typedef detail::tvec4
-< mediump_float > 
mediump_vec4
 4 components vector of medium precision floating-point numbers.
-

Detailed Description

-

Vector types with precision qualifier.

-

This namespace is included in glm namespace.

-

Typedef Documentation

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

2 components vector of high precision signed integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 258 of file type_vec2.hpp.

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

3 components vector of high precision signed integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 257 of file type_vec3.hpp.

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

4 components vector of high precision signed integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 269 of file type_vec4.hpp.

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

2 components vector of high precision unsigned integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 292 of file type_vec2.hpp.

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

3 components vector of high precision unsigned integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 291 of file type_vec3.hpp.

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

4 components vector of high precision unsigned integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 301 of file type_vec4.hpp.

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

2 components vector of high precision floating-point numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.

- -

Definition at line 224 of file type_vec2.hpp.

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

3 components vector of high precision floating-point numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.

- -

Definition at line 223 of file type_vec3.hpp.

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

4 components vector of high precision floating-point numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.

- -

Definition at line 237 of file type_vec4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<lowp_int> lowp_ivec2
-
-
- -

2 components vector of low precision signed integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 266 of file type_vec2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<lowp_int> lowp_ivec3
-
-
- -

3 components vector of low precision signed integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 265 of file type_vec3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<lowp_int> lowp_ivec4
-
-
- -

4 components vector of low precision signed integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 277 of file type_vec4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<lowp_uint> lowp_uvec2
-
-
- -

2 components vector of low precision unsigned integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 300 of file type_vec2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<lowp_uint> lowp_uvec3
-
-
- -

3 components vector of low precision unsigned integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 299 of file type_vec3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<lowp_uint> lowp_uvec4
-
-
- -

4 components vector of low precision unsigned integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 309 of file type_vec4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<lowp_float> lowp_vec2
-
-
- -

2 components vector of low precision floating-point numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.

- -

Definition at line 232 of file type_vec2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<lowp_float> lowp_vec3
-
-
- -

3 components vector of low precision floating-point numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.

- -

Definition at line 231 of file type_vec3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<lowp_float> lowp_vec4
-
-
- -

4 components vector of low precision floating-point numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.

- -

Definition at line 245 of file type_vec4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<mediump_int> mediump_ivec2
-
-
- -

2 components vector of medium precision signed integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 262 of file type_vec2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<mediump_int> mediump_ivec3
-
-
- -

3 components vector of medium precision signed integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 261 of file type_vec3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<mediump_int> mediump_ivec4
-
-
- -

4 components vector of medium precision signed integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 273 of file type_vec4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<mediump_uint> mediump_uvec2
-
-
- -

2 components vector of medium precision unsigned integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 296 of file type_vec2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<mediump_uint> mediump_uvec3
-
-
- -

3 components vector of medium precision unsigned integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 295 of file type_vec3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<mediump_uint> mediump_uvec4
-
-
- -

4 components vector of medium precision unsigned integer numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.1.5 Precision Qualifiers.

- -

Definition at line 305 of file type_vec4.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<mediump_float> mediump_vec2
-
-
- -

2 components vector of medium precision floating-point numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.

- -

Definition at line 228 of file type_vec2.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<mediump_float> mediump_vec3
-
-
- -

3 components vector of medium precision floating-point numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.

- -

Definition at line 227 of file type_vec3.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<mediump_float> mediump_vec4
-
-
- -

4 components vector of medium precision floating-point numbers.

-

There is no garanty on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.

- -

Definition at line 241 of file type_vec4.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00142.html b/doc/html/a00142.html deleted file mode 100644 index a5a6b28d..00000000 --- a/doc/html/a00142.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -GLM: glm::gtc Namespace Reference - - - - - - -
-

glm::gtc Namespace Reference

-

GLM stable extensions. -More...

- - - - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

-

Namespaces

namespace  double_float
 

GLM_GTC_double_float extension: Add support for double precision floating-point types.

-
namespace  half_float
 

GLM_GTC_half_float extension: Add support for half precision floating-point types.

-
namespace  matrix_operation
 

GLM_GTC_matrix_operation extension: Matrix operation functions.

-
namespace  matrix_projection
 

GLM_GTC_matrix_projection: Varius ways to build and operate on projection matrices.

-
namespace  matrix_transform
 

GLM_GTC_matrix_transform extension: Add transformation matrices.

-
namespace  quaternion
 

GLM_GTC_quaternion extension: Quaternion types and functions.

-
namespace  type_precision
 

GLM_GTC_type_precision extension: Defined types with specific size.

-
-

Detailed Description

-

GLM stable extensions.

-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00143.html b/doc/html/a00143.html deleted file mode 100644 index d167cac9..00000000 --- a/doc/html/a00143.html +++ /dev/null @@ -1,283 +0,0 @@ - - - - -GLM: glm::gtc::double_float Namespace Reference - - - - - - -
-

glm::gtc::double_float Namespace Reference

-

GLM_GTC_double_float extension: Add support for double precision floating-point types. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - -

Typedefs

typedef detail::tmat2x2< double > dmat2
 2 * 2 matrix of double-precision floating-point numbers.
typedef detail::tmat3x3< double > dmat3
 3 * 3 matrix of double-precision floating-point numbers.
typedef detail::tmat4x4< double > dmat4
 4 * 4 matrix of double-precision floating-point numbers.
typedef detail::tvec2< double > dvec2
 Vector of 2 double-precision floating-point numbers.
typedef detail::tvec3< double > dvec3
 Vector of 3 double-precision floating-point numbers.
typedef detail::tvec4< double > dvec4
 Vector of 4 double-precision floating-point numbers.
typedef detail::tmat2x2< float > fmat2
 2 * 2 matrix of single-precision floating-point numbers.
typedef detail::tmat3x3< float > fmat3
 3 * 3 matrix of single-precision floating-point numbers.
typedef detail::tmat4x4< float > fmat4
 4 * 4 matrix of single-precision floating-point numbers.
typedef detail::tvec2< float > fvec2
 Vector of 2 single-precision floating-point numbers.
typedef detail::tvec3< float > fvec3
 Vector of 3 single-precision floating-point numbers.
typedef detail::tvec4< float > fvec4
 Vector of 4 single-precision floating-point numbers.
-

Detailed Description

-

GLM_GTC_double_float extension: Add support for double precision floating-point types.

-

Typedef Documentation

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

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

-

From GLM_GTC_double_float extension.

- -

Definition at line 71 of file gtc/double_float.hpp.

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

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

-

From GLM_GTC_double_float extension.

- -

Definition at line 75 of file gtc/double_float.hpp.

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

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

-

From GLM_GTC_double_float extension.

- -

Definition at line 79 of file gtc/double_float.hpp.

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

Vector of 2 double-precision floating-point numbers.

-

From GLM_GTC_double_float extension.

- -

Definition at line 59 of file gtc/double_float.hpp.

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

Vector of 3 double-precision floating-point numbers.

-

From GLM_GTC_double_float extension.

- -

Definition at line 63 of file gtc/double_float.hpp.

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

Vector of 4 double-precision floating-point numbers.

-

From GLM_GTC_double_float extension.

- -

Definition at line 67 of file gtc/double_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<float> fmat2
-
-
- -

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

-

From GLM_GTC_double_float extension.

- -

Definition at line 47 of file gtc/double_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<float> fmat3
-
-
- -

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

-

From GLM_GTC_double_float extension.

- -

Definition at line 51 of file gtc/double_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<float> fmat4
-
-
- -

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

-

From GLM_GTC_double_float extension.

- -

Definition at line 55 of file gtc/double_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<float> fvec2
-
-
- -

Vector of 2 single-precision floating-point numbers.

-

From GLM_GTC_double_float extension.

- -

Definition at line 35 of file gtc/double_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<float> fvec3
-
-
- -

Vector of 3 single-precision floating-point numbers.

-

From GLM_GTC_double_float extension.

- -

Definition at line 39 of file gtc/double_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<float> fvec4
-
-
- -

Vector of 4 single-precision floating-point numbers.

-

From GLM_GTC_double_float extension.

- -

Definition at line 43 of file gtc/double_float.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00144.html b/doc/html/a00144.html deleted file mode 100644 index 2b3dc1ab..00000000 --- a/doc/html/a00144.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - -GLM: glm::gtc::half_float Namespace Reference - - - - - - -
-

glm::gtc::half_float Namespace Reference

-

GLM_GTC_half_float extension: Add support for half precision floating-point types. -More...

- - - - - - - - - - - - - - - - -

Typedefs

typedef detail::thalf half
 Type for half-precision floating-point numbers.
typedef detail::tmat2x2
-< detail::thalf > 
hmat2
 2 * 2 matrix of half-precision floating-point numbers.
typedef detail::tmat3x3
-< detail::thalf > 
hmat3
 3 * 3 matrix of half-precision floating-point numbers.
typedef detail::tmat4x4
-< detail::thalf > 
hmat4
 4 * 4 matrix of half-precision floating-point numbers.
typedef detail::tvec2
-< detail::thalf > 
hvec2
 Vector of 2 half-precision floating-point numbers.
typedef detail::tvec3
-< detail::thalf > 
hvec3
 Vector of 3 half-precision floating-point numbers.
typedef detail::tvec4
-< detail::thalf > 
hvec4
 Vector of 4 half-precision floating-point numbers.
-

Detailed Description

-

GLM_GTC_half_float extension: Add support for half precision floating-point types.

-

Typedef Documentation

- -
-
- - - - -
typedef detail::thalf half
-
-
- -

Type for half-precision floating-point numbers.

-

From GLM_GTC_half_float extension.

- -

Definition at line 370 of file gtc/half_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat2x2<detail::thalf> hmat2
-
-
- -

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

-

From GLM_GTC_half_float extension.

- -

Definition at line 386 of file gtc/half_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat3x3<detail::thalf> hmat3
-
-
- -

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

-

From GLM_GTC_half_float extension.

- -

Definition at line 390 of file gtc/half_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tmat4x4<detail::thalf> hmat4
-
-
- -

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

-

From GLM_GTC_half_float extension.

- -

Definition at line 394 of file gtc/half_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec2<detail::thalf> hvec2
-
-
- -

Vector of 2 half-precision floating-point numbers.

-

From GLM_GTC_half_float extension.

- -

Definition at line 374 of file gtc/half_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec3<detail::thalf> hvec3
-
-
- -

Vector of 3 half-precision floating-point numbers.

-

From GLM_GTC_half_float extension.

- -

Definition at line 378 of file gtc/half_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tvec4<detail::thalf> hvec4
-
-
- -

Vector of 4 half-precision floating-point numbers.

-

From GLM_GTC_half_float extension.

- -

Definition at line 382 of file gtc/half_float.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00145.html b/doc/html/a00145.html deleted file mode 100644 index 958cbd29..00000000 --- a/doc/html/a00145.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -GLM: glm::gtc::matrix_operation Namespace Reference - - - - - - -
-

glm::gtc::matrix_operation Namespace Reference

-

GLM_GTC_matrix_operation extension: Matrix operation functions. -More...

- -
-

Detailed Description

-

GLM_GTC_matrix_operation extension: Matrix operation functions.

-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00146.html b/doc/html/a00146.html deleted file mode 100644 index 33cae9d9..00000000 --- a/doc/html/a00146.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - -GLM: glm::gtc::matrix_projection Namespace Reference - - - - - - -
-

glm::gtc::matrix_projection Namespace Reference

-

GLM_GTC_matrix_projection: Varius ways to build and operate on projection matrices. -More...

- - - - - - - - - - - - - - - - - - - - -

Functions

template<typename valType >
detail::tmat4x4< valType > frustum (valType const &left, valType const &right, valType const &bottom, valType const &top, valType const &nearVal, valType const &farVal)
 Creates a frustum matrix.
template<typename valType >
detail::tmat4x4< valType > ortho (valType const &left, valType const &right, valType const &bottom, valType const &top, valType const &zNear, valType const &zFar)
 Creates a matrix for an orthographic parallel viewing volume.
template<typename valType >
detail::tmat4x4< valType > ortho (valType const &left, valType const &right, valType const &bottom, valType const &top)
 Creates a matrix for projecting two-dimensional coordinates onto the screen.
template<typename valType >
detail::tmat4x4< valType > perspective (valType const &fovy, valType const &aspect, valType const &zNear, valType const &zFar)
 Creates a matrix for a symetric perspective-view frustum.
template<typename valTypeT , typename valTypeU >
detail::tvec3< valTypeT > project (detail::tvec3< valTypeT > const &obj, detail::tmat4x4< valTypeT > const &model, detail::tmat4x4< valTypeT > const &proj, detail::tvec4< valTypeU > const &viewport)
 Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
template<typename valTypeT , typename valTypeU >
detail::tvec3< valTypeT > unProject (detail::tvec3< valTypeT > const &win, detail::tmat4x4< valTypeT > const &model, detail::tmat4x4< valTypeT > const &proj, detail::tvec4< valTypeU > const &viewport)
 Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
-

Detailed Description

-

GLM_GTC_matrix_projection: Varius ways to build and operate on projection matrices.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtc::matrix_projection::frustum (valType const &  left,
valType const &  right,
valType const &  bottom,
valType const &  top,
valType const &  nearVal,
valType const &  farVal 
)
-
-
- -

Creates a frustum matrix.

-

From GLM_GTC_matrix_projection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtc::matrix_projection::ortho (valType const &  left,
valType const &  right,
valType const &  bottom,
valType const &  top,
valType const &  zNear,
valType const &  zFar 
)
-
-
- -

Creates a matrix for an orthographic parallel viewing volume.

-

From GLM_GTC_matrix_projection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtc::matrix_projection::ortho (valType const &  left,
valType const &  right,
valType const &  bottom,
valType const &  top 
)
-
-
- -

Creates a matrix for projecting two-dimensional coordinates onto the screen.

-

From GLM_GTC_matrix_projection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtc::matrix_projection::perspective (valType const &  fovy,
valType const &  aspect,
valType const &  zNear,
valType const &  zFar 
)
-
-
- -

Creates a matrix for a symetric perspective-view frustum.

-

From GLM_GTC_matrix_projection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tvec3<valTypeT> glm::gtc::matrix_projection::project (detail::tvec3< valTypeT > const &  obj,
detail::tmat4x4< valTypeT > const &  model,
detail::tmat4x4< valTypeT > const &  proj,
detail::tvec4< valTypeU > const &  viewport 
)
-
-
- -

Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.

-

From GLM_GTC_matrix_projection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tvec3<valTypeT> glm::gtc::matrix_projection::unProject (detail::tvec3< valTypeT > const &  win,
detail::tmat4x4< valTypeT > const &  model,
detail::tmat4x4< valTypeT > const &  proj,
detail::tvec4< valTypeU > const &  viewport 
)
-
-
- -

Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.

-

From GLM_GTC_matrix_projection extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00147.html b/doc/html/a00147.html deleted file mode 100644 index 3f8b4b5c..00000000 --- a/doc/html/a00147.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - -GLM: glm::gtc::matrix_transform Namespace Reference - - - - - - -
-

glm::gtc::matrix_transform Namespace Reference

-

GLM_GTC_matrix_transform extension: Add transformation matrices. -More...

- - - - - - - - - - - -

Functions

template<typename valType >
detail::tmat4x4< valType > rotate (detail::tmat4x4< valType > const &m, valType const &angle, detail::tvec3< valType > const &v)
 Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees.
template<typename valType >
detail::tmat4x4< valType > scale (detail::tmat4x4< valType > const &m, detail::tvec3< valType > const &v)
 Builds a scale 4 * 4 matrix created from 3 scalars.
template<typename valType >
detail::tmat4x4< valType > translate (detail::tmat4x4< valType > const &m, detail::tvec3< valType > const &v)
 Builds a translation 4 * 4 matrix created from a vector of 3 components.
-

Detailed Description

-

GLM_GTC_matrix_transform extension: Add transformation matrices.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtc::matrix_transform::rotate (detail::tmat4x4< valType > const &  m,
valType const &  angle,
detail::tvec3< valType > const &  v 
)
-
-
- -

Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees.

-

From GLM_GTC_matrix_transform extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtc::matrix_transform::scale (detail::tmat4x4< valType > const &  m,
detail::tvec3< valType > const &  v 
)
-
-
- -

Builds a scale 4 * 4 matrix created from 3 scalars.

-

From GLM_GTC_matrix_transform extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtc::matrix_transform::translate (detail::tmat4x4< valType > const &  m,
detail::tvec3< valType > const &  v 
)
-
-
- -

Builds a translation 4 * 4 matrix created from a vector of 3 components.

-

From GLM_GTC_matrix_transform extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00148.html b/doc/html/a00148.html deleted file mode 100644 index e2fbb8a1..00000000 --- a/doc/html/a00148.html +++ /dev/null @@ -1,407 +0,0 @@ - - - - -GLM: glm::gtc::quaternion Namespace Reference - - - - - - -
-

glm::gtc::quaternion Namespace Reference

-

GLM_GTC_quaternion extension: Quaternion types and functions. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Typedefs

typedef detail::tquat< float > quat
 Quaternion of floating-point numbers.

Functions

template<typename valType >
detail::tquat< valType > conjugate (detail::tquat< valType > const &q)
 Returns the q conjugate.
template<typename valType >
detail::tquat< valType > cross (detail::tquat< valType > const &q1, detail::tquat< valType > const &q2)
 Returns the cross product of q1 and q2.
template<typename valType >
valType dot (detail::tquat< valType > const &q1, detail::tquat< valType > const &q2)
 Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + .
template<typename valType >
detail::tquat< valType > inverse (detail::tquat< valType > const &q)
 Returns the q inverse.
template<typename valType >
valType length (detail::tquat< valType > const &q)
 Returns the length of the quaternion x.
template<typename valType >
detail::tmat3x3< valType > mat3_cast (detail::tquat< valType > const &x)
 Converts a quaternion to a 3 * 3 matrix.
template<typename valType >
detail::tmat4x4< valType > mat4_cast (detail::tquat< valType > const &x)
 Converts a quaternion to a 4 * 4 matrix.
template<typename valType >
detail::tquat< valType > mix (detail::tquat< valType > const &x, detail::tquat< valType > const &y, valType const &a)
 Returns a LERP interpolated quaternion of x and y according a.
template<typename valType >
detail::tquat< valType > normalize (detail::tquat< valType > const &q)
 Returns the normalized quaternion of from x.
template<typename valType >
detail::tquat< valType > quat_cast (detail::tmat4x4< valType > const &x)
 Converts a 4 * 4 matrix to a quaternion.
template<typename valType >
detail::tquat< valType > quat_cast (detail::tmat3x3< valType > const &x)
 Converts a 3 * 3 matrix to a quaternion.
template<typename valType >
detail::tquat< valType > rotate (detail::tquat< valType > const &q, valType const &angle, detail::tvec3< valType > const &v)
 Rotates a quaternion from an vector of 3 components axis and an angle expressed in degrees.
-

Detailed Description

-

GLM_GTC_quaternion extension: Quaternion types and functions.

-

Typedef Documentation

- -
-
- - - - -
typedef detail::tquat<float> quat
-
-
- -

Quaternion of floating-point numbers.

-

From GLM_GTC_quaternion extension.

- -

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

- -
-
-

Function Documentation

- -
-
- - - - - - - - - -
detail::tquat<valType> glm::gtc::quaternion::conjugate (detail::tquat< valType > const &  q ) 
-
-
- -

Returns the q conjugate.

-

From GLM_GTC_quaternion extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tquat<valType> glm::gtc::quaternion::cross (detail::tquat< valType > const &  q1,
detail::tquat< valType > const &  q2 
)
-
-
- -

Returns the cross product of q1 and q2.

-

From GLM_GTC_quaternion extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
valType glm::gtc::quaternion::dot (detail::tquat< valType > const &  q1,
detail::tquat< valType > const &  q2 
)
-
-
- -

Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + .

-

.. From GLM_GTC_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
detail::tquat<valType> glm::gtc::quaternion::inverse (detail::tquat< valType > const &  q ) 
-
-
- -

Returns the q inverse.

-

From GLM_GTC_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
valType glm::gtc::quaternion::length (detail::tquat< valType > const &  q ) 
-
-
- -

Returns the length of the quaternion x.

-

From GLM_GTC_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat3x3<valType> glm::gtc::quaternion::mat3_cast (detail::tquat< valType > const &  x ) 
-
-
- -

Converts a quaternion to a 3 * 3 matrix.

-

From GLM_GTC_quaternion extension.

- -

Referenced by glm::gtx::quaternion::toMat3().

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x4<valType> glm::gtc::quaternion::mat4_cast (detail::tquat< valType > const &  x ) 
-
-
- -

Converts a quaternion to a 4 * 4 matrix.

-

From GLM_GTC_quaternion extension.

- -

Referenced by glm::gtx::quaternion::toMat4().

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<valType> glm::gtc::quaternion::mix (detail::tquat< valType > const &  x,
detail::tquat< valType > const &  y,
valType const &  a 
)
-
-
- -

Returns a LERP interpolated quaternion of x and y according a.

-

From GLM_GTC_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
detail::tquat<valType> glm::gtc::quaternion::normalize (detail::tquat< valType > const &  q ) 
-
-
- -

Returns the normalized quaternion of from x.

-

From GLM_GTC_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
detail::tquat<valType> glm::gtc::quaternion::quat_cast (detail::tmat4x4< valType > const &  x ) 
-
-
- -

Converts a 4 * 4 matrix to a quaternion.

-

From GLM_GTC_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
detail::tquat<valType> glm::gtc::quaternion::quat_cast (detail::tmat3x3< valType > const &  x ) 
-
-
- -

Converts a 3 * 3 matrix to a quaternion.

-

From GLM_GTC_quaternion extension.

- -

Referenced by glm::gtx::quaternion::toQuat().

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<valType> glm::gtc::quaternion::rotate (detail::tquat< valType > const &  q,
valType const &  angle,
detail::tvec3< valType > const &  v 
)
-
-
- -

Rotates a quaternion from an vector of 3 components axis and an angle expressed in degrees.

-

From GLM_GTC_quaternion extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00149.html b/doc/html/a00149.html deleted file mode 100644 index 82ca45e1..00000000 --- a/doc/html/a00149.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - -GLM: glm::gtc::type_precision Namespace Reference - - - - - - -
-

glm::gtc::type_precision Namespace Reference

-

GLM_GTC_type_precision extension: Defined types with specific size. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Typedefs

-typedef float16 f16
 Half-precision floating-point scalar. (from GLM_GTC_type_precision extension).
-typedef detail::tmat2x2< f16f16mat2
 Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat2x2< f16f16mat2x2
 Half-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat2x3< f16f16mat2x3
 Half-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat2x4< f16f16mat2x4
 Half-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat3x3< f16f16mat3
 Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat3x2< f16f16mat3x2
 Half-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat3x3< f16f16mat3x3
 Half-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat3x4< f16f16mat3x4
 Half-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat4x4< f16f16mat4
 Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat4x2< f16f16mat4x2
 Half-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat4x3< f16f16mat4x3
 Half-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat4x4< f16f16mat4x4
 Half-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tquat< f16f16quat
 Half-precision floating-point quaternion. (from GLM_GTC_type_precision extension).
-typedef detail::tvec2< f16f16vec2
 Half-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension).
-typedef detail::tvec3< f16f16vec3
 Half-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension).
-typedef detail::tvec4< f16f16vec4
 Half-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension).
-typedef float32 f32
 Single-precision floating-point scalar. (from GLM_GTC_type_precision extension).
-typedef detail::tmat2x2< f32f32mat2
 Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat2x2< f32f32mat2x2
 Single-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat2x3< f32f32mat2x3
 Single-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat2x4< f32f32mat2x4
 Single-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat3x3< f32f32mat3
 Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat3x2< f32f32mat3x2
 Single-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat3x3< f32f32mat3x3
 Single-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat3x4< f32f32mat3x4
 Single-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat4x4< f32f32mat4
 Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat4x2< f32f32mat4x2
 Single-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat4x3< f32f32mat4x3
 Single-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat4x4< f32f32mat4x4
 Single-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tquat< f32f32quat
 Single-precision floating-point quaternion. (from GLM_GTC_type_precision extension).
-typedef detail::tvec2< f32f32vec2
 Single-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension).
-typedef detail::tvec3< f32f32vec3
 Single-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension).
-typedef detail::tvec4< f32f32vec4
 Single-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension).
-typedef float64 f64
 Double-precision floating-point scalar. (from GLM_GTC_type_precision extension).
-typedef detail::tmat2x2< f64f64mat2
 Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat2x2< f64f64mat2x2
 Double-precision floating-point 2x2 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat2x3< f64f64mat2x3
 Double-precision floating-point 2x3 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat2x4< f64f64mat2x4
 Double-precision floating-point 2x4 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat3x3< f64f64mat3
 Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat3x2< f64f64mat3x2
 Double-precision floating-point 3x2 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat3x3< f64f64mat3x3
 Double-precision floating-point 3x3 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat3x4< f64f64mat3x4
 Double-precision floating-point 3x4 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat4x4< f64f64mat4
 Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat4x2< f64f64mat4x2
 Double-precision floating-point 4x2 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat4x3< f64f64mat4x3
 Double-precision floating-point 4x3 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tmat4x4< f64f64mat4x4
 Double-precision floating-point 4x4 matrix. (from GLM_GTC_type_precision extension).
-typedef detail::tquat< f64f64quat
 Double-precision floating-point quaternion. (from GLM_GTC_type_precision extension).
-typedef detail::tvec2< f64f64vec2
 Double-precision floating-point vector of 2 components. (from GLM_GTC_type_precision extension).
-typedef detail::tvec3< f64f64vec3
 Double-precision floating-point vector of 3 components. (from GLM_GTC_type_precision extension).
-typedef detail::tvec4< f64f64vec4
 Double-precision floating-point vector of 4 components. (from GLM_GTC_type_precision extension).
-typedef detail::float16 float16
 Half-precision floating-point scalar. (from GLM_GTC_type_precision extension).
-typedef detail::float32 float32
 Single-precision floating-point scalar. (from GLM_GTC_type_precision extension).
-typedef detail::float64 float64
 Double-precision floating-point scalar. (from GLM_GTC_type_precision extension).
-typedef int16 i16
 16bit signed integer. (from GLM_GTC_type_precision extension)
-typedef detail::tvec2< i16i16vec2
 16bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec3< i16i16vec3
 16bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec4< i16i16vec4
 16bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)
-typedef int32 i32
 32bit signed integer. (from GLM_GTC_type_precision extension)
-typedef detail::tvec2< i32i32vec2
 32bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec3< i32i32vec3
 32bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec4< i32i32vec4
 32bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)
-typedef int64 i64
 64bit signed integer. (from GLM_GTC_type_precision extension)
-typedef detail::tvec2< i64i64vec2
 64bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec3< i64i64vec3
 64bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec4< i64i64vec4
 64bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)
-typedef int8 i8
 8bit signed integer. (from GLM_GTC_type_precision extension)
-typedef detail::tvec2< i8i8vec2
 8bit signed integer vector of 2 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec3< i8i8vec3
 8bit signed integer vector of 3 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec4< i8i8vec4
 8bit signed integer vector of 4 components. (from GLM_GTC_type_precision extension)
-typedef detail::int16 int16
 16bit signed integer. (from GLM_GTC_type_precision extension)
-typedef detail::int32 int32
 32bit signed integer. (from GLM_GTC_type_precision extension)
-typedef detail::int64 int64
 64bit signed integer. (from GLM_GTC_type_precision extension)
-typedef detail::int8 int8
 8bit signed integer. (from GLM_GTC_type_precision extension)
-typedef uint16 u16
 16bit unsigned integer. (from GLM_GTC_type_precision extension)
-typedef detail::tvec2< u16u16vec2
 16bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec3< u16u16vec3
 16bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec4< u16u16vec4
 16bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)
-typedef uint32 u32
 32bit unsigned integer. (from GLM_GTC_type_precision extension)
-typedef detail::tvec2< u32u32vec2
 32bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec3< u32u32vec3
 32bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec4< u32u32vec4
 32bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)
-typedef uint64 u64
 64bit unsigned integer. (from GLM_GTC_type_precision extension)
-typedef detail::tvec2< u64u64vec2
 64bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec3< u64u64vec3
 64bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec4< u64u64vec4
 64bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)
-typedef uint8 u8
 8bit unsigned integer. (from GLM_GTC_type_precision extension)
-typedef detail::tvec2< u8u8vec2
 8bit unsigned integer vector of 2 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec3< u8u8vec3
 8bit unsigned integer vector of 3 components. (from GLM_GTC_type_precision extension)
-typedef detail::tvec4< u8u8vec4
 8bit unsigned integer vector of 4 components. (from GLM_GTC_type_precision extension)
-typedef detail::uint16 uint16
 16bit unsigned integer. (from GLM_GTC_type_precision extension)
-typedef detail::uint32 uint32
 32bit unsigned integer. (from GLM_GTC_type_precision extension)
-typedef detail::uint64 uint64
 64bit unsigned integer. (from GLM_GTC_type_precision extension)
-typedef detail::uint8 uint8
 8bit unsigned integer. (from GLM_GTC_type_precision extension)
-

Detailed Description

-

GLM_GTC_type_precision extension: Defined types with specific size.

-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00150.html b/doc/html/a00150.html deleted file mode 100644 index 45fcf5b0..00000000 --- a/doc/html/a00150.html +++ /dev/null @@ -1,372 +0,0 @@ - - - - -GLM: glm::gtx Namespace Reference - - - - - - -
-

glm::gtx Namespace Reference

-

GLM experimental extensions. The interface could change between releases. -More...

- - - - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

- - -

-

-

Namespaces

namespace  associated_min_max
 

GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces.

-
namespace  bit
 

GLM_GTX_bit extension: Allow to perform bit operations on integer values.

-
namespace  closest_point
 

GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point.

-
namespace  color_cast
 

GLM_GTX_color_cast extension: Conversion between two color types.

-
namespace  color_space
 

GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations.

-
namespace  color_space_YCoCg
 

GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations.

-
namespace  comparison
 

GLM_GTX_comparison extension: Defined comparison operators for vectors.

-
namespace  compatibility
 

GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages.

-
namespace  component_wise
 

GLM_GTX_component_wise extension: Operations between components of a type.

-
namespace  determinant
 

GLM_GTX_determinant extension: Compute the determinant of a matrix.

-
namespace  double_float
 

GLM_GTX_double_float extension: Add support for double precision flotting-point types.

-
namespace  epsilon
 

GLM_GTX_epsilon extension: Comparaison functions for a user defined epsilon values.

-
namespace  euler_angles
 

GLM_GTX_euler_angles extension: Build matrices from euler angles.

-
namespace  extend
 

GLM_GTX_extend extension: Extend a position from a source to a position at a defined length.

-
namespace  extented_min_max
 

GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters.

-
namespace  fast_exponential
 

GLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions.

-
namespace  fast_square_root
 

GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions.

-
namespace  fast_trigonometry
 

GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions.

-
namespace  gradient_paint
 

GLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients.

-
namespace  half_float
 

GLM_GTX_half_float extension: Add support for half precision flotting-point types.

-
namespace  handed_coordinate_space
 

GLM_GTX_handed_coordinate_space extension: To know if a triedron is right or left handed.

-
namespace  inertia
 

GLM_GTX_inertia extension: Create inertia matrices.

-
namespace  integer
 

GLM_GTX_integer extension: Add support for integer for core functions.

-
namespace  intersect
 

GLM_GTX_intersect extension: Add intersection functions.

-
namespace  inverse
 

GLM_GTX_inverse extension: Inverse matrix functions.

-
namespace  inverse_transpose
 

GLM_GTX_inverse_transpose extension: Inverse transpose matrix functions.

-
namespace  log_base
 

GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar.

-
namespace  matrix_access
 

GLM_GTX_matrix_access extension: Set a column or a row of a matrix.

-
namespace  matrix_cross_product
 

GLM_GTX_matrix_cross_product: Build cross product matrices.

-
namespace  matrix_major_storage
 

GLM_GTX_matrix_cross_product: Build matrices with specific matrix order, row or column.

-
namespace  matrix_operation
 

GLM_GTX_matrix_operation: Build cross product matrices.

-
namespace  matrix_projection
 

GLM_GTX_matrix_projection: Varius ways to build and operate on projection matrices.

-
namespace  matrix_query
 

GLM_GTX_matrix_query: Query to evaluate matrices properties.

-
namespace  matrix_selection
 

GLM_GTX_matrix_selection extension: Access to matrix columns or rows.

-
namespace  matx
 

GLM_GTX_matx extension: - Work in progress - NxN matrix types.

-
namespace  mixed_product
 

GLM_GTX_mixed_product extension: Mixed product of 3 vectors.

-
namespace  norm
 

GLM_GTX_norm extension: Varius way to compute vector norms.

-
namespace  normal
 

GLM_GTX_normal extension: Compute the normal of a triangle.

-
namespace  normalize_dot
 

GLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root.

-
namespace  number_precision
 

GLM_GTX_number_precision extension: Defined size types.

-
namespace  ocl_type
 

GLM_GTX_ocl_type extension: OpenCL types.

-
namespace  optimum_pow
 

GLM_GTX_optimum_pow extension: Integer exponenciation of power functions.

-
namespace  orthonormalize
 

GLM_GTX_orthonormalize extension: Orthonormalize matrices.

-
namespace  perpendicular
 

GLM_GTX_perpendicular extension: Perpendicular of a vector from other one.

-
namespace  polar_coordinates
 

GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert.

-
namespace  projection
 

GLM_GTX_projection extension: Projection of a vector to other one.

-
namespace  quaternion
 

GLM_GTX_quaternion extension: Quaternion types and functions.

-
namespace  random
 

GLM_GTX_random extension: Generate random number from varius distribution methods.

-
namespace  raw_data
 

GLM_GTX_raw_data extension: Projection of a vector to other one.

-
namespace  reciprocal
 

GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions.

-
namespace  rotate_vector
 

GLM_GTX_rotate_vector extension: Function to directly rotate a vector.

-
namespace  simd_mat4
 

GLM_GTX_simd_mat4 extension: SIMD implementation of vec4 type.

-
namespace  simd_vec4
 

GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type.

-
namespace  spline
 

GLM_GTX_spline extension: Spline functions.

-
namespace  statistics_operation
 

GLM_GTX_statistics_operation extension: - Work in progress - Statistics functions.

-
namespace  std_based_type
 

GLM_GTX_std_based_type extension: Add support vector types based on C++ standard type.

-
namespace  string_cast
 

GLM_GTX_string_cast extension: Setup strings for GLM type values.

-
namespace  transform
 

GLM_GTX_transform extension: Add transformation matrices.

-
namespace  transform2
 

GLM_GTX_transform2 extension: Add extra transformation matrices.

-
namespace  type_ptr
 

GLM_GTX_type_ptr extension: Get access to vectors & matrices value type address.

-
namespace  unsigned_int
 

GLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions.

-
namespace  vector_access
 

GLM_GTX_vector_access extension: Function to set values to vectors.

-
namespace  vector_angle
 

GLM_GTX_vector_angle extension: Compute angle between vectors.

-
namespace  vector_query
 

GLM_GTX_vector_query extension: Query informations of vector types.

-
namespace  vecx
 

GLM_GTX_vecx extension: - Work in progress - Add custom size vectors.

-
namespace  verbose_operator
 

GLM_GTX_verbose_operator extension: Use words to replace operators.

-
-

Detailed Description

-

GLM experimental extensions. The interface could change between releases.

-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00151.html b/doc/html/a00151.html deleted file mode 100644 index 8c701dd9..00000000 --- a/doc/html/a00151.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - -GLM: glm::gtx::associated_min_max Namespace Reference - - - - - - -
-

glm::gtx::associated_min_max Namespace Reference

-

GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces. -More...

- - - - - - - - - - - - - - - - - - - - -

Functions

-template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
 Max comparison between 4 variables.
-template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
 Max comparison between 3 variables.
-template<typename genTypeT , typename genTypeU >
genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
 Max comparison between 2 variables.
-template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
 Min comparison between 4 variables.
-template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
 Min comparison between 3 variables.
-template<typename genTypeT , typename genTypeU >
genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
 Min comparison between 2 variables.
-

Detailed Description

-

GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces.

-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00152.html b/doc/html/a00152.html deleted file mode 100644 index 645fdcbb..00000000 --- a/doc/html/a00152.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - -GLM: glm::gtx::bit Namespace Reference - - - - - - -
-

glm::gtx::bit Namespace Reference

-

GLM_GTX_bit extension: Allow to perform bit operations on integer values. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename genType >
genType bitRevert (genType const &value)
 Revert all bits of any integer based type.
template<typename genType >
genType bitRotateLeft (genType const &In, std::size_t Shift)
 Rotate all bits to the left.
template<typename genType >
genType bitRotateRight (genType const &In, std::size_t Shift)
 Rotate all bits to the right.
template<typename genType , typename genIType >
genIType extractField (genType const &v, genIType const &first, genIType const &count)
 Component wise extraction of bit fields.
template<typename genType >
int highestBit (genType const &value)
 Find the highest bit set to 1 in a integer variable.
template<typename genType >
genType highestBitValue (genType const &value)
 Find the highest bit set to 1 in a integer variable and return its value.
template<typename genType >
bool isPowerOfTwo (genType const &value)
 Return true if the value is a power of two number.
template<typename genType >
int lowestBit (genType const &value)
 Find the lowest bit set to 1 in a integer variable.
template<typename genIType >
genIType mask (genIType const &count)
 Build a mask of 'count' bits From GLM_GTX_bit extension.
template<typename genType >
genType powerOfTwoAbove (genType const &value)
 Return the power of two number which value is just higher the input value.
template<typename genType >
genType powerOfTwoBelow (genType const &value)
 Return the power of two number which value is just lower the input value.
template<typename genType >
genType powerOfTwoNearest (genType const &value)
 Return the power of two number which value is the closet to the input value.
-

Detailed Description

-

GLM_GTX_bit extension: Allow to perform bit operations on integer values.

-

Function Documentation

- -
-
- - - - - - - - - -
genType glm::gtx::bit::bitRevert (genType const &  value ) 
-
-
- -

Revert all bits of any integer based type.

-

From GLM_GTX_bit extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType glm::gtx::bit::bitRotateLeft (genType const &  In,
std::size_t  Shift 
)
-
-
- -

Rotate all bits to the left.

-

From GLM_GTX_bit extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType glm::gtx::bit::bitRotateRight (genType const &  In,
std::size_t  Shift 
)
-
-
- -

Rotate all bits to the right.

-

From GLM_GTX_bit extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
genIType glm::gtx::bit::extractField (genType const &  v,
genIType const &  first,
genIType const &  count 
)
-
-
- -

Component wise extraction of bit fields.

-

genType and genIType could be a scalar or a vector. From GLM_GTX_bit extension.

- -
-
- -
-
- - - - - - - - - -
int glm::gtx::bit::highestBit (genType const &  value ) 
-
-
- -

Find the highest bit set to 1 in a integer variable.

-

From GLM_GTX_bit extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::bit::highestBitValue (genType const &  value ) 
-
-
- -

Find the highest bit set to 1 in a integer variable and return its value.

-

From GLM_GTX_bit extension.

- -
-
- -
-
- - - - - - - - - -
bool glm::gtx::bit::isPowerOfTwo (genType const &  value ) 
-
-
- -

Return true if the value is a power of two number.

-

From GLM_GTX_bit extension.

- -
-
- -
-
- - - - - - - - - -
int glm::gtx::bit::lowestBit (genType const &  value ) 
-
-
- -

Find the lowest bit set to 1 in a integer variable.

-

From GLM_GTX_bit extension.

- -
-
- -
-
- - - - - - - - - -
genIType glm::gtx::bit::mask (genIType const &  count ) 
-
-
- -

Build a mask of 'count' bits From GLM_GTX_bit extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::bit::powerOfTwoAbove (genType const &  value ) 
-
-
- -

Return the power of two number which value is just higher the input value.

-

From GLM_GTX_bit extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::bit::powerOfTwoBelow (genType const &  value ) 
-
-
- -

Return the power of two number which value is just lower the input value.

-

From GLM_GTX_bit extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::bit::powerOfTwoNearest (genType const &  value ) 
-
-
- -

Return the power of two number which value is the closet to the input value.

-

From GLM_GTX_bit extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00153.html b/doc/html/a00153.html deleted file mode 100644 index 28ab5172..00000000 --- a/doc/html/a00153.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -GLM: glm::gtx::closest_point Namespace Reference - - - - - - -
-

glm::gtx::closest_point Namespace Reference

-

GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point. -More...

- - - - - -

Functions

template<typename T >
detail::tvec3< T > closestPointOnLine (detail::tvec3< T > const &point, detail::tvec3< T > const &a, detail::tvec3< T > const &b)
 Find the point on a straight line which is the closet of a point.
-

Detailed Description

-

GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tvec3<T> glm::gtx::closest_point::closestPointOnLine (detail::tvec3< T > const &  point,
detail::tvec3< T > const &  a,
detail::tvec3< T > const &  b 
)
-
-
- -

Find the point on a straight line which is the closet of a point.

-

From GLM_GTX_closest_point extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00154.html b/doc/html/a00154.html deleted file mode 100644 index 378aa773..00000000 --- a/doc/html/a00154.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - -GLM: glm::gtx::color_cast Namespace Reference - - - - - - -
-

glm::gtx::color_cast Namespace Reference

-

GLM_GTX_color_cast extension: Conversion between two color types. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

-template<typename T >
gtc::type_precision::f16vec4 f16_abgr_cast (T c)
 Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f16vec4 f16_argb_cast (T c)
 Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f16vec4 f16_bgra_cast (T c)
 Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f16vec3 f16_bgrx_cast (T c)
 Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtx::number_precision::f16vec1 f16_channel_cast (T a)
 Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f16vec4 f16_rgba_cast (T c)
 Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f16vec3 f16_rgbx_cast (T c)
 Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f16vec3 f16_xbgr_cast (T c)
 Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f16vec3 f16_xrgb_cast (T c)
 Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f32vec4 f32_abgr_cast (T c)
 Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f32vec4 f32_argb_cast (T c)
 Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f32vec4 f32_bgra_cast (T c)
 Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f32vec3 f32_bgrx_cast (T c)
 Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtx::number_precision::f32vec1 f32_channel_cast (T a)
 Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f32vec4 f32_rgba_cast (T c)
 Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f32vec3 f32_rgbx_cast (T c)
 Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f32vec3 f32_xbgr_cast (T c)
 Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f32vec3 f32_xrgb_cast (T c)
 Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f64vec4 f64_abgr_cast (T c)
 Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f64vec4 f64_argb_cast (T c)
 Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f64vec4 f64_bgra_cast (T c)
 Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f64vec3 f64_bgrx_cast (T c)
 Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtx::number_precision::f64vec1 f64_channel_cast (T a)
 Conversion of a u8 or u16 value to a single channel floating value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f64vec4 f64_rgba_cast (T c)
 Conversion of a u32 or u64 color into 4 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f64vec3 f64_rgbx_cast (T c)
 Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f64vec3 f64_xbgr_cast (T c)
 Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::f64vec3 f64_xrgb_cast (T c)
 Conversion of a u32 or u64 color into 3 components floating color. (From GLM_GTX_color_cast extension).
template<typename valType >
gtc::type_precision::uint16 u16channel_cast (valType a)
 Conversion of a floating value into a 16bit unsigned int value.
-template<typename T >
gtc::type_precision::uint32 u32_abgr_cast (const detail::tvec4< T > &c)
 Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint32 u32_argb_cast (const detail::tvec4< T > &c)
 Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint32 u32_bgra_cast (const detail::tvec4< T > &c)
 Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint32 u32_bgrx_cast (const detail::tvec3< T > &c)
 Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint32 u32_rgba_cast (const detail::tvec4< T > &c)
 Conversion of a 4 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint32 u32_rgbx_cast (const detail::tvec3< T > &c)
 Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint32 u32_xbgr_cast (const detail::tvec3< T > &c)
 Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint32 u32_xrgb_cast (const detail::tvec3< T > &c)
 Conversion of a 3 components color into an 32bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint64 u64_abgr_cast (const detail::tvec4< T > &c)
 Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint64 u64_argb_cast (const detail::tvec4< T > &c)
 Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint64 u64_bgra_cast (const detail::tvec4< T > &c)
 Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint64 u64_bgrx_cast (const detail::tvec3< T > &c)
 Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint64 u64_rgba_cast (const detail::tvec4< T > &c)
 Conversion of a 4 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint64 u64_rgbx_cast (const detail::tvec3< T > &c)
 Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint64 u64_xbgr_cast (const detail::tvec3< T > &c)
 Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension).
-template<typename T >
gtc::type_precision::uint64 u64_xrgb_cast (const detail::tvec3< T > &c)
 Conversion of a 3 components color into an 64bit unsigned int value. (From GLM_GTX_color_cast extension).
template<typename valType >
gtc::type_precision::uint8 u8channel_cast (valType a)
 Conversion of a floating value into a 8bit unsigned int value.
-

Detailed Description

-

GLM_GTX_color_cast extension: Conversion between two color types.

-

Function Documentation

- -
-
- - - - - - - - - -
gtc::type_precision::uint16 glm::gtx::color_cast::u16channel_cast (valType  a ) 
-
-
- -

Conversion of a floating value into a 16bit unsigned int value.

-

From GLM_GTX_color_cast extension.

- -
-
- -
-
- - - - - - - - - -
gtc::type_precision::uint8 glm::gtx::color_cast::u8channel_cast (valType  a ) 
-
-
- -

Conversion of a floating value into a 8bit unsigned int value.

-

From GLM_GTX_color_cast extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00155.html b/doc/html/a00155.html deleted file mode 100644 index 756aa2bb..00000000 --- a/doc/html/a00155.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - -GLM: glm::gtx::color_space Namespace Reference - - - - - - -
-

glm::gtx::color_space Namespace Reference

-

GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations. -More...

- - - - - - - - - - - - - - - - - - - - -

Functions

template<typename valType >
detail::tvec3< valType > hsvColor (detail::tvec3< valType > const &rgbValue)
 Converts a color from RGB color space to its color in HSV color space.
template<typename valType >
valType luminosity (detail::tvec3< valType > const &color)
 Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.
template<typename valType >
detail::tvec3< valType > rgbColor (detail::tvec3< valType > const &hsvValue)
 Converts a color from HSV color space to its color in RGB color space.
template<typename valType >
detail::tvec4< valType > saturation (valType const s, detail::tvec4< valType > const &color)
 Modify the saturation of a color.
template<typename valType >
detail::tvec3< valType > saturation (valType const s, detail::tvec3< valType > const &color)
 Modify the saturation of a color.
template<typename valType >
detail::tmat4x4< valType > saturation (valType const s)
 Build a saturation matrix.
-

Detailed Description

-

GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations.

-

Function Documentation

- -
-
- - - - - - - - - -
detail::tvec3<valType> glm::gtx::color_space::hsvColor (detail::tvec3< valType > const &  rgbValue ) 
-
-
- -

Converts a color from RGB color space to its color in HSV color space.

-

From GLM_GTX_color_space extension.

- -
-
- -
-
- - - - - - - - - -
valType glm::gtx::color_space::luminosity (detail::tvec3< valType > const &  color ) 
-
-
- -

Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals.

-

From GLM_GTX_color_space extension.

- -
-
- -
-
- - - - - - - - - -
detail::tvec3<valType> glm::gtx::color_space::rgbColor (detail::tvec3< valType > const &  hsvValue ) 
-
-
- -

Converts a color from HSV color space to its color in RGB color space.

-

From GLM_GTX_color_space extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<valType> glm::gtx::color_space::saturation (valType const   s,
detail::tvec4< valType > const &  color 
)
-
-
- -

Modify the saturation of a color.

-

From GLM_GTX_color_space extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<valType> glm::gtx::color_space::saturation (valType const   s,
detail::tvec3< valType > const &  color 
)
-
-
- -

Modify the saturation of a color.

-

From GLM_GTX_color_space extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::color_space::saturation (valType const   s ) 
-
-
- -

Build a saturation matrix.

-

From GLM_GTX_color_space extension

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00156.html b/doc/html/a00156.html deleted file mode 100644 index ee1ab468..00000000 --- a/doc/html/a00156.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - -GLM: glm::gtx::color_space_YCoCg Namespace Reference - - - - - - -
-

glm::gtx::color_space_YCoCg Namespace Reference

-

GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations. -More...

- - - - - - - - - - - - - - -

Functions

template<typename valType >
detail::tvec3< valType > rgb2YCoCg (detail::tvec3< valType > const &rgbColor)
 Convert a color from RGB color space to YCoCg color space.
template<typename valType >
detail::tvec3< valType > rgb2YCoCgR (detail::tvec3< valType > const &rgbColor)
 Convert a color from RGB color space to YCoCgR color space.
template<typename valType >
detail::tvec3< valType > YCoCg2rgb (detail::tvec3< valType > const &YCoCgColor)
 Convert a color from YCoCg color space to RGB color space.
template<typename valType >
detail::tvec3< valType > YCoCgR2rgb (detail::tvec3< valType > const &YCoCgColor)
 Convert a color from YCoCgR color space to RGB color space.
-

Detailed Description

-

GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations.

-

Function Documentation

- -
-
- - - - - - - - - -
detail::tvec3<valType> glm::gtx::color_space_YCoCg::rgb2YCoCg (detail::tvec3< valType > const &  rgbColor ) 
-
-
- -

Convert a color from RGB color space to YCoCg color space.

-

From GLM_GTX_color_space_YCoCg extension.

- -
-
- -
-
- - - - - - - - - -
detail::tvec3<valType> glm::gtx::color_space_YCoCg::rgb2YCoCgR (detail::tvec3< valType > const &  rgbColor ) 
-
-
- -

Convert a color from RGB color space to YCoCgR color space.

-
See also:
"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" From GLM_GTX_color_space_YCoCg extension.
- -
-
- -
-
- - - - - - - - - -
detail::tvec3<valType> glm::gtx::color_space_YCoCg::YCoCg2rgb (detail::tvec3< valType > const &  YCoCgColor ) 
-
-
- -

Convert a color from YCoCg color space to RGB color space.

-

From GLM_GTX_color_space_YCoCg extension.

- -
-
- -
-
- - - - - - - - - -
detail::tvec3<valType> glm::gtx::color_space_YCoCg::YCoCgR2rgb (detail::tvec3< valType > const &  YCoCgColor ) 
-
-
- -

Convert a color from YCoCgR color space to RGB color space.

-
See also:
"YCoCg-R: A Color Space with RGB Reversibility and Low Dynamic Range" From GLM_GTX_color_space_YCoCg extension.
- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00157.html b/doc/html/a00157.html deleted file mode 100644 index 79954917..00000000 --- a/doc/html/a00157.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - -GLM: glm::gtx::comparison Namespace Reference - - - - - - -
-

glm::gtx::comparison Namespace Reference

-

GLM_GTX_comparison extension: Defined comparison operators for vectors. -More...

- - - - - - - - -

Functions

template<typename vecType >
bool operator!= (vecType const &x, vecType const &y)
 Define != operator for vectors From GLM_GTX_comparison extension.
template<typename vecType >
bool operator== (vecType const &x, vecType const &y)
 Define == operator for vectors From GLM_GTX_comparison extension.
-

Detailed Description

-

GLM_GTX_comparison extension: Defined comparison operators for vectors.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::gtx::comparison::operator!= (vecType const &  x,
vecType const &  y 
)
-
-
- -

Define != operator for vectors From GLM_GTX_comparison extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::gtx::comparison::operator== (vecType const &  x,
vecType const &  y 
)
-
-
- -

Define == operator for vectors From GLM_GTX_comparison extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00158.html b/doc/html/a00158.html deleted file mode 100644 index 5557f37f..00000000 --- a/doc/html/a00158.html +++ /dev/null @@ -1,373 +0,0 @@ - - - - -GLM: glm::gtx::compatibility Namespace Reference - - - - - - -
-

glm::gtx::compatibility Namespace Reference

-

GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Typedefs

-typedef bool bool1
 boolean type with 1 component. (From GLM_GTX_compatibility extension)
-typedef bool bool1x1
 boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension)
-typedef detail::tvec2< bool > bool2
 boolean type with 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x2< bool > bool2x2
 boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x3< bool > bool2x3
 boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x4< bool > bool2x4
 boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tvec3< bool > bool3
 boolean type with 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x2< bool > bool3x2
 boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x3< bool > bool3x3
 boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x4< bool > bool3x4
 boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tvec4< bool > bool4
 boolean type with 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x2< bool > bool4x2
 boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x3< bool > bool4x3
 boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x4< bool > bool4x4
 boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
-typedef double double1
 double-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
-typedef double double1x1
 double-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
-typedef detail::tvec2< double > double2
 double-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x2< double > double2x2
 double-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x3< double > double2x3
 double-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x4< double > double2x4
 double-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tvec3< double > double3
 double-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x2< double > double3x2
 double-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x3< double > double3x3
 double-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x4< double > double3x4
 double-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tvec4< double > double4
 double-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x2< double > double4x2
 double-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x3< double > double4x3
 double-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x4< double > double4x4
 double-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
-typedef float float1
 single-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
-typedef float float1x1
 single-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
-typedef detail::tvec2< float > float2
 single-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x2< float > float2x2
 single-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x3< float > float2x3
 single-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x4< float > float2x4
 single-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tvec3< float > float3
 single-precision floating-point vector with 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x2< float > float3x2
 single-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x3< float > float3x3
 single-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x4< float > float3x4
 single-precision floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tvec4< float > float4
 single-precision floating-point vector with 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x2< float > float4x2
 single-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x3< float > float4x3
 single-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x4< float > float4x4
 single-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
-typedef gtc::half_float::half half1
 half-precision floating-point vector with 1 component. (From GLM_GTX_compatibility extension)
-typedef gtc::half_float::half half1x1
 half-precision floating-point matrix with 1 component. (From GLM_GTX_compatibility extension)
-typedef detail::tvec2
-< gtc::half_float::half
half2
 half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x2
-< gtc::half_float::half
half2x2
 half-precision floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x3
-< gtc::half_float::half
half2x3
 half-precision floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x4
-< gtc::half_float::half
half2x4
 half-precision floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tvec3
-< gtc::half_float::half
half3
 half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x2
-< gtc::half_float::half
half3x2
 half-precision floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x3
-< gtc::half_float::half
half3x3
 half-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x4
-< gtc::half_float::half
half3x4
 half-precision floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tvec4
-< gtc::half_float::half
half4
 half-precision floating-point vector with 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x2
-< gtc::half_float::half
half4x2
 half-precision floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x3
-< gtc::half_float::half
half4x3
 half-precision floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x4
-< gtc::half_float::half
half4x4
 half-precision floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)
-typedef int int1
 integer vector with 1 component. (From GLM_GTX_compatibility extension)
-typedef int int1x1
 integer matrix with 1 component. (From GLM_GTX_compatibility extension)
-typedef detail::tvec2< int > int2
 integer vector with 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x2< int > int2x2
 integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x3< int > int2x3
 integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat2x4< int > int2x4
 integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tvec3< int > int3
 integer vector with 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x2< int > int3x2
 integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x3< int > int3x3
 integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat3x4< int > int3x4
 integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tvec4< int > int4
 integer vector with 4 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x2< int > int4x2
 integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x3< int > int4x3
 integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension)
-typedef detail::tmat4x4< int > int4x4
 integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension)

Functions

-template<typename T >
detail::tvec4< T > atan2 (const detail::tvec4< T > &x, const detail::tvec4< T > &y)
 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 >
detail::tvec3< T > atan2 (const detail::tvec3< T > &x, const detail::tvec3< T > &y)
 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 >
detail::tvec2< T > atan2 (const detail::tvec2< T > &x, const detail::tvec2< T > &y)
 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 >
atan2 (T x, T y)
 Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what 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 valType >
detail::tvec4< bool > isfinite (const detail::tvec4< valType > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility).
-template<typename valType >
detail::tvec3< bool > isfinite (const detail::tvec3< valType > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility).
-template<typename valType >
detail::tvec2< bool > isfinite (const detail::tvec2< valType > &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility).
-template<typename genType >
bool isfinite (genType const &x)
 Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility).
-template<typename genType >
detail::tvec4< bool > isinf (const detail::tvec4< genType > &x)
 Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension).
-template<typename genType >
detail::tvec3< bool > isinf (const detail::tvec3< genType > &x)
 Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension).
-template<typename genType >
detail::tvec2< bool > isinf (const detail::tvec2< genType > &x)
 Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension).
-template<typename genType >
bool isinf (genType const &x)
 Determines whether the given floating-point value is infinite. (From GLM_GTX_compatibility extension).
-template<typename genType >
detail::tvec4< bool > isnan (const detail::tvec4< genType > &x)
 Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension).
-template<typename genType >
detail::tvec3< bool > isnan (const detail::tvec3< genType > &x)
 Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension).
-template<typename genType >
detail::tvec2< bool > isnan (const detail::tvec2< genType > &x)
 Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension).
-template<typename genType >
bool isnan (genType const &x)
 Checks given floating-point value for not a number (NAN) (From GLM_GTX_compatibility extension).
-template<typename T >
detail::tvec4< T > lerp (const detail::tvec4< T > &x, const detail::tvec4< T > &y, const detail::tvec4< T > &a)
 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 >
detail::tvec3< T > lerp (const detail::tvec3< T > &x, const detail::tvec3< T > &y, const detail::tvec3< T > &a)
 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 >
detail::tvec2< T > lerp (const detail::tvec2< T > &x, const detail::tvec2< T > &y, const detail::tvec2< T > &a)
 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 >
detail::tvec4< T > lerp (const detail::tvec4< T > &x, const detail::tvec4< T > &y, T a)
 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 >
detail::tvec3< T > lerp (const detail::tvec3< T > &x, const detail::tvec3< T > &y, T a)
 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 >
detail::tvec2< T > lerp (const detail::tvec2< T > &x, const detail::tvec2< T > &y, T a)
 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 >
lerp (T x, T y, T a)
 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 >
detail::tvec4< T > saturate (const detail::tvec4< T > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility).
-template<typename T >
detail::tvec3< T > saturate (const detail::tvec3< T > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility).
-template<typename T >
detail::tvec2< T > saturate (const detail::tvec2< T > &x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility).
-template<typename T >
saturate (T x)
 Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility).
-

Detailed Description

-

GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages.

-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00159.html b/doc/html/a00159.html deleted file mode 100644 index e840d7ba..00000000 --- a/doc/html/a00159.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - -GLM: glm::gtx::component_wise Namespace Reference - - - - - - -
-

glm::gtx::component_wise Namespace Reference

-

GLM_GTX_component_wise extension: Operations between components of a type. -More...

- - - - - - - - - - - - - - -

Functions

template<typename genType >
genType::value_type compAdd (genType const &v)
 Add all vector components together.
template<typename genType >
genType::value_type compMax (genType const &v)
 Find the maximum value between single vector components.
template<typename genType >
genType::value_type compMin (genType const &v)
 Find the minimum value between single vector components.
template<typename genType >
genType::value_type compMul (genType const &v)
 Multiply all vector components together.
-

Detailed Description

-

GLM_GTX_component_wise extension: Operations between components of a type.

-

Function Documentation

- -
-
- - - - - - - - - -
genType::value_type glm::gtx::component_wise::compAdd (genType const &  v ) 
-
-
- -

Add all vector components together.

-

From GLM_GTX_component_wise extension.

- -
-
- -
-
- - - - - - - - - -
genType::value_type glm::gtx::component_wise::compMax (genType const &  v ) 
-
-
- -

Find the maximum value between single vector components.

-

From GLM_GTX_component_wise extension.

- -
-
- -
-
- - - - - - - - - -
genType::value_type glm::gtx::component_wise::compMin (genType const &  v ) 
-
-
- -

Find the minimum value between single vector components.

-

From GLM_GTX_component_wise extension.

- -
-
- -
-
- - - - - - - - - -
genType::value_type glm::gtx::component_wise::compMul (genType const &  v ) 
-
-
- -

Multiply all vector components together.

-

From GLM_GTX_component_wise extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00160.html b/doc/html/a00160.html deleted file mode 100644 index a5500e7b..00000000 --- a/doc/html/a00160.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -GLM: glm::gtx::determinant Namespace Reference - - - - - - -
-

glm::gtx::determinant Namespace Reference

-

GLM_GTX_determinant extension: Compute the determinant of a matrix. -More...

- -
-

Detailed Description

-

GLM_GTX_determinant extension: Compute the determinant of a matrix.

-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00161.html b/doc/html/a00161.html deleted file mode 100644 index 83e5c383..00000000 --- a/doc/html/a00161.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - -GLM: glm::gtx::double_float Namespace Reference - - - - - - -
-

glm::gtx::double_float Namespace Reference

-

GLM_GTX_double_float extension: Add support for double precision flotting-point types. -More...

- - - - - - -

Typedefs

typedef detail::tquat< double > dquat
 Quaternion of double-precision floating-point numbers.
typedef detail::tquat< float > fquat
 Quaternion of single-precision floating-point numbers.
-

Detailed Description

-

GLM_GTX_double_float extension: Add support for double precision flotting-point types.

-

Typedef Documentation

- -
-
- - - - -
typedef detail::tquat<double> dquat
-
-
- -

Quaternion of double-precision floating-point numbers.

-

From GLM_GTX_double extension.

- -

Definition at line 43 of file gtx/double_float.hpp.

- -
-
- -
-
- - - - -
typedef detail::tquat<float> fquat
-
-
- -

Quaternion of single-precision floating-point numbers.

-

From GLM_GTX_double extension.

- -

Definition at line 39 of file gtx/double_float.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00162.html b/doc/html/a00162.html deleted file mode 100644 index 31754a88..00000000 --- a/doc/html/a00162.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -GLM: glm::gtx::epsilon Namespace Reference - - - - - - -
-

glm::gtx::epsilon Namespace Reference

-

GLM_GTX_epsilon extension: Comparaison functions for a user defined epsilon values. -More...

- - - - - - - - -

Functions

template<typename genTypeT , typename genTypeU >
bool equalEpsilon (genTypeT const &x, genTypeT const &y, genTypeU const &epsilon)
 Returns the component-wise compare of |x - y| < epsilon.
template<typename genTypeT , typename genTypeU >
bool notEqualEpsilon (genTypeT const &x, genTypeT const &y, genTypeU const &epsilon)
 Returns the component-wise compare of |x - y| >= epsilon.
-

Detailed Description

-

GLM_GTX_epsilon extension: Comparaison functions for a user defined epsilon values.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::epsilon::equalEpsilon (genTypeT const &  x,
genTypeT const &  y,
genTypeU const &  epsilon 
)
-
-
- -

Returns the component-wise compare of |x - y| < epsilon.

-

From GLM_GTX_epsilon extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::epsilon::notEqualEpsilon (genTypeT const &  x,
genTypeT const &  y,
genTypeU const &  epsilon 
)
-
-
- -

Returns the component-wise compare of |x - y| >= epsilon.

-

From GLM_GTX_epsilon extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00163.html b/doc/html/a00163.html deleted file mode 100644 index 5f67f7f8..00000000 --- a/doc/html/a00163.html +++ /dev/null @@ -1,487 +0,0 @@ - - - - -GLM: glm::gtx::euler_angles Namespace Reference - - - - - - -
-

glm::gtx::euler_angles Namespace Reference

-

GLM_GTX_euler_angles extension: Build matrices from euler angles. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename valType >
detail::tmat4x4< valType > eulerAngleX (valType const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.
template<typename valType >
detail::tmat4x4< valType > eulerAngleXY (valType const &angleX, valType const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).
template<typename valType >
detail::tmat4x4< valType > eulerAngleXZ (valType const &angleX, valType const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).
template<typename valType >
detail::tmat4x4< valType > eulerAngleY (valType const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.
template<typename valType >
detail::tmat4x4< valType > eulerAngleYX (valType const &angleY, valType const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).
template<typename valType >
detail::tmat4x4< valType > eulerAngleYXZ (valType const &yaw, valType const &pitch, valType const &roll)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
template<typename valType >
detail::tmat4x4< valType > eulerAngleYZ (valType const &angleY, valType const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).
template<typename valType >
detail::tmat4x4< valType > eulerAngleZ (valType const &angleZ)
 Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.
template<typename valType >
detail::tmat4x4< valType > eulerAngleZX (valType const &angleZ, valType const &angleX)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).
template<typename valType >
detail::tmat4x4< valType > eulerAngleZY (valType const &angleZ, valType const &angleY)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).
template<typename T >
detail::tmat2x2< T > orientate2 (T const &angle)
 Creates a 2D 2 * 2 rotation matrix from an euler angle.
template<typename T >
detail::tmat3x3< T > orientate3 (detail::tvec3< T > const &angles)
 Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).
template<typename T >
detail::tmat3x3< T > orientate3 (T const &angle)
 Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.
template<typename T >
detail::tmat4x4< T > orientate4 (detail::tvec3< T > const &angles)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
template<typename valType >
detail::tmat4x4< valType > yawPitchRoll (valType const &yaw, valType const &pitch, valType const &roll)
 Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
-

Detailed Description

-

GLM_GTX_euler_angles extension: Build matrices from euler angles.

-

Function Documentation

- -
-
- - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::euler_angles::eulerAngleX (valType const &  angleX ) 
-
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::euler_angles::eulerAngleXY (valType const &  angleX,
valType const &  angleY 
)
-
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::euler_angles::eulerAngleXZ (valType const &  angleX,
valType const &  angleZ 
)
-
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::euler_angles::eulerAngleY (valType const &  angleY ) 
-
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::euler_angles::eulerAngleYX (valType const &  angleY,
valType const &  angleX 
)
-
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::euler_angles::eulerAngleYXZ (valType const &  yaw,
valType const &  pitch,
valType const &  roll 
)
-
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::euler_angles::eulerAngleYZ (valType const &  angleY,
valType const &  angleZ 
)
-
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::euler_angles::eulerAngleZ (valType const &  angleZ ) 
-
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::euler_angles::eulerAngleZX (valType const &  angleZ,
valType const &  angleX 
)
-
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::euler_angles::eulerAngleZY (valType const &  angleZ,
valType const &  angleY 
)
-
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat2x2<T> glm::gtx::euler_angles::orientate2 (T const &  angle ) 
-
-
- -

Creates a 2D 2 * 2 rotation matrix from an euler angle.

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat3x3<T> glm::gtx::euler_angles::orientate3 (detail::tvec3< T > const &  angles ) 
-
-
- -

Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat3x3<T> glm::gtx::euler_angles::orientate3 (T const &  angle ) 
-
-
- -

Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x4<T> glm::gtx::euler_angles::orientate4 (detail::tvec3< T > const &  angles ) 
-
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

-

From GLM_GTX_euler_angles extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::euler_angles::yawPitchRoll (valType const &  yaw,
valType const &  pitch,
valType const &  roll 
)
-
-
- -

Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).

-

From GLM_GTX_euler_angles extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00164.html b/doc/html/a00164.html deleted file mode 100644 index 71fa15ee..00000000 --- a/doc/html/a00164.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -GLM: glm::gtx::extend Namespace Reference - - - - - - -
-

glm::gtx::extend Namespace Reference

-

GLM_GTX_extend extension: Extend a position from a source to a position at a defined length. -More...

- - - - - -

Functions

template<typename genType >
genType extend (genType const &Origin, genType const &Source, typename genType::value_type const Length)
 Extends of Length the Origin position using the (Source - Origin) direction.
-

Detailed Description

-

GLM_GTX_extend extension: Extend a position from a source to a position at a defined length.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
genType glm::gtx::extend::extend (genType const &  Origin,
genType const &  Source,
typename genType::value_type const   Length 
)
-
-
- -

Extends of Length the Origin position using the (Source - Origin) direction.

-

From GLM_GTX_extend extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00165.html b/doc/html/a00165.html deleted file mode 100644 index 83f7d487..00000000 --- a/doc/html/a00165.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - -GLM: glm::gtx::extented_min_max Namespace Reference - - - - - - -
-

glm::gtx::extented_min_max Namespace Reference

-

GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

-template<typename T >
detail::tvec4< T > max (const detail::tvec4< T > &x, const detail::tvec4< T > &y, const detail::tvec4< T > &z, const detail::tvec4< T > &w)
 Return the maximum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec3< T > max (const detail::tvec3< T > &x, const detail::tvec3< T > &y, const detail::tvec3< T > &z, const detail::tvec3< T > &w)
 Return the maximum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec2< T > max (const detail::tvec2< T > &x, const detail::tvec2< T > &y, const detail::tvec2< T > &z, const detail::tvec2< T > &w)
 Return the maximum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec4< T > max (const detail::tvec4< T > &x, const detail::tvec4< T > &y, const detail::tvec4< T > &z)
 Return the maximum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec3< T > max (const detail::tvec3< T > &x, const detail::tvec3< T > &y, const detail::tvec3< T > &z)
 Return the maximum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec2< T > max (const detail::tvec2< T > &x, const detail::tvec2< T > &y, const detail::tvec2< T > &z)
 Return the maximum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec4< T > max (const detail::tvec4< T > &x, const T y, const T z, const T w)
 Return the maximum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec3< T > max (const detail::tvec3< T > &x, const T y, const T z, const T w)
 Return the maximum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec2< T > max (const detail::tvec2< T > &x, const T y, const T z, const T w)
 Return the maximum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec4< T > max (const detail::tvec4< T > &x, const T y, const T z)
 Return the maximum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec3< T > max (const detail::tvec3< T > &x, const T y, const T z)
 Return the maximum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec2< T > max (const detail::tvec2< T > &x, const T y, const T z)
 Return the maximum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
max (const T x, const T y, const T z, const T w)
 Return the maximum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
max (const T x, const T y, const T z)
 Return the maximum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec4< T > min (const detail::tvec4< T > &x, const detail::tvec4< T > &y, const detail::tvec4< T > &z, const detail::tvec4< T > &w)
 Return the minimum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec3< T > min (const detail::tvec3< T > &x, const detail::tvec3< T > &y, const detail::tvec3< T > &z, const detail::tvec3< T > &w)
 Return the minimum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec2< T > min (const detail::tvec2< T > &x, const detail::tvec2< T > &y, const detail::tvec2< T > &z, const detail::tvec2< T > &w)
 Return the minimum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec4< T > min (const detail::tvec4< T > &x, const detail::tvec4< T > &y, const detail::tvec4< T > &z)
 Return the minimum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec3< T > min (const detail::tvec3< T > &x, const detail::tvec3< T > &y, const detail::tvec3< T > &z)
 Return the minimum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec2< T > min (const detail::tvec2< T > &x, const detail::tvec2< T > &y, const detail::tvec2< T > &z)
 Return the minimum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec4< T > min (const detail::tvec4< T > &x, const T y, const T z, const T w)
 Return the minimum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec3< T > min (const detail::tvec3< T > &x, const T y, const T z, const T w)
 Return the minimum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec2< T > min (const detail::tvec2< T > &x, const T y, const T z, const T w)
 Return the minimum component-wise values of 4 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec4< T > min (const detail::tvec4< T > &x, const T y, const T z)
 Return the minimum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec3< T > min (const detail::tvec3< T > &x, const T y, const T z)
 Return the minimum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
detail::tvec2< T > min (const detail::tvec2< T > &x, const T y, const T z)
 Return the minimum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
min (const T x, const T y, const T z, const T w)
 Return the minimum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-template<typename T >
min (const T x, const T y, const T z)
 Return the minimum component-wise values of 3 imputs (From GLM_GTX_extented_min_max extension).
-

Detailed Description

-

GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters.

-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00166.html b/doc/html/a00166.html deleted file mode 100644 index 4a1714cb..00000000 --- a/doc/html/a00166.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - -GLM: glm::gtx::fast_exponential Namespace Reference - - - - - - -
-

glm::gtx::fast_exponential Namespace Reference

-

GLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions. -More...

- - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename T >
fastExp (const T &x)
 Faster than the common exp function but less accurate.
template<typename T >
fastExp2 (const T &x)
 Faster than the common exp2 function but less accurate.
template<typename T >
fastLn (const T &x)
 Faster than the common ln function but less accurate.
template<typename T >
fastLog (const T &x)
 Faster than the common log function but less accurate.
template<typename T >
fastLog2 (const T &x)
 Faster than the common log2 function but less accurate.
template<typename T , typename U >
fastPow (const T &x, const U &y)
 Faster than the common pow function but less accurate.
template<typename valType >
valType fastPow (valType const &x, valType const &y)
 Faster than the common pow function but less accurate.
-

Detailed Description

-

GLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions.

-

Function Documentation

- -
-
- - - - - - - - - -
T glm::gtx::fast_exponential::fastExp (const T &  x ) 
-
-
- -

Faster than the common exp function but less accurate.

-

From GLM_GTX_fast_exponential extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::fast_exponential::fastExp2 (const T &  x ) 
-
-
- -

Faster than the common exp2 function but less accurate.

-

From GLM_GTX_fast_exponential extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::fast_exponential::fastLn (const T &  x ) 
-
-
- -

Faster than the common ln function but less accurate.

-

From GLM_GTX_fast_exponential extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::fast_exponential::fastLog (const T &  x ) 
-
-
- -

Faster than the common log function but less accurate.

-

From GLM_GTX_fast_exponential extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::fast_exponential::fastLog2 (const T &  x ) 
-
-
- -

Faster than the common log2 function but less accurate.

-

From GLM_GTX_fast_exponential extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::gtx::fast_exponential::fastPow (const T &  x,
const U &  y 
)
-
-
- -

Faster than the common pow function but less accurate.

-

From GLM_GTX_fast_exponential extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
valType glm::gtx::fast_exponential::fastPow (valType const &  x,
valType const &  y 
)
-
-
- -

Faster than the common pow function but less accurate.

-

From GLM_GTX_fast_exponential extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00167.html b/doc/html/a00167.html deleted file mode 100644 index bdb0920e..00000000 --- a/doc/html/a00167.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - -GLM: glm::gtx::fast_square_root Namespace Reference - - - - - - -
-

glm::gtx::fast_square_root Namespace Reference

-

GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions. -More...

- - - - - - - - - - - - - - - - - -

Functions

template<typename genType >
genType::value_type fastDistance (genType const &x, genType const &y)
 Faster than the common distance function but less accurate.
template<typename genType >
genType fastInverseSqrt (genType const &x)
 Faster than the common inversesqrt function but less accurate.
template<typename genType >
genType::value_type fastLength (genType const &x)
 Faster than the common length function but less accurate.
template<typename genType >
genType fastNormalize (genType const &x)
 Faster than the common normalize function but less accurate.
template<typename genType >
genType fastSqrt (genType const &x)
 Faster than the common sqrt function but less accurate.
-

Detailed Description

-

GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
genType::value_type glm::gtx::fast_square_root::fastDistance (genType const &  x,
genType const &  y 
)
-
-
- -

Faster than the common distance function but less accurate.

-

From GLM_GTX_fast_square_root extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::fast_square_root::fastInverseSqrt (genType const &  x ) 
-
-
- -

Faster than the common inversesqrt function but less accurate.

-

From GLM_GTX_fast_square_root extension.

- -
-
- -
-
- - - - - - - - - -
genType::value_type glm::gtx::fast_square_root::fastLength (genType const &  x ) 
-
-
- -

Faster than the common length function but less accurate.

-

From GLM_GTX_fast_square_root extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::fast_square_root::fastNormalize (genType const &  x ) 
-
-
- -

Faster than the common normalize function but less accurate.

-

From GLM_GTX_fast_square_root extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::fast_square_root::fastSqrt (genType const &  x ) 
-
-
- -

Faster than the common sqrt function but less accurate.

-

From GLM_GTX_fast_square_root extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00168.html b/doc/html/a00168.html deleted file mode 100644 index 5421b320..00000000 --- a/doc/html/a00168.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - -GLM: glm::gtx::fast_trigonometry Namespace Reference - - - - - - -
-

glm::gtx::fast_trigonometry Namespace Reference

-

GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions. -More...

- - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename T >
fastAcos (const T &angle)
 Faster than the common acos function but less accurate.
template<typename T >
fastAsin (const T &angle)
 Faster than the common asin function but less accurate.
template<typename T >
fastAtan (const T &angle)
 Faster than the common atan function but less accurate.
template<typename T >
fastAtan (const T &y, const T &x)
 Faster than the common atan function but less accurate.
template<typename T >
fastCos (const T &angle)
 Faster than the common cos function but less accurate.
template<typename T >
fastSin (const T &angle)
 Faster than the common sin function but less accurate.
template<typename T >
fastTan (const T &angle)
 Faster than the common tan function but less accurate.
-

Detailed Description

-

GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions.

-

Function Documentation

- -
-
- - - - - - - - - -
T glm::gtx::fast_trigonometry::fastAcos (const T &  angle ) 
-
-
- -

Faster than the common acos function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::fast_trigonometry::fastAsin (const T &  angle ) 
-
-
- -

Faster than the common asin function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::fast_trigonometry::fastAtan (const T &  angle ) 
-
-
- -

Faster than the common atan function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::gtx::fast_trigonometry::fastAtan (const T &  y,
const T &  x 
)
-
-
- -

Faster than the common atan function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::fast_trigonometry::fastCos (const T &  angle ) 
-
-
- -

Faster than the common cos function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::fast_trigonometry::fastSin (const T &  angle ) 
-
-
- -

Faster than the common sin function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::fast_trigonometry::fastTan (const T &  angle ) 
-
-
- -

Faster than the common tan function but less accurate.

-

Defined between -2pi and 2pi. From GLM_GTX_fast_trigonometry extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00169.html b/doc/html/a00169.html deleted file mode 100644 index 51e26d12..00000000 --- a/doc/html/a00169.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -GLM: glm::gtx::gradient_paint Namespace Reference - - - - - - -
-

glm::gtx::gradient_paint Namespace Reference

-

GLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients. -More...

- -
-

Detailed Description

-

GLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients.

-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00170.html b/doc/html/a00170.html deleted file mode 100644 index 50af2107..00000000 --- a/doc/html/a00170.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - -GLM: glm::gtx::half_float Namespace Reference - - - - - - -
-

glm::gtx::half_float Namespace Reference

-

GLM_GTX_half_float extension: Add support for half precision flotting-point types. -More...

- - - - -

Typedefs

typedef detail::tquat
-< detail::thalf > 
hquat
 Quaternion of half-precision floating-point numbers.
-

Detailed Description

-

GLM_GTX_half_float extension: Add support for half precision flotting-point types.

-

Typedef Documentation

- -
-
- - - - -
typedef detail::tquat<detail::thalf> hquat
-
-
- -

Quaternion of half-precision floating-point numbers.

-

From GLM_GTX_half_float extension.

- -

Definition at line 35 of file gtx/half_float.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00171.html b/doc/html/a00171.html deleted file mode 100644 index 67f75a0e..00000000 --- a/doc/html/a00171.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -GLM: glm::gtx::handed_coordinate_space Namespace Reference - - - - - - -
-

glm::gtx::handed_coordinate_space Namespace Reference

-

GLM_GTX_handed_coordinate_space extension: To know if a triedron is right or left handed. -More...

- - - - - - - - -

Functions

template<typename T >
bool leftHanded (detail::tvec3< T > const &tangent, detail::tvec3< T > const &binormal, detail::tvec3< T > const &normal)
 Return if a trihedron left handed or not.
template<typename T >
bool rightHanded (detail::tvec3< T > const &tangent, detail::tvec3< T > const &binormal, detail::tvec3< T > const &normal)
 Return if a trihedron right handed or not.
-

Detailed Description

-

GLM_GTX_handed_coordinate_space extension: To know if a triedron is right or left handed.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::handed_coordinate_space::leftHanded (detail::tvec3< T > const &  tangent,
detail::tvec3< T > const &  binormal,
detail::tvec3< T > const &  normal 
)
-
-
- -

Return if a trihedron left handed or not.

-

From GLM_GTX_handed_coordinate_space extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::handed_coordinate_space::rightHanded (detail::tvec3< T > const &  tangent,
detail::tvec3< T > const &  binormal,
detail::tvec3< T > const &  normal 
)
-
-
- -

Return if a trihedron right handed or not.

-

From GLM_GTX_handed_coordinate_space extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00172.html b/doc/html/a00172.html deleted file mode 100644 index 0eba5609..00000000 --- a/doc/html/a00172.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - -GLM: glm::gtx::inertia Namespace Reference - - - - - - -
-

glm::gtx::inertia Namespace Reference

-

GLM_GTX_inertia extension: Create inertia matrices. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename T >
detail::tmat3x3< T > ballInertia3 (const T Mass, const T Radius)
 Build an inertia matrix for a ball.
template<typename T >
detail::tmat4x4< T > ballInertia4 (const T Mass, const T Radius)
 Build an inertia matrix for a ball.
template<typename T >
detail::tmat3x3< T > boxInertia3 (const T Mass, const detail::tvec3< T > &Scale)
 Build an inertia matrix for a box.
template<typename T >
detail::tmat4x4< T > boxInertia4 (const T Mass, const detail::tvec3< T > &Scale)
 Build an inertia matrix for a box.
template<typename T >
detail::tmat3x3< T > diskInertia3 (const T Mass, const T Radius)
 Build an inertia matrix for a disk.
template<typename T >
detail::tmat4x4< T > diskInertia4 (const T Mass, const T Radius)
 Build an inertia matrix for a disk.
template<typename T >
detail::tmat3x3< T > sphereInertia3 (const T Mass, const T Radius)
 Build an inertia matrix for a sphere.
template<typename T >
detail::tmat4x4< T > sphereInertia4 (const T Mass, const T Radius)
 Build an inertia matrix for a sphere.
-

Detailed Description

-

GLM_GTX_inertia extension: Create inertia matrices.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T> glm::gtx::inertia::ballInertia3 (const T  Mass,
const T  Radius 
)
-
-
- -

Build an inertia matrix for a ball.

-

From GLM_GTX_inertia extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::inertia::ballInertia4 (const T  Mass,
const T  Radius 
)
-
-
- -

Build an inertia matrix for a ball.

-

From GLM_GTX_inertia extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T> glm::gtx::inertia::boxInertia3 (const T  Mass,
const detail::tvec3< T > &  Scale 
)
-
-
- -

Build an inertia matrix for a box.

-

From GLM_GTX_inertia extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::inertia::boxInertia4 (const T  Mass,
const detail::tvec3< T > &  Scale 
)
-
-
- -

Build an inertia matrix for a box.

-

From GLM_GTX_inertia extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T> glm::gtx::inertia::diskInertia3 (const T  Mass,
const T  Radius 
)
-
-
- -

Build an inertia matrix for a disk.

-

From GLM_GTX_inertia extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::inertia::diskInertia4 (const T  Mass,
const T  Radius 
)
-
-
- -

Build an inertia matrix for a disk.

-

From GLM_GTX_inertia extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T> glm::gtx::inertia::sphereInertia3 (const T  Mass,
const T  Radius 
)
-
-
- -

Build an inertia matrix for a sphere.

-

From GLM_GTX_inertia extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::inertia::sphereInertia4 (const T  Mass,
const T  Radius 
)
-
-
- -

Build an inertia matrix for a sphere.

-

From GLM_GTX_inertia extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00173.html b/doc/html/a00173.html deleted file mode 100644 index 48949a30..00000000 --- a/doc/html/a00173.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - -GLM: glm::gtx::integer Namespace Reference - - - - - - -
-

glm::gtx::integer Namespace Reference

-

GLM_GTX_integer extension: Add support for integer for core functions. -More...

- - - - - - - - - - - -

Functions

template<typename genType >
genType factorial (genType const &x)
 Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension.
int mod (int x, int y)
 Modulus.
int pow (int x, int y)
 Returns x raised to the y power.
int sqrt (int x)
 Returns the positive square root of x.
-

Detailed Description

-

GLM_GTX_integer extension: Add support for integer for core functions.

-

Function Documentation

- -
-
- - - - - - - - - -
genType glm::gtx::integer::factorial (genType const &  x ) 
-
-
- -

Return the factorial value of a number (!12 max, integer only) From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int glm::gtx::integer::mod (int  x,
int  y 
)
-
-
- -

Modulus.

-

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

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int glm::gtx::integer::pow (int  x,
int  y 
)
-
-
- -

Returns x raised to the y power.

-

From GLM_GTX_integer extension.

- -
-
- -
-
- - - - - - - - - -
int glm::gtx::integer::sqrt (int  x ) 
-
-
- -

Returns the positive square root of x.

-

From GLM_GTX_integer extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:24 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00174.html b/doc/html/a00174.html deleted file mode 100644 index b4eac0e4..00000000 --- a/doc/html/a00174.html +++ /dev/null @@ -1,271 +0,0 @@ - - - - -GLM: glm::gtx::intersect Namespace Reference - - - - - - -
-

glm::gtx::intersect Namespace Reference

-

GLM_GTX_intersect extension: Add intersection functions. -More...

- - - - - - - - - - - - - - -

Functions

template<typename genType >
bool intersectLineSphere (genType const &point0, genType const &point1, genType const &center, typename genType::value_type radius, genType &position, genType &normal)
 Compute the intersection of a line and a sphere.
template<typename genType >
bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
 Compute the intersection of a line and a triangle.
template<typename genType >
bool intersectRaySphere (genType const &orig, genType const &dir, genType const &center, typename genType::value_type radius, genType &position, genType &normal)
 Compute the intersection of a ray and a sphere.
template<typename genType >
bool intersectRayTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
 Compute the intersection of a ray and a triangle.
-

Detailed Description

-

GLM_GTX_intersect extension: Add intersection functions.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::intersect::intersectLineSphere (genType const &  point0,
genType const &  point1,
genType const &  center,
typename genType::value_type  radius,
genType &  position,
genType &  normal 
)
-
-
- -

Compute the intersection of a line and a sphere.

-

From GLM_GTX_intersect extension

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::intersect::intersectLineTriangle (genType const &  orig,
genType const &  dir,
genType const &  vert0,
genType const &  vert1,
genType const &  vert2,
genType &  position 
)
-
-
- -

Compute the intersection of a line and a triangle.

-

From GLM_GTX_intersect extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::intersect::intersectRaySphere (genType const &  orig,
genType const &  dir,
genType const &  center,
typename genType::value_type  radius,
genType &  position,
genType &  normal 
)
-
-
- -

Compute the intersection of a ray and a sphere.

-

From GLM_GTX_intersect extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::intersect::intersectRayTriangle (genType const &  orig,
genType const &  dir,
genType const &  vert0,
genType const &  vert1,
genType const &  vert2,
genType &  baryPosition 
)
-
-
- -

Compute the intersection of a ray and a triangle.

-

From GLM_GTX_intersect extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00175.html b/doc/html/a00175.html deleted file mode 100644 index d351cf71..00000000 --- a/doc/html/a00175.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - -GLM: glm::gtx::inverse Namespace Reference - - - - - - -
-

glm::gtx::inverse Namespace Reference

-

GLM_GTX_inverse extension: Inverse matrix functions. -More...

- - - - - -

Functions

template<typename genType >
genType affineInverse (genType const &m)
 Fast matrix inverse for affine matrix.
-

Detailed Description

-

GLM_GTX_inverse extension: Inverse matrix functions.

-

Function Documentation

- -
-
- - - - - - - - - -
genType glm::gtx::inverse::affineInverse (genType const &  m ) 
-
-
- -

Fast matrix inverse for affine matrix.

-

From GLM_GTX_inverse extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00176.html b/doc/html/a00176.html deleted file mode 100644 index dbdb1c71..00000000 --- a/doc/html/a00176.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - -GLM: glm::gtx::inverse_transpose Namespace Reference - - - - - - -
-

glm::gtx::inverse_transpose Namespace Reference

-

GLM_GTX_inverse_transpose extension: Inverse transpose matrix functions. -More...

- - - - - -

Functions

template<typename genType >
genType::value_type inverseTranspose (genType const &m)
 Compute the inverse transpose of a matrix.
-

Detailed Description

-

GLM_GTX_inverse_transpose extension: Inverse transpose matrix functions.

-

Function Documentation

- -
-
- - - - - - - - - -
genType::value_type glm::gtx::inverse_transpose::inverseTranspose (genType const &  m ) 
-
-
- -

Compute the inverse transpose of a matrix.

-

From GLM_GTX_inverse extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00177.html b/doc/html/a00177.html deleted file mode 100644 index 1c1b64ec..00000000 --- a/doc/html/a00177.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - -GLM: glm::gtx::log_base Namespace Reference - - - - - - -
-

glm::gtx::log_base Namespace Reference

-

GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar. -More...

- - - - - -

Functions

template<typename genType >
genType log (genType const &x, genType const &base)
 Logarithm for any base.
-

Detailed Description

-

GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
genType glm::gtx::log_base::log (genType const &  x,
genType const &  base 
)
-
-
- -

Logarithm for any base.

-

From GLM_GTX_log_base.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00178.html b/doc/html/a00178.html deleted file mode 100644 index ba6c92e8..00000000 --- a/doc/html/a00178.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -GLM: glm::gtx::matrix_access Namespace Reference - - - - - - -
-

glm::gtx::matrix_access Namespace Reference

-

GLM_GTX_matrix_access extension: Set a column or a row of a matrix. -More...

- - - - - - - - -

Functions

template<typename genType >
genType column (const genType &m, int index, typename genType::col_type const &x)
 Set a specific column to a matrix.
template<typename genType >
genType row (const genType &m, int index, typename genType::row_type const &x)
 Set a specific row to a matrix.
-

Detailed Description

-

GLM_GTX_matrix_access extension: Set a column or a row of a matrix.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
genType glm::gtx::matrix_access::column (const genType &  m,
int  index,
typename genType::col_type const &  x 
)
-
-
- -

Set a specific column to a matrix.

-

From GLM_GTX_matrix_access extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
genType glm::gtx::matrix_access::row (const genType &  m,
int  index,
typename genType::row_type const &  x 
)
-
-
- -

Set a specific row to a matrix.

-

From GLM_GTX_matrix_access extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00179.html b/doc/html/a00179.html deleted file mode 100644 index 6a6e33f3..00000000 --- a/doc/html/a00179.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -GLM: glm::gtx::matrix_cross_product Namespace Reference - - - - - - -
-

glm::gtx::matrix_cross_product Namespace Reference

-

GLM_GTX_matrix_cross_product: Build cross product matrices. -More...

- - - - - - - - -

Functions

template<typename T >
detail::tmat3x3< T > matrixCross3 (detail::tvec3< T > const &x)
 Build a cross product matrix.
template<typename T >
detail::tmat4x4< T > matrixCross4 (detail::tvec3< T > const &x)
 Build a cross product matrix.
-

Detailed Description

-

GLM_GTX_matrix_cross_product: Build cross product matrices.

-

Function Documentation

- -
-
- - - - - - - - - -
detail::tmat3x3<T> glm::gtx::matrix_cross_product::matrixCross3 (detail::tvec3< T > const &  x ) 
-
-
- -

Build a cross product matrix.

-

From GLM_GTX_matrix_cross_product extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x4<T> glm::gtx::matrix_cross_product::matrixCross4 (detail::tvec3< T > const &  x ) 
-
-
- -

Build a cross product matrix.

-

From GLM_GTX_matrix_cross_product extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00180.html b/doc/html/a00180.html deleted file mode 100644 index e34126d4..00000000 --- a/doc/html/a00180.html +++ /dev/null @@ -1,421 +0,0 @@ - - - - -GLM: glm::gtx::matrix_major_storage Namespace Reference - - - - - - -
-

glm::gtx::matrix_major_storage Namespace Reference

-

GLM_GTX_matrix_cross_product: Build matrices with specific matrix order, row or column. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename T >
detail::tmat2x2< T > colMajor2 (const detail::tmat2x2< T > &m)
 Build a column major matrix from other matrix.
template<typename T >
detail::tmat2x2< T > colMajor2 (const detail::tvec2< T > &v1, const detail::tvec2< T > &v2)
 Build a column major matrix from column vectors.
template<typename T >
detail::tmat3x3< T > colMajor3 (const detail::tmat3x3< T > &m)
 Build a column major matrix from other matrix.
template<typename T >
detail::tmat3x3< T > colMajor3 (const detail::tvec3< T > &v1, const detail::tvec3< T > &v2, const detail::tvec3< T > &v3)
 Build a column major matrix from column vectors.
template<typename T >
detail::tmat4x4< T > colMajor4 (const detail::tmat4x4< T > &m)
 Build a column major matrix from other matrix.
template<typename T >
detail::tmat4x4< T > colMajor4 (const detail::tvec4< T > &v1, const detail::tvec4< T > &v2, const detail::tvec4< T > &v3, const detail::tvec4< T > &v4)
 Build a column major matrix from column vectors.
template<typename T >
detail::tmat2x2< T > rowMajor2 (const detail::tmat2x2< T > &m)
 Build a row major matrix from other matrix.
template<typename T >
detail::tmat2x2< T > rowMajor2 (const detail::tvec2< T > &v1, const detail::tvec2< T > &v2)
 Build a row major matrix from row vectors.
template<typename T >
detail::tmat3x3< T > rowMajor3 (const detail::tmat3x3< T > &m)
 Build a row major matrix from other matrix.
template<typename T >
detail::tmat3x3< T > rowMajor3 (const detail::tvec3< T > &v1, const detail::tvec3< T > &v2, const detail::tvec3< T > &v3)
 Build a row major matrix from row vectors.
template<typename T >
detail::tmat4x4< T > rowMajor4 (const detail::tmat4x4< T > &m)
 Build a row major matrix from other matrix.
template<typename T >
detail::tmat4x4< T > rowMajor4 (const detail::tvec4< T > &v1, const detail::tvec4< T > &v2, const detail::tvec4< T > &v3, const detail::tvec4< T > &v4)
 Build a row major matrix from row vectors.
-

Detailed Description

-

GLM_GTX_matrix_cross_product: Build matrices with specific matrix order, row or column.

-

Function Documentation

- -
-
- - - - - - - - - -
detail::tmat2x2<T> glm::gtx::matrix_major_storage::colMajor2 (const detail::tmat2x2< T > &  m ) 
-
-
- -

Build a column major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat2x2<T> glm::gtx::matrix_major_storage::colMajor2 (const detail::tvec2< T > &  v1,
const detail::tvec2< T > &  v2 
)
-
-
- -

Build a column major matrix from column vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat3x3<T> glm::gtx::matrix_major_storage::colMajor3 (const detail::tmat3x3< T > &  m ) 
-
-
- -

Build a column major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T> glm::gtx::matrix_major_storage::colMajor3 (const detail::tvec3< T > &  v1,
const detail::tvec3< T > &  v2,
const detail::tvec3< T > &  v3 
)
-
-
- -

Build a column major matrix from column vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x4<T> glm::gtx::matrix_major_storage::colMajor4 (const detail::tmat4x4< T > &  m ) 
-
-
- -

Build a column major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::matrix_major_storage::colMajor4 (const detail::tvec4< T > &  v1,
const detail::tvec4< T > &  v2,
const detail::tvec4< T > &  v3,
const detail::tvec4< T > &  v4 
)
-
-
- -

Build a column major matrix from column vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat2x2<T> glm::gtx::matrix_major_storage::rowMajor2 (const detail::tmat2x2< T > &  m ) 
-
-
- -

Build a row major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat2x2<T> glm::gtx::matrix_major_storage::rowMajor2 (const detail::tvec2< T > &  v1,
const detail::tvec2< T > &  v2 
)
-
-
- -

Build a row major matrix from row vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat3x3<T> glm::gtx::matrix_major_storage::rowMajor3 (const detail::tmat3x3< T > &  m ) 
-
-
- -

Build a row major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T> glm::gtx::matrix_major_storage::rowMajor3 (const detail::tvec3< T > &  v1,
const detail::tvec3< T > &  v2,
const detail::tvec3< T > &  v3 
)
-
-
- -

Build a row major matrix from row vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x4<T> glm::gtx::matrix_major_storage::rowMajor4 (const detail::tmat4x4< T > &  m ) 
-
-
- -

Build a row major matrix from other matrix.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::matrix_major_storage::rowMajor4 (const detail::tvec4< T > &  v1,
const detail::tvec4< T > &  v2,
const detail::tvec4< T > &  v3,
const detail::tvec4< T > &  v4 
)
-
-
- -

Build a row major matrix from row vectors.

-

From GLM_GTX_matrix_major_storage extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00181.html b/doc/html/a00181.html deleted file mode 100644 index 271bec51..00000000 --- a/doc/html/a00181.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - -GLM: glm::gtx::matrix_operation Namespace Reference - - - - - - -
-

glm::gtx::matrix_operation Namespace Reference

-

GLM_GTX_matrix_operation: Build cross product matrices. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

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

Detailed Description

-

GLM_GTX_matrix_operation: Build cross product matrices.

-

Function Documentation

- -
-
- - - - - - - - - -
detail::tmat2x2<valType> glm::gtx::matrix_operation::diagonal2x2 (detail::tvec2< valType > const &  v ) 
-
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat2x3<valType> glm::gtx::matrix_operation::diagonal2x3 (detail::tvec2< valType > const &  v ) 
-
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat2x4<valType> glm::gtx::matrix_operation::diagonal2x4 (detail::tvec2< valType > const &  v ) 
-
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat3x2<valType> glm::gtx::matrix_operation::diagonal3x2 (detail::tvec2< valType > const &  v ) 
-
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat3x3<valType> glm::gtx::matrix_operation::diagonal3x3 (detail::tvec3< valType > const &  v ) 
-
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat3x4<valType> glm::gtx::matrix_operation::diagonal3x4 (detail::tvec3< valType > const &  v ) 
-
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x2<valType> glm::gtx::matrix_operation::diagonal4x2 (detail::tvec2< valType > const &  v ) 
-
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x3<valType> glm::gtx::matrix_operation::diagonal4x3 (detail::tvec3< valType > const &  v ) 
-
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::matrix_operation::diagonal4x4 (detail::tvec4< valType > const &  v ) 
-
-
- -

Build a diagonal matrix.

-

From GLM_GTX_matrix_operation extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00182.html b/doc/html/a00182.html deleted file mode 100644 index 88978d17..00000000 --- a/doc/html/a00182.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - -GLM: glm::gtx::matrix_projection Namespace Reference - - - - - - -
-

glm::gtx::matrix_projection Namespace Reference

-

GLM_GTX_matrix_projection: Varius ways to build and operate on projection matrices. -More...

- - - - - - - - - - - -

Functions

template<typename T >
detail::tmat4x4< T > infinitePerspective (T fovy, T aspect, T zNear)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite .
template<typename valType >
detail::tmat4x4< valType > perspectiveFov (valType const &fov, valType const &width, valType const &height, valType const &zNear, valType const &zFar)
 Builds a perspective projection matrix based on a field of view From GLM_GTX_matrix_projection extension.
template<typename T >
detail::tmat4x4< T > tweakedInfinitePerspective (T fovy, T aspect, T zNear)
 Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.
-

Detailed Description

-

GLM_GTX_matrix_projection: Varius ways to build and operate on projection matrices.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::matrix_projection::infinitePerspective ( fovy,
aspect,
zNear 
)
-
-
- -

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite .

-

From GLM_GTX_matrix_projection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::matrix_projection::perspectiveFov (valType const &  fov,
valType const &  width,
valType const &  height,
valType const &  zNear,
valType const &  zFar 
)
-
-
- -

Builds a perspective projection matrix based on a field of view From GLM_GTX_matrix_projection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::matrix_projection::tweakedInfinitePerspective ( fovy,
aspect,
zNear 
)
-
-
- -

Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics hardware that doesn't support depth clamping.

-

From GLM_GTX_matrix_projection extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00183.html b/doc/html/a00183.html deleted file mode 100644 index 00fe9b5f..00000000 --- a/doc/html/a00183.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - -GLM: glm::gtx::matrix_query Namespace Reference - - - - - - -
-

glm::gtx::matrix_query Namespace Reference

-

GLM_GTX_matrix_query: Query to evaluate matrices properties. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename genType >
bool isIdentity (const genType &m, const typename genType::value_type epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
 Return if a matrix an identity matrix.
template<typename T >
bool isNormalized (const detail::tmat4x4< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
 Return if a matrix a normalized matrix.
template<typename T >
bool isNormalized (const detail::tmat3x3< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
 Return if a matrix a normalized matrix.
template<typename T >
bool isNormalized (const detail::tmat2x2< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
 Return if a matrix a normalized matrix.
template<typename T >
bool isNull (const detail::tmat4x4< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
 Return if a matrix a null matrix.
template<typename T >
bool isNull (const detail::tmat3x3< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
 Return if a matrix a null matrix.
template<typename T >
bool isNull (const detail::tmat2x2< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
 Return if a matrix a null matrix.
template<typename genType >
bool isOrthogonal (const genType &m, const typename genType::value_type epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
 Return if a matrix an orthonormalized matrix.
-

Detailed Description

-

GLM_GTX_matrix_query: Query to evaluate matrices properties.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::gtx::matrix_query::isIdentity (const genType &  m,
const typename genType::value_type  epsilon = std::numeric_limits< typename genType::value_type >::epsilon() 
)
-
-
- -

Return if a matrix an identity matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::gtx::matrix_query::isNormalized (const detail::tmat4x4< T > &  m,
const T  epsilon = std::numeric_limits< T >::epsilon() 
)
-
-
- -

Return if a matrix a normalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::gtx::matrix_query::isNormalized (const detail::tmat3x3< T > &  m,
const T  epsilon = std::numeric_limits< T >::epsilon() 
)
-
-
- -

Return if a matrix a normalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::gtx::matrix_query::isNormalized (const detail::tmat2x2< T > &  m,
const T  epsilon = std::numeric_limits< T >::epsilon() 
)
-
-
- -

Return if a matrix a normalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::gtx::matrix_query::isNull (const detail::tmat4x4< T > &  m,
const T  epsilon = std::numeric_limits< T >::epsilon() 
)
-
-
- -

Return if a matrix a null matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::gtx::matrix_query::isNull (const detail::tmat3x3< T > &  m,
const T  epsilon = std::numeric_limits< T >::epsilon() 
)
-
-
- -

Return if a matrix a null matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::gtx::matrix_query::isNull (const detail::tmat2x2< T > &  m,
const T  epsilon = std::numeric_limits< T >::epsilon() 
)
-
-
- -

Return if a matrix a null matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::gtx::matrix_query::isOrthogonal (const genType &  m,
const typename genType::value_type  epsilon = std::numeric_limits< typename genType::value_type >::epsilon() 
)
-
-
- -

Return if a matrix an orthonormalized matrix.

-

From GLM_GTX_matrix_query extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00184.html b/doc/html/a00184.html deleted file mode 100644 index 3a420f04..00000000 --- a/doc/html/a00184.html +++ /dev/null @@ -1,241 +0,0 @@ - - - - -GLM: glm::gtx::matrix_selection Namespace Reference - - - - - - -
-

glm::gtx::matrix_selection Namespace Reference

-

GLM_GTX_matrix_selection extension: Access to matrix columns or rows. -More...

- - - - - - - - - - - - - - - - - - - - -

Functions

template<typename T >
detail::tvec4< T > column (const detail::tmat4x4< T > &m, int index)
 Returns a 4 components vector that contains the row of the matrix m witch values is the ones of the column index.
template<typename T >
detail::tvec3< T > column (const detail::tmat3x3< T > &m, int index)
 Returns a 3 components vector that contains the row of the matrix m witch values is the ones of the column index.
template<typename T >
detail::tvec2< T > column (const detail::tmat2x2< T > &m, int index)
 Returns a 2 components vector that contains the row of the matrix m witch values is the ones of the column index.
template<typename T >
detail::tvec4< T > row (const detail::tmat4x4< T > &m, int index)
 Returns a 4 components vector that contains the row of the matrix m witch values is the ones of the row index.
template<typename T >
detail::tvec3< T > row (const detail::tmat3x3< T > &m, int index)
 Returns a 3 components vector that contains the row of the matrix m witch values is the ones of the row index.
template<typename T >
detail::tvec2< T > row (const detail::tmat2x2< T > &m, int index)
 Returns a 2 components vector that contains the row of the matrix m witch values is the ones of the row index.
-

Detailed Description

-

GLM_GTX_matrix_selection extension: Access to matrix columns or rows.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T> glm::gtx::matrix_selection::column (const detail::tmat4x4< T > &  m,
int  index 
)
-
-
- -

Returns a 4 components vector that contains the row of the matrix m witch values is the ones of the column index.

-

From GLM_GTX_matrix_selection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T> glm::gtx::matrix_selection::column (const detail::tmat3x3< T > &  m,
int  index 
)
-
-
- -

Returns a 3 components vector that contains the row of the matrix m witch values is the ones of the column index.

-

From GLM_GTX_matrix_selection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec2<T> glm::gtx::matrix_selection::column (const detail::tmat2x2< T > &  m,
int  index 
)
-
-
- -

Returns a 2 components vector that contains the row of the matrix m witch values is the ones of the column index.

-

From GLM_GTX_matrix_selection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T> glm::gtx::matrix_selection::row (const detail::tmat4x4< T > &  m,
int  index 
)
-
-
- -

Returns a 4 components vector that contains the row of the matrix m witch values is the ones of the row index.

-

From GLM_GTX_matrix_selection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T> glm::gtx::matrix_selection::row (const detail::tmat3x3< T > &  m,
int  index 
)
-
-
- -

Returns a 3 components vector that contains the row of the matrix m witch values is the ones of the row index.

-

From GLM_GTX_matrix_selection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec2<T> glm::gtx::matrix_selection::row (const detail::tmat2x2< T > &  m,
int  index 
)
-
-
- -

Returns a 2 components vector that contains the row of the matrix m witch values is the ones of the row index.

-

From GLM_GTX_matrix_selection extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00185.html b/doc/html/a00185.html deleted file mode 100644 index 6988bfb5..00000000 --- a/doc/html/a00185.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -GLM: glm::gtx::matx Namespace Reference - - - - - - -
-

glm::gtx::matx Namespace Reference

-

GLM_GTX_matx extension: - Work in progress - NxN matrix types. -More...

- -
-

Detailed Description

-

GLM_GTX_matx extension: - Work in progress - NxN matrix types.

-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00186.html b/doc/html/a00186.html deleted file mode 100644 index 512b9bdb..00000000 --- a/doc/html/a00186.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - -GLM: glm::gtx::mixed_product Namespace Reference - - - - - - -
-

glm::gtx::mixed_product Namespace Reference

-

GLM_GTX_mixed_product extension: Mixed product of 3 vectors. -More...

- - - - - -

Functions

-template<typename valType >
valType mixedProduct (detail::tvec3< valType > const &v1, detail::tvec3< valType > const &v2, detail::tvec3< valType > const &v3)
 Mixed product of 3 vectors (from GLM_GTX_mixed_product extension).
-

Detailed Description

-

GLM_GTX_mixed_product extension: Mixed product of 3 vectors.

-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00187.html b/doc/html/a00187.html deleted file mode 100644 index 6bce77b6..00000000 --- a/doc/html/a00187.html +++ /dev/null @@ -1,481 +0,0 @@ - - - - -GLM: glm::gtx::norm Namespace Reference - - - - - - -
-

glm::gtx::norm Namespace Reference

-

GLM_GTX_norm extension: Varius way to compute vector norms. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename T >
distance2 (const detail::tvec4< T > &p0, const detail::tvec4< T > &p1)
 Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
template<typename T >
distance2 (const detail::tvec3< T > &p0, const detail::tvec3< T > &p1)
 Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
template<typename T >
distance2 (const detail::tvec2< T > &p0, const detail::tvec2< T > &p1)
 Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
template<typename T >
distance2 (const T p0, const T p1)
 Returns the squared distance between p0 and p1, i.e., length(p0 - p1).
template<typename T >
l1Norm (const detail::tvec3< T > &v)
 Returns the L1 norm of v.
template<typename T >
l1Norm (const detail::tvec3< T > &x, const detail::tvec3< T > &y)
 Returns the L1 norm between x and y.
template<typename T >
l2Norm (const detail::tvec3< T > &x)
 Returns the L2 norm of v.
template<typename T >
l2Norm (const detail::tvec3< T > &x, const detail::tvec3< T > &y)
 Returns the L2 norm between x and y.
template<typename T >
length2 (const detail::tquat< T > &q)
 Returns the squared length of x.
template<typename T >
length2 (const detail::tvec4< T > &x)
 Returns the squared length of x.
template<typename T >
length2 (const detail::tvec3< T > &x)
 Returns the squared length of x.
template<typename T >
length2 (const detail::tvec2< T > &x)
 Returns the squared length of x.
template<typename T >
length2 (const T x)
 Returns the squared length of x.
template<typename T >
lxNorm (const detail::tvec3< T > &x, unsigned int Depth)
 Returns the L norm of v.
template<typename T >
lxNorm (const detail::tvec3< T > &x, const detail::tvec3< T > &y, unsigned int Depth)
 Returns the L norm between x and y.
-

Detailed Description

-

GLM_GTX_norm extension: Varius way to compute vector norms.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
T glm::gtx::norm::distance2 (const detail::tvec4< T > &  p0,
const detail::tvec4< T > &  p1 
)
-
-
- -

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

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::gtx::norm::distance2 (const detail::tvec3< T > &  p0,
const detail::tvec3< T > &  p1 
)
-
-
- -

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

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::gtx::norm::distance2 (const detail::tvec2< T > &  p0,
const detail::tvec2< T > &  p1 
)
-
-
- -

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

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::gtx::norm::distance2 (const T  p0,
const T  p1 
)
-
-
- -

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

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::norm::l1Norm (const detail::tvec3< T > &  v ) 
-
-
- -

Returns the L1 norm of v.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::gtx::norm::l1Norm (const detail::tvec3< T > &  x,
const detail::tvec3< T > &  y 
)
-
-
- -

Returns the L1 norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::norm::l2Norm (const detail::tvec3< T > &  x ) 
-
-
- -

Returns the L2 norm of v.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::gtx::norm::l2Norm (const detail::tvec3< T > &  x,
const detail::tvec3< T > &  y 
)
-
-
- -

Returns the L2 norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::norm::length2 (const detail::tquat< T > &  q ) 
-
-
- -

Returns the squared length of x.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::norm::length2 (const detail::tvec4< T > &  x ) 
-
-
- -

Returns the squared length of x.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::norm::length2 (const detail::tvec3< T > &  x ) 
-
-
- -

Returns the squared length of x.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::norm::length2 (const detail::tvec2< T > &  x ) 
-
-
- -

Returns the squared length of x.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - -
T glm::gtx::norm::length2 (const T  x ) 
-
-
- -

Returns the squared length of x.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
T glm::gtx::norm::lxNorm (const detail::tvec3< T > &  x,
unsigned int  Depth 
)
-
-
- -

Returns the L norm of v.

-

From GLM_GTX_norm extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
T glm::gtx::norm::lxNorm (const detail::tvec3< T > &  x,
const detail::tvec3< T > &  y,
unsigned int  Depth 
)
-
-
- -

Returns the L norm between x and y.

-

From GLM_GTX_norm extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00188.html b/doc/html/a00188.html deleted file mode 100644 index 9eeca7d6..00000000 --- a/doc/html/a00188.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -GLM: glm::gtx::normal Namespace Reference - - - - - - -
-

glm::gtx::normal Namespace Reference

-

GLM_GTX_normal extension: Compute the normal of a triangle. -More...

- - - - - -

Functions

template<typename T >
detail::tvec3< T > triangleNormal (detail::tvec3< T > const &p1, detail::tvec3< T > const &p2, detail::tvec3< T > const &p3)
 Computes triangle normal from triangle points.
-

Detailed Description

-

GLM_GTX_normal extension: Compute the normal of a triangle.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tvec3<T> glm::gtx::normal::triangleNormal (detail::tvec3< T > const &  p1,
detail::tvec3< T > const &  p2,
detail::tvec3< T > const &  p3 
)
-
-
- -

Computes triangle normal from triangle points.

-

From GLM_GTX_normal extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00189.html b/doc/html/a00189.html deleted file mode 100644 index dad12401..00000000 --- a/doc/html/a00189.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - -GLM: glm::gtx::normalize_dot Namespace Reference - - - - - - -
-

glm::gtx::normalize_dot Namespace Reference

-

GLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root. -More...

- - - - - - - - -

Functions

template<typename genType >
genType::value_type fastNormalizeDot (genType const &x, genType const &y)
 Normalize parameters and returns the dot product of x and y.
template<typename genType >
genType::value_type normalizeDot (genType const &x, genType const &y)
 Normalize parameters and returns the dot product of x and y.
-

Detailed Description

-

GLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
genType::value_type glm::gtx::normalize_dot::fastNormalizeDot (genType const &  x,
genType const &  y 
)
-
-
- -

Normalize parameters and returns the dot product of x and y.

-

Faster that dot(fastNormalize(x), fastNormalize(y)). From GLM_GTX_normalize_dot extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType::value_type glm::gtx::normalize_dot::normalizeDot (genType const &  x,
genType const &  y 
)
-
-
- -

Normalize parameters and returns the dot product of x and y.

-

It's faster that dot(normalize(x), normalize(y)). From GLM_GTX_normalize_dot extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00190.html b/doc/html/a00190.html deleted file mode 100644 index 5d32bb92..00000000 --- a/doc/html/a00190.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - -GLM: glm::gtx::number_precision Namespace Reference - - - - - - -
-

glm::gtx::number_precision Namespace Reference

-

GLM_GTX_number_precision extension: Defined size types. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Typedefs

-typedef f16 f16mat1
 Half-precision floating-point scalar. (from GLM_GTX_number_precision extension).
-typedef f16 f16mat1x1
 Half-precision floating-point scalar. (from GLM_GTX_number_precision extension).
-typedef f16 f16vec1
 Half-precision floating-point scalar. (from GLM_GTX_number_precision extension).
-typedef f32 f32mat1
 Single-precision floating-point scalar. (from GLM_GTX_number_precision extension).
-typedef f32 f32mat1x1
 Single-precision floating-point scalar. (from GLM_GTX_number_precision extension).
-typedef f32 f32vec1
 Single-precision floating-point scalar. (from GLM_GTX_number_precision extension).
-typedef f64 f64mat1
 Double-precision floating-point scalar. (from GLM_GTX_number_precision extension).
-typedef f64 f64mat1x1
 Double-precision floating-point scalar. (from GLM_GTX_number_precision extension).
-typedef f64 f64vec1
 Single-precision floating-point scalar. (from GLM_GTX_number_precision extension).
-typedef u16 u16vec1
 16bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
-typedef u32 u32vec1
 32bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
-typedef u64 u64vec1
 64bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
-typedef u8 u8vec1
 8bit unsigned integer scalar. (from GLM_GTX_number_precision extension)
-

Detailed Description

-

GLM_GTX_number_precision extension: Defined size types.

-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00191.html b/doc/html/a00191.html deleted file mode 100644 index 9eea4e97..00000000 --- a/doc/html/a00191.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - -GLM: glm::gtx::ocl_type Namespace Reference - - - - - - -
-

glm::gtx::ocl_type Namespace Reference

-

GLM_GTX_ocl_type extension: OpenCL types. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Typedefs

-typedef detail::int8 cl_char
 8bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::int8 cl_char1
 8bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec2
-< detail::int8 > 
cl_char2
 8bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec3
-< detail::int8 > 
cl_char3
 8bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec4
-< detail::int8 > 
cl_char4
 8bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::float32 cl_float
 Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension).
-typedef detail::float32 cl_float1
 Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension).
-typedef detail::tvec2
-< detail::float32 > 
cl_float2
 Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension).
-typedef detail::tvec3
-< detail::float32 > 
cl_float3
 Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension).
-typedef detail::tvec4
-< detail::float32 > 
cl_float4
 Single-precision floating-point scalar. (from GLM_GTX_ocl_type extension).
-typedef detail::float16 cl_half
 Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension).
-typedef detail::int32 cl_int
 32bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::int32 cl_int1
 32bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec2
-< detail::int32 > 
cl_int2
 32bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec3
-< detail::int32 > 
cl_int3
 32bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec4
-< detail::int32 > 
cl_int4
 32bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::int64 cl_long
 64bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::int64 cl_long1
 64bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec2
-< detail::int64 > 
cl_long2
 64bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec3
-< detail::int64 > 
cl_long3
 64bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec4
-< detail::int64 > 
cl_long4
 64bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::int16 cl_short
 16bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::int16 cl_short1
 16bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec2
-< detail::int16 > 
cl_short2
 16bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec3
-< detail::int16 > 
cl_short3
 16bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec4
-< detail::int16 > 
cl_short4
 16bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::uint8 cl_uchar
 8bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::uint8 cl_uchar1
 8bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec2
-< detail::uint8 > 
cl_uchar2
 8bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec3
-< detail::uint8 > 
cl_uchar3
 8bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec4
-< detail::uint8 > 
cl_uchar4
 8bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::uint32 cl_uint
 32bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::uint32 cl_uint1
 32bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec2
-< detail::uint32 > 
cl_uint2
 32bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec3
-< detail::uint32 > 
cl_uint3
 32bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec4
-< detail::uint32 > 
cl_uint4
 32bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::uint64 cl_ulong
 64bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::uint64 cl_ulong1
 64bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec2
-< detail::uint64 > 
cl_ulong2
 64bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec3
-< detail::uint64 > 
cl_ulong3
 64bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec4
-< detail::uint64 > 
cl_ulong4
 64bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::uint16 cl_ushort
 16bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::uint16 cl_ushort1
 16bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec2
-< detail::uint16 > 
cl_ushort2
 16bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec3
-< detail::uint16 > 
cl_ushort3
 16bit signed integer. (from GLM_GTX_ocl_type extension)
-typedef detail::tvec4
-< detail::uint16 > 
cl_ushort4
 16bit signed integer. (from GLM_GTX_ocl_type extension)
-

Detailed Description

-

GLM_GTX_ocl_type extension: OpenCL types.

-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00192.html b/doc/html/a00192.html deleted file mode 100644 index 3ce1f78d..00000000 --- a/doc/html/a00192.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - -GLM: glm::gtx::optimum_pow Namespace Reference - - - - - - -
-

glm::gtx::optimum_pow Namespace Reference

-

GLM_GTX_optimum_pow extension: Integer exponenciation of power functions. -More...

- - - - - - - - - - - - - - - - - - - -

Functions

template<typename genType >
genType pow2 (const genType &x)
 Returns x raised to the power of 2.
template<typename genType >
genType pow3 (const genType &x)
 Returns x raised to the power of 3.
template<typename genType >
genType pow4 (const genType &x)
 Returns x raised to the power of 4.
detail::tvec4< bool > powOfTwo (const detail::tvec4< int > &x)
 Checks to determine if the parameter component are power of 2 numbers.
detail::tvec3< bool > powOfTwo (const detail::tvec3< int > &x)
 Checks to determine if the parameter component are power of 2 numbers.
detail::tvec2< bool > powOfTwo (const detail::tvec2< int > &x)
 Checks to determine if the parameter component are power of 2 numbers.
bool powOfTwo (int num)
 Checks if the parameter is a power of 2 number.
-

Detailed Description

-

GLM_GTX_optimum_pow extension: Integer exponenciation of power functions.

-

Function Documentation

- -
-
- - - - - - - - - -
genType glm::gtx::optimum_pow::pow2 (const genType &  x ) 
-
-
- -

Returns x raised to the power of 2.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::optimum_pow::pow3 (const genType &  x ) 
-
-
- -

Returns x raised to the power of 3.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::optimum_pow::pow4 (const genType &  x ) 
-
-
- -

Returns x raised to the power of 4.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - - - - - -
detail::tvec4<bool> glm::gtx::optimum_pow::powOfTwo (const detail::tvec4< int > &  x ) 
-
-
- -

Checks to determine if the parameter component are power of 2 numbers.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - - - - - -
detail::tvec3<bool> glm::gtx::optimum_pow::powOfTwo (const detail::tvec3< int > &  x ) 
-
-
- -

Checks to determine if the parameter component are power of 2 numbers.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - - - - - -
detail::tvec2<bool> glm::gtx::optimum_pow::powOfTwo (const detail::tvec2< int > &  x ) 
-
-
- -

Checks to determine if the parameter component are power of 2 numbers.

-

From GLM_GTX_optimum_pow extension.

- -
-
- -
-
- - - - - - - - - -
bool glm::gtx::optimum_pow::powOfTwo (int  num ) 
-
-
- -

Checks if the parameter is a power of 2 number.

-

From GLM_GTX_optimum_pow extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00193.html b/doc/html/a00193.html deleted file mode 100644 index 1a90b79a..00000000 --- a/doc/html/a00193.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - -GLM: glm::gtx::orthonormalize Namespace Reference - - - - - - -
-

glm::gtx::orthonormalize Namespace Reference

-

GLM_GTX_orthonormalize extension: Orthonormalize matrices. -More...

- - - - - - - - -

Functions

template<typename T >
detail::tvec3< T > orthonormalize (const detail::tvec3< T > &x, const detail::tvec3< T > &y)
 Orthonormalizes x according y.
template<typename T >
detail::tmat3x3< T > orthonormalize (const detail::tmat3x3< T > &m)
 Returns the orthonormalized matrix of m.
-

Detailed Description

-

GLM_GTX_orthonormalize extension: Orthonormalize matrices.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T> glm::gtx::orthonormalize::orthonormalize (const detail::tvec3< T > &  x,
const detail::tvec3< T > &  y 
)
-
-
- -

Orthonormalizes x according y.

-

From GLM_GTX_orthonormalize extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat3x3<T> glm::gtx::orthonormalize::orthonormalize (const detail::tmat3x3< T > &  m ) 
-
-
- -

Returns the orthonormalized matrix of m.

-

From GLM_GTX_orthonormalize extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00194.html b/doc/html/a00194.html deleted file mode 100644 index 4669a0dd..00000000 --- a/doc/html/a00194.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - -GLM: glm::gtx::perpendicular Namespace Reference - - - - - - -
-

glm::gtx::perpendicular Namespace Reference

-

GLM_GTX_perpendicular extension: Perpendicular of a vector from other one. -More...

- - - - - - - - - - - -

Functions

template<typename T >
detail::tvec4< T > perp (detail::tvec4< T > const &x, detail::tvec4< T > const &Normal)
 Projects x a perpendicular axis of Normal.
template<typename T >
detail::tvec3< T > perp (detail::tvec3< T > const &x, detail::tvec3< T > const &Normal)
 Projects x a perpendicular axis of Normal.
template<typename T >
detail::tvec2< T > perp (detail::tvec2< T > const &x, detail::tvec2< T > const &Normal)
 Projects x a perpendicular axis of Normal.
-

Detailed Description

-

GLM_GTX_perpendicular extension: Perpendicular of a vector from other one.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T> glm::gtx::perpendicular::perp (detail::tvec4< T > const &  x,
detail::tvec4< T > const &  Normal 
)
-
-
- -

Projects x a perpendicular axis of Normal.

-

From GLM_GTX_perpendicular extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T> glm::gtx::perpendicular::perp (detail::tvec3< T > const &  x,
detail::tvec3< T > const &  Normal 
)
-
-
- -

Projects x a perpendicular axis of Normal.

-

From GLM_GTX_perpendicular extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec2<T> glm::gtx::perpendicular::perp (detail::tvec2< T > const &  x,
detail::tvec2< T > const &  Normal 
)
-
-
- -

Projects x a perpendicular axis of Normal.

-

From GLM_GTX_perpendicular extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00195.html b/doc/html/a00195.html deleted file mode 100644 index de215cdd..00000000 --- a/doc/html/a00195.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -GLM: glm::gtx::polar_coordinates Namespace Reference - - - - - - -
-

glm::gtx::polar_coordinates Namespace Reference

-

GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert. -More...

- - - - - - - - -

Functions

template<typename T >
detail::tvec3< T > euclidean (const detail::tvec3< T > &polar)
 Convert Polar to Euclidean coordinates.
template<typename T >
detail::tvec3< T > polar (const detail::tvec3< T > &euclidean)
 Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.
-

Detailed Description

-

GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert.

-

Function Documentation

- -
-
- - - - - - - - - -
detail::tvec3<T> glm::gtx::polar_coordinates::euclidean (const detail::tvec3< T > &  polar ) 
-
-
- -

Convert Polar to Euclidean coordinates.

-

From GLM_GTX_polar_coordinates extension.

- -
-
- -
-
- - - - - - - - - -
detail::tvec3<T> glm::gtx::polar_coordinates::polar (const detail::tvec3< T > &  euclidean ) 
-
-
- -

Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude.

-

From GLM_GTX_polar_coordinates extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00196.html b/doc/html/a00196.html deleted file mode 100644 index 0d568385..00000000 --- a/doc/html/a00196.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - -GLM: glm::gtx::projection Namespace Reference - - - - - - -
-

glm::gtx::projection Namespace Reference

-

GLM_GTX_projection extension: Projection of a vector to other one. -More...

- - - - - - - - - - - -

Functions

template<typename T >
detail::tvec4< T > proj (detail::tvec4< T > const &x, detail::tvec4< T > const &Normal)
 Projects x on Normal.
template<typename T >
detail::tvec3< T > proj (detail::tvec3< T > const &x, detail::tvec3< T > const &Normal)
 Projects x on Normal.
template<typename T >
detail::tvec2< T > proj (detail::tvec2< T > const &x, detail::tvec2< T > const &Normal)
 Projects x on Normal.
-

Detailed Description

-

GLM_GTX_projection extension: Projection of a vector to other one.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T> glm::gtx::projection::proj (detail::tvec4< T > const &  x,
detail::tvec4< T > const &  Normal 
)
-
-
- -

Projects x on Normal.

-

From GLM_GTX_projection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T> glm::gtx::projection::proj (detail::tvec3< T > const &  x,
detail::tvec3< T > const &  Normal 
)
-
-
- -

Projects x on Normal.

-

From GLM_GTX_projection extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec2<T> glm::gtx::projection::proj (detail::tvec2< T > const &  x,
detail::tvec2< T > const &  Normal 
)
-
-
- -

Projects x on Normal.

-

From GLM_GTX_projection extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00197.html b/doc/html/a00197.html deleted file mode 100644 index 7b698e1c..00000000 --- a/doc/html/a00197.html +++ /dev/null @@ -1,713 +0,0 @@ - - - - -GLM: glm::gtx::quaternion Namespace Reference - - - - - - -
-

glm::gtx::quaternion Namespace Reference

-

GLM_GTX_quaternion extension: Quaternion types and functions. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename valType >
valType angle (detail::tquat< valType > const &x)
 Returns the q rotation angle.
template<typename valType >
detail::tquat< valType > angleAxis (valType const &angle, detail::tvec3< valType > const &v)
 Build a quaternion from an angle and an axis.
template<typename valType >
detail::tquat< valType > angleAxis (valType const &angle, valType const &x, valType const &y, valType const &z)
 Build a quaternion from an angle and an axis.
template<typename valType >
detail::tvec3< valType > axis (detail::tquat< valType > const &x)
 Returns the q rotation axis.
template<typename valType >
detail::tvec3< valType > cross (detail::tvec3< valType > const &v, detail::tquat< valType > const &q)
 Compute a cross product between a vector and a quaternion.
template<typename valType >
detail::tvec3< valType > cross (detail::tquat< valType > const &q, detail::tvec3< valType > const &v)
 Compute a cross product between a quaternion and a vector.
template<typename valType >
detail::tvec3< valType > eularAngles (detail::tquat< valType > const &x)
 Returns euler angles, yitch as x, yaw as y, roll as z.
template<typename valType >
detail::tquat< valType > exp (detail::tquat< valType > const &q, valType const &exponent)
 Returns a exp of a quaternion.
template<typename valType >
valType extractRealComponent (detail::tquat< valType > const &q)
 Extract the real component of a quaternion.
template<typename valType >
detail::tquat< valType > intermediate (detail::tquat< valType > const &prev, detail::tquat< valType > const &curr, detail::tquat< valType > const &next)
 Returns an intermediate control point for squad interpolation.
template<typename valType >
detail::tquat< valType > log (detail::tquat< valType > const &q)
 Returns a log of a quaternion.
template<typename valType >
valType pitch (detail::tquat< valType > const &x)
 Returns pitch value of euler angles.
template<typename valType >
detail::tquat< valType > pow (detail::tquat< valType > const &x, valType const &y)
 Returns x raised to the y power.
template<typename valType >
valType roll (detail::tquat< valType > const &x)
 Returns roll value of euler angles.
template<typename valType >
detail::tvec4< valType > rotate (detail::tquat< valType > const &q, detail::tvec4< valType > const &v)
 Rotates a 4 components vector by a quaternion.
template<typename valType >
detail::tvec3< valType > rotate (detail::tquat< valType > const &q, detail::tvec3< valType > const &v)
 Returns quarternion square root.
template<typename valType >
detail::tquat< valType > squad (detail::tquat< valType > const &q1, detail::tquat< valType > const &q2, detail::tquat< valType > const &s1, detail::tquat< valType > const &s2, valType const &h)
 Compute a point on a path according squad equation.
template<typename valType >
detail::tmat3x3< valType > toMat3 (detail::tquat< valType > const &x)
 Converts a quaternion to a 3 * 3 matrix.
template<typename valType >
detail::tmat4x4< valType > toMat4 (detail::tquat< valType > const &x)
 Converts a quaternion to a 4 * 4 matrix.
template<typename valType >
detail::tquat< valType > toQuat (detail::tmat4x4< valType > const &x)
 Converts a 4 * 4 matrix to a quaternion.
template<typename valType >
detail::tquat< valType > toQuat (detail::tmat3x3< valType > const &x)
 Converts a 3 * 3 matrix to a quaternion.
template<typename valType >
valType yaw (detail::tquat< valType > const &x)
 Returns yaw value of euler angles.
-

Detailed Description

-

GLM_GTX_quaternion extension: Quaternion types and functions.

-

Function Documentation

- -
-
- - - - - - - - - -
valType glm::gtx::quaternion::angle (detail::tquat< valType > const &  x ) 
-
-
- -

Returns the q rotation angle.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tquat<valType> glm::gtx::quaternion::angleAxis (valType const &  angle,
detail::tvec3< valType > const &  v 
)
-
-
- -

Build a quaternion from an angle and an axis.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<valType> glm::gtx::quaternion::angleAxis (valType const &  angle,
valType const &  x,
valType const &  y,
valType const &  z 
)
-
-
- -

Build a quaternion from an angle and an axis.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
detail::tvec3<valType> glm::gtx::quaternion::axis (detail::tquat< valType > const &  x ) 
-
-
- -

Returns the q rotation axis.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<valType> glm::gtx::quaternion::cross (detail::tvec3< valType > const &  v,
detail::tquat< valType > const &  q 
)
-
-
- -

Compute a cross product between a vector and a quaternion.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<valType> glm::gtx::quaternion::cross (detail::tquat< valType > const &  q,
detail::tvec3< valType > const &  v 
)
-
-
- -

Compute a cross product between a quaternion and a vector.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
detail::tvec3<valType> glm::gtx::quaternion::eularAngles (detail::tquat< valType > const &  x ) 
-
-
- -

Returns euler angles, yitch as x, yaw as y, roll as z.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tquat<valType> glm::gtx::quaternion::exp (detail::tquat< valType > const &  q,
valType const &  exponent 
)
-
-
- -

Returns a exp of a quaternion.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
valType glm::gtx::quaternion::extractRealComponent (detail::tquat< valType > const &  q ) 
-
-
- -

Extract the real component of a quaternion.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<valType> glm::gtx::quaternion::intermediate (detail::tquat< valType > const &  prev,
detail::tquat< valType > const &  curr,
detail::tquat< valType > const &  next 
)
-
-
- -

Returns an intermediate control point for squad interpolation.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
detail::tquat<valType> glm::gtx::quaternion::log (detail::tquat< valType > const &  q ) 
-
-
- -

Returns a log of a quaternion.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
valType glm::gtx::quaternion::pitch (detail::tquat< valType > const &  x ) 
-
-
- -

Returns pitch value of euler angles.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tquat<valType> glm::gtx::quaternion::pow (detail::tquat< valType > const &  x,
valType const &  y 
)
-
-
- -

Returns x raised to the y power.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
valType glm::gtx::quaternion::roll (detail::tquat< valType > const &  x ) 
-
-
- -

Returns roll value of euler angles.

-

From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<valType> glm::gtx::quaternion::rotate (detail::tquat< valType > const &  q,
detail::tvec4< valType > const &  v 
)
-
-
- -

Rotates a 4 components vector by a quaternion.

-

From GLM_GTX_transform extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<valType> glm::gtx::quaternion::rotate (detail::tquat< valType > const &  q,
detail::tvec3< valType > const &  v 
)
-
-
- -

Returns quarternion square root.

-

From GLM_GTX_quaternion extension. Rotates a 3 components vector by a quaternion. From GLM_GTX_transform extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tquat<valType> glm::gtx::quaternion::squad (detail::tquat< valType > const &  q1,
detail::tquat< valType > const &  q2,
detail::tquat< valType > const &  s1,
detail::tquat< valType > const &  s2,
valType const &  h 
)
-
-
- -

Compute a point on a path according squad equation.

-

q1 and q2 are control points; s1 and s2 are intermediate control points. From GLM_GTX_quaternion extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat3x3<valType> glm::gtx::quaternion::toMat3 (detail::tquat< valType > const &  x ) 
-
-
- -

Converts a quaternion to a 3 * 3 matrix.

-

From GLM_GTX_quaternion extension.

- -

Definition at line 166 of file gtx/quaternion.hpp.

- -

References glm::gtc::quaternion::mat3_cast().

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::quaternion::toMat4 (detail::tquat< valType > const &  x ) 
-
-
- -

Converts a quaternion to a 4 * 4 matrix.

-

From GLM_GTX_quaternion extension.

- -

Definition at line 172 of file gtx/quaternion.hpp.

- -

References glm::gtc::quaternion::mat4_cast().

- -
-
- -
-
- - - - - - - - - -
detail::tquat<valType> glm::gtx::quaternion::toQuat (detail::tmat4x4< valType > const &  x ) 
-
-
- -

Converts a 4 * 4 matrix to a quaternion.

-

From GLM_GTX_quaternion extension.

- -

Definition at line 184 of file gtx/quaternion.hpp.

- -

References glm::gtc::quaternion::quat_cast().

- -
-
- -
-
- - - - - - - - - -
detail::tquat<valType> glm::gtx::quaternion::toQuat (detail::tmat3x3< valType > const &  x ) 
-
-
- -

Converts a 3 * 3 matrix to a quaternion.

-

From GLM_GTX_quaternion extension.

- -

Definition at line 178 of file gtx/quaternion.hpp.

- -

References glm::gtc::quaternion::quat_cast().

- -
-
- -
-
- - - - - - - - - -
valType glm::gtx::quaternion::yaw (detail::tquat< valType > const &  x ) 
-
-
- -

Returns yaw value of euler angles.

-

From GLM_GTX_quaternion extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00198.html b/doc/html/a00198.html deleted file mode 100644 index e4a23bb5..00000000 --- a/doc/html/a00198.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - -GLM: glm::gtx::random Namespace Reference - - - - - - -
-

glm::gtx::random Namespace Reference

-

GLM_GTX_random extension: Generate random number from varius distribution methods. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

-template<typename T >
compRand1 (T Min, T Max)
 Generate a random number in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension).
-template<>
float compRand1 ()
 Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random extension).
-template<typename T >
compRand1 ()
 Generate a random number in the interval [0, 1], according a linear distribution (From GLM_GTX_random extension).
-template<typename T >
detail::tvec2< T > compRand2 (const detail::tvec2< T > &Min, const detail::tvec2< T > &Max)
 Generate 2 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension).
-template<typename T >
detail::tvec2< T > compRand2 (T Min, T Max)
 Generate 2 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension).
-template<typename T >
detail::tvec3< T > compRand3 (const detail::tvec3< T > &Min, const detail::tvec3< T > &Max)
 Generate 3 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension).
-template<typename T >
detail::tvec3< T > compRand3 (T Min, T Max)
 Generate 3 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension).
-template<typename T >
detail::tvec3< T > compRand4 (const detail::tvec4< T > &Min, const detail::tvec4< T > &Max)
 Generate 4 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension).
-template<typename T >
detail::tvec4< T > compRand4 (T Min, T Max)
 Generate 4 random numbers in the interval [Min, Max], according a linear distribution (From GLM_GTX_random extension).
-template<typename T >
gaussRand1 (T mean, T std_deviation)
 Gererate a random floating number according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec2< T > gaussRand2 (const detail::tvec2< T > &mean, const detail::tvec2< T > &std_deviation)
 Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec2< T > gaussRand2 (T mean, const detail::tvec2< T > &std_deviation)
 Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec2< T > gaussRand2 (const detail::tvec2< T > &mean, T std_deviation)
 Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec2< T > gaussRand2 (T mean, T std_deviation)
 Gererate 2 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec3< T > gaussRand3 (const detail::tvec3< T > &mean, const detail::tvec3< T > &std_deviation)
 Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec3< T > gaussRand3 (T mean, const detail::tvec3< T > &std_deviation)
 Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec3< T > gaussRand3 (const detail::tvec3< T > &mean, T std_deviation)
 Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec3< T > gaussRand3 (T mean, T std_deviation)
 Gererate 3 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec4< T > gaussRand4 (const detail::tvec4< T > &mean, const detail::tvec4< T > &std_deviation)
 Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec4< T > gaussRand4 (T mean, const detail::tvec4< T > &std_deviation)
 Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec4< T > gaussRand4 (const detail::tvec4< T > &mean, T std_deviation)
 Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec4< T > gaussRand4 (T mean, T std_deviation)
 Gererate 4 random floating numbers according a Gauss distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec2< T > normalizedRand2 (T Min, T Max)
 Generate a scaled and normalized 2D vector regulary distribute on a circle (From GLM_GTX_random extension).
-template<typename T >
detail::tvec2< T > normalizedRand2 ()
 Generate a normalized 2D vector regulary distribute on a circle (From GLM_GTX_random extension).
-template<typename T >
detail::tvec3< T > normalizedRand3 (T Min, T Max)
 Generate a scaled and normalized 3D vector regulary distribute on a sphere (From GLM_GTX_random extension).
-template<typename T >
detail::tvec3< T > normalizedRand3 ()
 Generate a normalized 3D vector regulary distribute on a sphere (From GLM_GTX_random extension).
-template<>
float signedRand1 ()
 Generate a random number in the interval [-1, 1], according a linear distribution (From GLM_GTX_random extension).
template<typename T >
signedRand1 ()
 Generate a random number in the interval [-1, 1], according a linear distribution.
-template<typename T >
detail::tvec2< T > signedRand2 ()
 Generate 2 random numbers in the interval [-1, 1], according a linear distribution (From GLM_GTX_random extension).
-template<typename T >
detail::tvec3< T > signedRand3 ()
 Generate 3 random numbers in the interval [-1, 1], according a linear distribution (From GLM_GTX_random extension).
-template<typename T >
detail::tvec4< T > signedRand4 ()
 Generate 4 random numbers in the interval [-1, 1], according a linear distribution (From GLM_GTX_random extension).
-template<typename T >
detail::tvec2< T > vecRand2 (T MinRadius, T MaxRadius)
 Generate a random normalized 2 component vector. It's a spherical uniform distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec2< T > vecRand2 ()
 Generate a random normalized 2 component vector. It's a spherical uniform distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec3< T > vecRand3 (T MinRadius, T MaxRadius)
 Generate a random normalized 3 component vector. It's a spherical uniform distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec3< T > vecRand3 ()
 Generate a random normalized 3 component vector. It's a spherical uniform distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec4< T > vecRand4 (T MinRadius, T MaxRadius)
 Generate a random normalized 4 component vector. It's a spherical uniform distribution. (From GLM_GTX_random extension).
-template<typename T >
detail::tvec4< T > vecRand4 ()
 Generate a random normalized 4 component vector. It's a spherical uniform distribution. (From GLM_GTX_random extension).
-

Detailed Description

-

GLM_GTX_random extension: Generate random number from varius distribution methods.

-

Function Documentation

- -
-
- - - - - - - - -
T glm::gtx::random::signedRand1 ( ) 
-
-
- -

Generate a random number in the interval [-1, 1], according a linear distribution.

-

From GLM_GTX_random extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00199.html b/doc/html/a00199.html deleted file mode 100644 index e7f46016..00000000 --- a/doc/html/a00199.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - -GLM: glm::gtx::raw_data Namespace Reference - - - - - - -
-

glm::gtx::raw_data Namespace Reference

-

GLM_GTX_raw_data extension: Projection of a vector to other one. -More...

- - - - - - - - - - -

Typedefs

typedef gtc::type_precision::uint8 byte
 Type for byte numbers.
typedef gtc::type_precision::uint32 dword
 Type for dword numbers.
typedef gtc::type_precision::uint64 qword
 Type for qword numbers.
typedef gtc::type_precision::uint16 word
 Type for word numbers.
-

Detailed Description

-

GLM_GTX_raw_data extension: Projection of a vector to other one.

-

Typedef Documentation

- -
-
- - - - -
typedef gtc::type_precision::uint8 byte
-
-
- -

Type for byte numbers.

-

From GLM_GTX_raw_data extension.

- -

Definition at line 29 of file raw_data.hpp.

- -
-
- -
-
- - - - -
typedef gtc::type_precision::uint32 dword
-
-
- -

Type for dword numbers.

-

From GLM_GTX_raw_data extension.

- -

Definition at line 37 of file raw_data.hpp.

- -
-
- -
-
- - - - -
typedef gtc::type_precision::uint64 qword
-
-
- -

Type for qword numbers.

-

From GLM_GTX_raw_data extension.

- -

Definition at line 41 of file raw_data.hpp.

- -
-
- -
-
- - - - -
typedef gtc::type_precision::uint16 word
-
-
- -

Type for word numbers.

-

From GLM_GTX_raw_data extension.

- -

Definition at line 33 of file raw_data.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00200.html b/doc/html/a00200.html deleted file mode 100644 index 60587551..00000000 --- a/doc/html/a00200.html +++ /dev/null @@ -1,331 +0,0 @@ - - - - -GLM: glm::gtx::reciprocal Namespace Reference - - - - - - -
-

glm::gtx::reciprocal Namespace Reference

-

GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename genType >
genType acot (genType const &x)
 Inverse cotangent function.
template<typename genType >
genType acoth (genType const &x)
 Inverse cotangent hyperbolic function.
template<typename genType >
genType acsc (genType const &x)
 Inverse cosecant function.
template<typename genType >
genType acsch (genType const &x)
 Inverse cosecant hyperbolic function.
template<typename genType >
genType asec (genType const &x)
 Inverse secant function.
template<typename genType >
genType asech (genType const &x)
 Inverse secant hyperbolic function.
template<typename genType >
genType cot (genType const &angle)
 Cotangent function.
template<typename genType >
genType coth (genType const &angle)
 Cotangent hyperbolic function.
template<typename genType >
genType csc (genType const &angle)
 Cosecant function.
template<typename genType >
genType csch (genType const &angle)
 Cosecant hyperbolic function.
template<typename genType >
genType sec (genType const &angle)
 Secant function.
template<typename genType >
genType sech (genType const &angle)
 Secant hyperbolic function.
-

Detailed Description

-

GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions.

-

Function Documentation

- -
-
- - - - - - - - - -
genType glm::gtx::reciprocal::acot (genType const &  x ) 
-
-
- -

Inverse cotangent function.

-

From GLM_GTX_reciprocal extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::reciprocal::acoth (genType const &  x ) 
-
-
- -

Inverse cotangent hyperbolic function.

-

From GLM_GTX_reciprocal extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::reciprocal::acsc (genType const &  x ) 
-
-
- -

Inverse cosecant function.

-

From GLM_GTX_reciprocal extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::reciprocal::acsch (genType const &  x ) 
-
-
- -

Inverse cosecant hyperbolic function.

-

From GLM_GTX_reciprocal extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::reciprocal::asec (genType const &  x ) 
-
-
- -

Inverse secant function.

-

From GLM_GTX_reciprocal extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::reciprocal::asech (genType const &  x ) 
-
-
- -

Inverse secant hyperbolic function.

-

From GLM_GTX_reciprocal extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::reciprocal::cot (genType const &  angle ) 
-
-
- -

Cotangent function.

-

adjacent / opposite or 1 / tan(x) From GLM_GTX_reciprocal extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::reciprocal::coth (genType const &  angle ) 
-
-
- -

Cotangent hyperbolic function.

-

From GLM_GTX_reciprocal extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::reciprocal::csc (genType const &  angle ) 
-
-
- -

Cosecant function.

-

hypotenuse / opposite or 1 / sin(x) From GLM_GTX_reciprocal extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::reciprocal::csch (genType const &  angle ) 
-
-
- -

Cosecant hyperbolic function.

-

From GLM_GTX_reciprocal extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::reciprocal::sec (genType const &  angle ) 
-
-
- -

Secant function.

-

hypotenuse / adjacent or 1 / cos(x) From GLM_GTX_reciprocal extension.

- -
-
- -
-
- - - - - - - - - -
genType glm::gtx::reciprocal::sech (genType const &  angle ) 
-
-
- -

Secant hyperbolic function.

-

From GLM_GTX_reciprocal extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00201.html b/doc/html/a00201.html deleted file mode 100644 index c6643d12..00000000 --- a/doc/html/a00201.html +++ /dev/null @@ -1,385 +0,0 @@ - - - - -GLM: glm::gtx::rotate_vector Namespace Reference - - - - - - -
-

glm::gtx::rotate_vector Namespace Reference

-

GLM_GTX_rotate_vector extension: Function to directly rotate a vector. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename T >
detail::tmat4x4< T > orientation (const detail::tvec3< T > &Normal, const detail::tvec3< T > &Up)
 Build a rotation matrix from a normal and a up vector.
template<typename T >
detail::tvec4< T > rotate (const detail::tvec4< T > &v, T angle, const detail::tvec3< T > &normal)
 Rotate a four dimentionnals vector around an axis.
template<typename T >
detail::tvec3< T > rotate (const detail::tvec3< T > &v, T angle, const detail::tvec3< T > &normal)
 Rotate a three dimentionnals vector around an axis.
template<typename T >
detail::tvec2< T > rotate (const detail::tvec2< T > &v, T angle)
 Rotate a two dimentionnals vector.
template<typename T >
detail::tvec4< T > rotateX (const detail::tvec4< T > &v, T angle)
 Rotate a four dimentionnals vector around the X axis.
template<typename T >
detail::tvec3< T > rotateX (const detail::tvec3< T > &v, T angle)
 Rotate a three dimentionnals vector around the X axis.
template<typename T >
detail::tvec4< T > rotateY (const detail::tvec4< T > &v, T angle)
 Rotate a four dimentionnals vector around the X axis.
template<typename T >
detail::tvec3< T > rotateY (const detail::tvec3< T > &v, T angle)
 Rotate a three dimentionnals vector around the Y axis.
template<typename T >
detail::tvec4< T > rotateZ (const detail::tvec4< T > &v, T angle)
 Rotate a four dimentionnals vector around the X axis.
template<typename T >
detail::tvec3< T > rotateZ (const detail::tvec3< T > &v, T angle)
 Rotate a three dimentionnals vector around the Z axis.
-

Detailed Description

-

GLM_GTX_rotate_vector extension: Function to directly rotate a vector.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::rotate_vector::orientation (const detail::tvec3< T > &  Normal,
const detail::tvec3< T > &  Up 
)
-
-
- -

Build a rotation matrix from a normal and a up vector.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tvec4<T> glm::gtx::rotate_vector::rotate (const detail::tvec4< T > &  v,
angle,
const detail::tvec3< T > &  normal 
)
-
-
- -

Rotate a four dimentionnals vector around an axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tvec3<T> glm::gtx::rotate_vector::rotate (const detail::tvec3< T > &  v,
angle,
const detail::tvec3< T > &  normal 
)
-
-
- -

Rotate a three dimentionnals vector around an axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec2<T> glm::gtx::rotate_vector::rotate (const detail::tvec2< T > &  v,
angle 
)
-
-
- -

Rotate a two dimentionnals vector.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T> glm::gtx::rotate_vector::rotateX (const detail::tvec4< T > &  v,
angle 
)
-
-
- -

Rotate a four dimentionnals vector around the X axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T> glm::gtx::rotate_vector::rotateX (const detail::tvec3< T > &  v,
angle 
)
-
-
- -

Rotate a three dimentionnals vector around the X axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T> glm::gtx::rotate_vector::rotateY (const detail::tvec4< T > &  v,
angle 
)
-
-
- -

Rotate a four dimentionnals vector around the X axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T> glm::gtx::rotate_vector::rotateY (const detail::tvec3< T > &  v,
angle 
)
-
-
- -

Rotate a three dimentionnals vector around the Y axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec4<T> glm::gtx::rotate_vector::rotateZ (const detail::tvec4< T > &  v,
angle 
)
-
-
- -

Rotate a four dimentionnals vector around the X axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tvec3<T> glm::gtx::rotate_vector::rotateZ (const detail::tvec3< T > &  v,
angle 
)
-
-
- -

Rotate a three dimentionnals vector around the Z axis.

-

From GLM_GTX_rotate_vector extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00202.html b/doc/html/a00202.html deleted file mode 100644 index 30f2a74c..00000000 --- a/doc/html/a00202.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -GLM: glm::gtx::simd_mat4 Namespace Reference - - - - - - -
-

glm::gtx::simd_mat4 Namespace Reference

-

GLM_GTX_simd_mat4 extension: SIMD implementation of vec4 type. -More...

- -
-

Detailed Description

-

GLM_GTX_simd_mat4 extension: SIMD implementation of vec4 type.

-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00203.html b/doc/html/a00203.html deleted file mode 100644 index 4e4bd06e..00000000 --- a/doc/html/a00203.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -GLM: glm::gtx::simd_vec4 Namespace Reference - - - - - - -
-

glm::gtx::simd_vec4 Namespace Reference

-

GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type. -More...

- -
-

Detailed Description

-

GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type.

-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00204.html b/doc/html/a00204.html deleted file mode 100644 index ec0bd858..00000000 --- a/doc/html/a00204.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - -GLM: glm::gtx::spline Namespace Reference - - - - - - -
-

glm::gtx::spline Namespace Reference

-

GLM_GTX_spline extension: Spline functions. -More...

- - - - - - - - - - - -

Functions

template<typename genType >
genType catmullRom (const genType &v1, const genType &v2, const genType &v3, const genType &v4, const GLMvalType &s)
 Return a point from a catmull rom curve.
template<typename genType >
genType cubic (const genType &v1, const genType &v2, const genType &v3, const genType &v4, const GLMvalType &s)
 Return a point from a cubic curve.
template<typename genType >
genType hermite (const genType &v1, const genType &t1, const genType &v2, const genType &t2, const GLMvalType &s)
 Return a point from a hermite curve.
-

Detailed Description

-

GLM_GTX_spline extension: Spline functions.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
genType glm::gtx::spline::catmullRom (const genType &  v1,
const genType &  v2,
const genType &  v3,
const genType &  v4,
const GLMvalType &  s 
)
-
-
- -

Return a point from a catmull rom curve.

-

From GLM_GTX_spline extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
genType glm::gtx::spline::cubic (const genType &  v1,
const genType &  v2,
const genType &  v3,
const genType &  v4,
const GLMvalType &  s 
)
-
-
- -

Return a point from a cubic curve.

-

From GLM_GTX_spline extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
genType glm::gtx::spline::hermite (const genType &  v1,
const genType &  t1,
const genType &  v2,
const genType &  t2,
const GLMvalType &  s 
)
-
-
- -

Return a point from a hermite curve.

-

From GLM_GTX_spline extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00205.html b/doc/html/a00205.html deleted file mode 100644 index 85bd653e..00000000 --- a/doc/html/a00205.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -GLM: glm::gtx::statistics_operation Namespace Reference - - - - - - -
-

glm::gtx::statistics_operation Namespace Reference

-

GLM_GTX_statistics_operation extension: - Work in progress - Statistics functions. -More...

- -
-

Detailed Description

-

GLM_GTX_statistics_operation extension: - Work in progress - Statistics functions.

-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00206.html b/doc/html/a00206.html deleted file mode 100644 index 732f0753..00000000 --- a/doc/html/a00206.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -GLM: glm::gtx::std_based_type Namespace Reference - - - - - - -
-

glm::gtx::std_based_type Namespace Reference

-

GLM_GTX_std_based_type extension: Add support vector types based on C++ standard type. -More...

- -
-

Detailed Description

-

GLM_GTX_std_based_type extension: Add support vector types based on C++ standard type.

-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00207.html b/doc/html/a00207.html deleted file mode 100644 index 0d85ac6e..00000000 --- a/doc/html/a00207.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - -GLM: glm::gtx::string_cast Namespace Reference - - - - - - -
-

glm::gtx::string_cast Namespace Reference

-

GLM_GTX_string_cast extension: Setup strings for GLM type values. -More...

- - - - - -

Functions

template<typename genType >
std::string string (genType const &x)
 Create a string from a GLM type value.
-

Detailed Description

-

GLM_GTX_string_cast extension: Setup strings for GLM type values.

-

Function Documentation

- -
-
- - - - - - - - - -
std::string glm::gtx::string_cast::string (genType const &  x ) 
-
-
- -

Create a string from a GLM type value.

-

From GLM_GTX_string_cast extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00208.html b/doc/html/a00208.html deleted file mode 100644 index 74abeb64..00000000 --- a/doc/html/a00208.html +++ /dev/null @@ -1,388 +0,0 @@ - - - - -GLM: glm::gtx::transform Namespace Reference - - - - - - -
-

glm::gtx::transform Namespace Reference

-

GLM_GTX_transform extension: Add transformation matrices. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename T >
detail::tmat4x4< T > rotate (detail::tmat4x4< T > const &m, T angle, T x, T y, T z)
 Transforms a matrix with a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.
template<typename T >
detail::tmat4x4< T > rotate (T angle, detail::tvec3< T > const &v)
 Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.
template<typename T >
detail::tmat4x4< T > rotate (T angle, T x, T y, T z)
 Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.
template<typename T >
detail::tmat4x4< T > scale (detail::tvec3< T > const &v)
 Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.
template<typename T >
detail::tmat4x4< T > scale (detail::tmat4x4< T > const &m, T x, T y, T z)
 Transforms a matrix with a scale 4 * 4 matrix created from 3 scalars.
template<typename T >
detail::tmat4x4< T > scale (T x, T y, T z)
 Builds a scale 4 * 4 matrix created from 3 scalars.
template<typename T >
detail::tmat4x4< T > translate (detail::tvec3< T > const &v)
 Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.
template<typename T >
detail::tmat4x4< T > translate (detail::tmat4x4< T > const &m, T x, T y, T z)
 Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.
template<typename T >
detail::tmat4x4< T > translate (T x, T y, T z)
 Builds a translation 4 * 4 matrix created from 3 scalars.
-

Detailed Description

-

GLM_GTX_transform extension: Add transformation matrices.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform::rotate (detail::tmat4x4< T > const &  m,
angle,
x,
y,
z 
)
-
-
- -

Transforms a matrix with a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.

-

From GLM_GTX_transform extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform::rotate ( angle,
detail::tvec3< T > const &  v 
)
-
-
- -

Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.

-

From GLM_GTX_transform extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform::rotate ( angle,
x,
y,
z 
)
-
-
- -

Builds a rotation 4 * 4 matrix created from an axis of 3 scalars and an angle expressed in degrees.

-

From GLM_GTX_transform extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform::scale (detail::tvec3< T > const &  v ) 
-
-
- -

Transforms a matrix with a scale 4 * 4 matrix created from a vector of 3 components.

-

From GLM_GTX_transform extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform::scale (detail::tmat4x4< T > const &  m,
x,
y,
z 
)
-
-
- -

Transforms a matrix with a scale 4 * 4 matrix created from 3 scalars.

-

From GLM_GTX_transform extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform::scale ( x,
y,
z 
)
-
-
- -

Builds a scale 4 * 4 matrix created from 3 scalars.

-

From GLM_GTX_transform extension.

- -
-
- -
-
- - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform::translate (detail::tvec3< T > const &  v ) 
-
-
- -

Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.

-

From GLM_GTX_transform extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform::translate (detail::tmat4x4< T > const &  m,
x,
y,
z 
)
-
-
- -

Transforms a matrix with a translation 4 * 4 matrix created from 3 scalars.

-

From GLM_GTX_transform extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform::translate ( x,
y,
z 
)
-
-
- -

Builds a translation 4 * 4 matrix created from 3 scalars.

-

From GLM_GTX_transform extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00209.html b/doc/html/a00209.html deleted file mode 100644 index 51123a76..00000000 --- a/doc/html/a00209.html +++ /dev/null @@ -1,402 +0,0 @@ - - - - -GLM: glm::gtx::transform2 Namespace Reference - - - - - - -
-

glm::gtx::transform2 Namespace Reference

-

GLM_GTX_transform2 extension: Add extra transformation matrices. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename T >
detail::tmat4x4< T > lookAt (detail::tvec3< T > const &eye, detail::tvec3< T > const &center, detail::tvec3< T > const &up)
 Build a look at view matrix.
template<typename T >
detail::tmat3x3< T > proj2D (const detail::tmat3x3< T > &m, const detail::tvec3< T > &normal)
 Build planar projection matrix along normal axis.
template<typename T >
detail::tmat4x4< T > proj3D (const detail::tmat4x4< T > &m, const detail::tvec3< T > &normal)
 Build planar projection matrix along normal axis.
template<typename valType >
detail::tmat4x4< valType > scaleBias (detail::tmat4x4< valType > const &m, valType scale, valType bias)
 Build a scale bias matrix.
template<typename valType >
detail::tmat4x4< valType > scaleBias (valType scale, valType bias)
 Build a scale bias matrix.
template<typename T >
detail::tmat3x3< T > shearX2D (detail::tmat3x3< T > const &m, T y)
 Transforms a matrix with a shearing on X axis.
template<typename T >
detail::tmat4x4< T > shearX3D (const detail::tmat4x4< T > &m, T y, T z)
 Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.
template<typename T >
detail::tmat3x3< T > shearY2D (detail::tmat3x3< T > const &m, T x)
 Transforms a matrix with a shearing on Y axis.
template<typename T >
detail::tmat4x4< T > shearY3D (const detail::tmat4x4< T > &m, T x, T z)
 Transforms a matrix with a shearing on Y axis.
template<typename T >
detail::tmat4x4< T > shearZ3D (const detail::tmat4x4< T > &m, T x, T y)
 Transforms a matrix with a shearing on Z axis.
-

Detailed Description

-

GLM_GTX_transform2 extension: Add extra transformation matrices.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform2::lookAt (detail::tvec3< T > const &  eye,
detail::tvec3< T > const &  center,
detail::tvec3< T > const &  up 
)
-
-
- -

Build a look at view matrix.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T> glm::gtx::transform2::proj2D (const detail::tmat3x3< T > &  m,
const detail::tvec3< T > &  normal 
)
-
-
- -

Build planar projection matrix along normal axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform2::proj3D (const detail::tmat4x4< T > &  m,
const detail::tvec3< T > &  normal 
)
-
-
- -

Build planar projection matrix along normal axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::transform2::scaleBias (detail::tmat4x4< valType > const &  m,
valType  scale,
valType  bias 
)
-
-
- -

Build a scale bias matrix.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat4x4<valType> glm::gtx::transform2::scaleBias (valType  scale,
valType  bias 
)
-
-
- -

Build a scale bias matrix.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T> glm::gtx::transform2::shearX2D (detail::tmat3x3< T > const &  m,
y 
)
-
-
- -

Transforms a matrix with a shearing on X axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform2::shearX3D (const detail::tmat4x4< T > &  m,
y,
z 
)
-
-
- -

Transforms a matrix with a shearing on X axis From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
detail::tmat3x3<T> glm::gtx::transform2::shearY2D (detail::tmat3x3< T > const &  m,
x 
)
-
-
- -

Transforms a matrix with a shearing on Y axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform2::shearY3D (const detail::tmat4x4< T > &  m,
x,
z 
)
-
-
- -

Transforms a matrix with a shearing on Y axis.

-

From GLM_GTX_transform2 extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
detail::tmat4x4<T> glm::gtx::transform2::shearZ3D (const detail::tmat4x4< T > &  m,
x,
y 
)
-
-
- -

Transforms a matrix with a shearing on Z axis.

-

From GLM_GTX_transform2 extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00210.html b/doc/html/a00210.html deleted file mode 100644 index 3c54e872..00000000 --- a/doc/html/a00210.html +++ /dev/null @@ -1,667 +0,0 @@ - - - - -GLM: glm::gtx::type_ptr Namespace Reference - - - - - - -
-

glm::gtx::type_ptr Namespace Reference

-

GLM_GTX_type_ptr extension: Get access to vectors & matrices value type address. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename valType >
valType * value_ptr (detail::tmat4x3< valType > &mat)
 Get the address of the matrix content.
template<typename valType >
valType const * value_ptr (detail::tmat4x3< valType > const &mat)
 Get the const address of the matrix content.
template<typename valType >
valType * value_ptr (detail::tmat3x4< valType > &mat)
 Get the address of the matrix content.
template<typename valType >
valType const * value_ptr (detail::tmat3x4< valType > const &mat)
 Get the const address of the matrix content.
template<typename valType >
valType * value_ptr (detail::tmat4x2< valType > &mat)
 Get the address of the matrix content.
template<typename valType >
valType const * value_ptr (detail::tmat4x2< valType > const &mat)
 Get the const address of the matrix content.
template<typename valType >
valType * value_ptr (detail::tmat2x4< valType > &mat)
 Get the address of the matrix content.
template<typename valType >
valType const * value_ptr (detail::tmat2x4< valType > const &mat)
 Get the const address of the matrix content.
template<typename valType >
valType * value_ptr (detail::tmat3x2< valType > &mat)
 Get the address of the matrix content.
template<typename valType >
valType const * value_ptr (detail::tmat3x2< valType > const &mat)
 Get the const address of the matrix content.
template<typename valType >
valType * value_ptr (detail::tmat2x3< valType > &mat)
 Get the address of the matrix content.
template<typename valType >
valType const * value_ptr (detail::tmat2x3< valType > const &mat)
 Get the const address of the matrix content.
template<typename valType >
valType * value_ptr (detail::tmat4x4< valType > &mat)
 Get the address of the matrix content.
template<typename valType >
valType const * value_ptr (detail::tmat4x4< valType > const &mat)
 Get the const address of the matrix content.
template<typename valType >
valType * value_ptr (detail::tmat3x3< valType > &mat)
 Get the address of the matrix content.
template<typename valType >
valType const * value_ptr (detail::tmat3x3< valType > const &mat)
 Get the const address of the matrix content.
template<typename valType >
valType * value_ptr (detail::tmat2x2< valType > &mat)
 Get the address of the matrix content.
template<typename valType >
valType const * value_ptr (detail::tmat2x2< valType > const &mat)
 Get the const address of the matrix content.
template<typename valType >
valType * value_ptr (detail::tvec4< valType > &vec)
 Get the address of the vector content.
template<typename valType >
valType const * value_ptr (detail::tvec4< valType > const &vec)
 Get the const address of the vector content.
template<typename valType >
valType * value_ptr (detail::tvec3< valType > &vec)
 Get the address of the vector content.
template<typename valType >
valType const * value_ptr (detail::tvec3< valType > const &vec)
 Get the const address of the vector content.
template<typename valType >
valType * value_ptr (detail::tvec2< valType > &vec)
 Get the address of the vector content.
template<typename valType >
valType const * value_ptr (detail::tvec2< valType > const &vec)
 Get the const address of the vector content.
-

Detailed Description

-

GLM_GTX_type_ptr extension: Get access to vectors & matrices value type address.

-

Function Documentation

- -
-
- - - - - - - - - -
valType* glm::gtx::type_ptr::value_ptr (detail::tmat4x3< valType > &  mat ) 
-
-
- -

Get the address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 216 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType const* glm::gtx::type_ptr::value_ptr (detail::tmat4x3< valType > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 208 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType* glm::gtx::type_ptr::value_ptr (detail::tmat3x4< valType > &  mat ) 
-
-
- -

Get the address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 200 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType const* glm::gtx::type_ptr::value_ptr (detail::tmat3x4< valType > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 192 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType* glm::gtx::type_ptr::value_ptr (detail::tmat4x2< valType > &  mat ) 
-
-
- -

Get the address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 184 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType const* glm::gtx::type_ptr::value_ptr (detail::tmat4x2< valType > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 176 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType* glm::gtx::type_ptr::value_ptr (detail::tmat2x4< valType > &  mat ) 
-
-
- -

Get the address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 168 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType const* glm::gtx::type_ptr::value_ptr (detail::tmat2x4< valType > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 160 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType* glm::gtx::type_ptr::value_ptr (detail::tmat3x2< valType > &  mat ) 
-
-
- -

Get the address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 152 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType const* glm::gtx::type_ptr::value_ptr (detail::tmat3x2< valType > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 144 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType* glm::gtx::type_ptr::value_ptr (detail::tmat2x3< valType > &  mat ) 
-
-
- -

Get the address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 136 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType const* glm::gtx::type_ptr::value_ptr (detail::tmat2x3< valType > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 128 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType* glm::gtx::type_ptr::value_ptr (detail::tmat4x4< valType > &  mat ) 
-
-
- -

Get the address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 120 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType const* glm::gtx::type_ptr::value_ptr (detail::tmat4x4< valType > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 112 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType* glm::gtx::type_ptr::value_ptr (detail::tmat3x3< valType > &  mat ) 
-
-
- -

Get the address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 104 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType const* glm::gtx::type_ptr::value_ptr (detail::tmat3x3< valType > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 96 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType* glm::gtx::type_ptr::value_ptr (detail::tmat2x2< valType > &  mat ) 
-
-
- -

Get the address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 88 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType const* glm::gtx::type_ptr::value_ptr (detail::tmat2x2< valType > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 80 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType* glm::gtx::type_ptr::value_ptr (detail::tvec4< valType > &  vec ) 
-
-
- -

Get the address of the vector content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 72 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType const* glm::gtx::type_ptr::value_ptr (detail::tvec4< valType > const &  vec ) 
-
-
- -

Get the const address of the vector content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 64 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType* glm::gtx::type_ptr::value_ptr (detail::tvec3< valType > &  vec ) 
-
-
- -

Get the address of the vector content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 56 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType const* glm::gtx::type_ptr::value_ptr (detail::tvec3< valType > const &  vec ) 
-
-
- -

Get the const address of the vector content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 48 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType* glm::gtx::type_ptr::value_ptr (detail::tvec2< valType > &  vec ) 
-
-
- -

Get the address of the vector content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 40 of file type_ptr.hpp.

- -
-
- -
-
- - - - - - - - - -
valType const* glm::gtx::type_ptr::value_ptr (detail::tvec2< valType > const &  vec ) 
-
-
- -

Get the const address of the vector content.

-

From GLM_GTX_type_ptr extension.

- -

Definition at line 32 of file type_ptr.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00211.html b/doc/html/a00211.html deleted file mode 100644 index 47cf296c..00000000 --- a/doc/html/a00211.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - -GLM: glm::gtx::unsigned_int Namespace Reference - - - - - - -
-

glm::gtx::unsigned_int Namespace Reference

-

GLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions. -More...

- - - - - - - - - - - -

Typedefs

typedef signed int sint
 32bit signed integer.

Functions

uint mod (uint x, uint y)
 Modulus.
uint pow (uint x, uint y)
 Returns x raised to the y power.
uint sqrt (uint x)
 Returns the positive square root of x.
-

Detailed Description

-

GLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions.

-

Typedef Documentation

- -
-
- - - - -
typedef signed int sint
-
-
- -

32bit signed integer.

-

From GLM_GTX_unsigned_int extension.

- -

Definition at line 33 of file unsigned_int.hpp.

- -
-
-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
uint glm::gtx::unsigned_int::mod (uint  x,
uint  y 
)
-
-
- -

Modulus.

-

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

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
uint glm::gtx::unsigned_int::pow (uint  x,
uint  y 
)
-
-
- -

Returns x raised to the y power.

-

From GLM_GTX_unsigned_int extension.

- -
-
- -
-
- - - - - - - - - -
uint glm::gtx::unsigned_int::sqrt (uint  x ) 
-
-
- -

Returns the positive square root of x.

-

From GLM_GTX_unsigned_int extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00212.html b/doc/html/a00212.html deleted file mode 100644 index b7d176e6..00000000 --- a/doc/html/a00212.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - -GLM: glm::gtx::vector_access Namespace Reference - - - - - - -
-

glm::gtx::vector_access Namespace Reference

-

GLM_GTX_vector_access extension: Function to set values to vectors. -More...

- - - - - - - - - - - -

Functions

template<typename valType >
void set (detail::tvec4< valType > &v, valType const &x, valType const &y, valType const &z, valType const &w)
 Set values to a 4 components vector.
template<typename valType >
void set (detail::tvec3< valType > &v, valType const &x, valType const &y, valType const &z)
 Set values to a 3 components vector.
template<typename valType >
void set (detail::tvec2< valType > &v, valType const &x, valType const &y)
 Set values to a 2 components vector.
-

Detailed Description

-

GLM_GTX_vector_access extension: Function to set values to vectors.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void glm::gtx::vector_access::set (detail::tvec4< valType > &  v,
valType const &  x,
valType const &  y,
valType const &  z,
valType const &  w 
)
-
-
- -

Set values to a 4 components vector.

-

From GLM_GTX_vector_access extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void glm::gtx::vector_access::set (detail::tvec3< valType > &  v,
valType const &  x,
valType const &  y,
valType const &  z 
)
-
-
- -

Set values to a 3 components vector.

-

From GLM_GTX_vector_access extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void glm::gtx::vector_access::set (detail::tvec2< valType > &  v,
valType const &  x,
valType const &  y 
)
-
-
- -

Set values to a 2 components vector.

-

From GLM_GTX_vector_access extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00213.html b/doc/html/a00213.html deleted file mode 100644 index f9f17c2b..00000000 --- a/doc/html/a00213.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - -GLM: glm::gtx::vector_angle Namespace Reference - - - - - - -
-

glm::gtx::vector_angle Namespace Reference

-

GLM_GTX_vector_angle extension: Compute angle between vectors. -More...

- - - - - - - - - - - -

Functions

template<typename vecType >
vecType::value_type angle (vecType const &x, vecType const &y)
 Returns the absolute angle between x and y.
template<typename vecType >
vecType::value_type orientedAngle (vecType const &x, vecType const &y)
 Returns the oriented angle between x and y Parameters need to be normalized.
template<typename vecType >
vecType::value_type orientedAngleFromRef (vecType const &x, vecType const &y, detail::tvec3< typename vecType::value_type > const &ref)
 Returns the orientation of a two vector base from a normal.
-

Detailed Description

-

GLM_GTX_vector_angle extension: Compute angle between vectors.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
vecType::value_type glm::gtx::vector_angle::angle (vecType const &  x,
vecType const &  y 
)
-
-
- -

Returns the absolute angle between x and y.

-

Parameters need to be normalized. From GLM_GTX_vector_angle extension

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
vecType::value_type glm::gtx::vector_angle::orientedAngle (vecType const &  x,
vecType const &  y 
)
-
-
- -

Returns the oriented angle between x and y Parameters need to be normalized.

-

From GLM_GTX_vector_angle extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
vecType::value_type glm::gtx::vector_angle::orientedAngleFromRef (vecType const &  x,
vecType const &  y,
detail::tvec3< typename vecType::value_type > const &  ref 
)
-
-
- -

Returns the orientation of a two vector base from a normal.

-

Parameters need to be normalized. From GLM_GTX_vector_angle extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00214.html b/doc/html/a00214.html deleted file mode 100644 index 3043c5eb..00000000 --- a/doc/html/a00214.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - -GLM: glm::gtx::vector_query Namespace Reference - - - - - - -
-

glm::gtx::vector_query Namespace Reference

-

GLM_GTX_vector_query extension: Query informations of vector types. -More...

- - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename genType >
bool areCollinear (const genType &v0, const genType &v1, const GLMvalType epsilon=std::numeric_limits< GLMvalType >::epsilon())
 Check if two vectors are collinears.
template<typename genType >
bool areOpposite (const genType &v0, const genType &v1, const GLMvalType epsilon=std::numeric_limits< GLMvalType >::epsilon())
 Check if two vectors are opposites.
template<typename genType >
bool areOrthogonal (const genType &v0, const genType &v1, const GLMvalType epsilon=std::numeric_limits< GLMvalType >::epsilon())
 Check if two vectors are orthogonals.
template<typename genType >
bool areOrthonormal (const genType &v0, const genType &v1, const GLMvalType epsilon=std::numeric_limits< GLMvalType >::epsilon())
 Check if two vectors are orthonormal.
template<typename genType >
bool areSimilar (const genType &v0, const genType &v1, const GLMvalType epsilon=std::numeric_limits< GLMvalType >::epsilon())
 Check if two vectors are similar.
template<typename genType >
bool isNormalized (const genType &v, const GLMvalType epsilon=std::numeric_limits< GLMvalType >::epsilon())
 Check if a vector is normalized.
template<typename genType >
bool isNull (const genType &v, const GLMvalType epsilon=std::numeric_limits< GLMvalType >::epsilon())
 Check if a vector is null.
-

Detailed Description

-

GLM_GTX_vector_query extension: Query informations of vector types.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::vector_query::areCollinear (const genType &  v0,
const genType &  v1,
const GLMvalType  epsilon = std::numeric_limits< GLMvalType >::epsilon() 
)
-
-
- -

Check if two vectors are collinears.

-

From GLM_GTX_vector_query extensions.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::vector_query::areOpposite (const genType &  v0,
const genType &  v1,
const GLMvalType  epsilon = std::numeric_limits< GLMvalType >::epsilon() 
)
-
-
- -

Check if two vectors are opposites.

-

From GLM_GTX_vector_query extensions.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::vector_query::areOrthogonal (const genType &  v0,
const genType &  v1,
const GLMvalType  epsilon = std::numeric_limits< GLMvalType >::epsilon() 
)
-
-
- -

Check if two vectors are orthogonals.

-

From GLM_GTX_vector_query extensions.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::vector_query::areOrthonormal (const genType &  v0,
const genType &  v1,
const GLMvalType  epsilon = std::numeric_limits< GLMvalType >::epsilon() 
)
-
-
- -

Check if two vectors are orthonormal.

-

From GLM_GTX_vector_query extensions.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool glm::gtx::vector_query::areSimilar (const genType &  v0,
const genType &  v1,
const GLMvalType  epsilon = std::numeric_limits< GLMvalType >::epsilon() 
)
-
-
- -

Check if two vectors are similar.

-

From GLM_GTX_vector_query extensions.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::gtx::vector_query::isNormalized (const genType &  v,
const GLMvalType  epsilon = std::numeric_limits< GLMvalType >::epsilon() 
)
-
-
- -

Check if a vector is normalized.

-

From GLM_GTX_vector_query extensions.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool glm::gtx::vector_query::isNull (const genType &  v,
const GLMvalType  epsilon = std::numeric_limits< GLMvalType >::epsilon() 
)
-
-
- -

Check if a vector is null.

-

From GLM_GTX_vector_query extensions.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00215.html b/doc/html/a00215.html deleted file mode 100644 index 2f29484c..00000000 --- a/doc/html/a00215.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -GLM: glm::gtx::vecx Namespace Reference - - - - - - -
-

glm::gtx::vecx Namespace Reference

-

GLM_GTX_vecx extension: - Work in progress - Add custom size vectors. -More...

- -
-

Detailed Description

-

GLM_GTX_vecx extension: - Work in progress - Add custom size vectors.

-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00216.html b/doc/html/a00216.html deleted file mode 100644 index 09240f97..00000000 --- a/doc/html/a00216.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - -GLM: glm::gtx::verbose_operator Namespace Reference - - - - - - -
-

glm::gtx::verbose_operator Namespace Reference

-

GLM_GTX_verbose_operator extension: Use words to replace operators. -More...

- - - - - - - - - - - - - - - - - -

Functions

template<typename genTypeT , typename genTypeU >
genTypeT add (genTypeT const &a, genTypeU const &b)
 Addition of two values From GLM_GTX_verbose_operator extension.
template<typename genTypeT , typename genTypeU >
genTypeT div (genTypeT const &a, genTypeU const &b)
 Division of two values From GLM_GTX_verbose_operator extension.
template<typename genTypeT , typename genTypeU , typename genTypeV >
genTypeT mad (genTypeT const &a, genTypeU const &b, genTypeV const &c)
 Multiplication and addition of three values From GLM_GTX_verbose_operator extension.
template<typename genTypeT , typename genTypeU >
genTypeT mul (genTypeT const &a, genTypeU const &b)
 Multiplication of two values From GLM_GTX_verbose_operator extension.
template<typename genTypeT , typename genTypeU >
genTypeT sub (genTypeT const &a, genTypeU const &b)
 Substration of two values From GLM_GTX_verbose_operator extension.
-

Detailed Description

-

GLM_GTX_verbose_operator extension: Use words to replace operators.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
genTypeT glm::gtx::verbose_operator::add (genTypeT const &  a,
genTypeU const &  b 
)
-
-
- -

Addition of two values From GLM_GTX_verbose_operator extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genTypeT glm::gtx::verbose_operator::div (genTypeT const &  a,
genTypeU const &  b 
)
-
-
- -

Division of two values From GLM_GTX_verbose_operator extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
genTypeT glm::gtx::verbose_operator::mad (genTypeT const &  a,
genTypeU const &  b,
genTypeV const &  c 
)
-
-
- -

Multiplication and addition of three values From GLM_GTX_verbose_operator extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genTypeT glm::gtx::verbose_operator::mul (genTypeT const &  a,
genTypeU const &  b 
)
-
-
- -

Multiplication of two values From GLM_GTX_verbose_operator extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genTypeT glm::gtx::verbose_operator::sub (genTypeT const &  a,
genTypeU const &  b 
)
-
-
- -

Substration of two values From GLM_GTX_verbose_operator extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00217.html b/doc/html/a00217.html deleted file mode 100644 index 157660af..00000000 --- a/doc/html/a00217.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - -GLM: glm::img Namespace Reference - - - - - - -
-

glm::img Namespace Reference

-

IMG extensions. -More...

- - - - -

-

-

Namespaces

namespace  multiple
 

GLM_IMG_multiple: Find the closest number of a number multiple of other number.

-
-

Detailed Description

-

IMG extensions.

-

VIRTREV extensions.

-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00218.html b/doc/html/a00218.html deleted file mode 100644 index a6b17d1c..00000000 --- a/doc/html/a00218.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - -GLM: glm::img::multiple Namespace Reference - - - - - - -
-

glm::img::multiple Namespace Reference

-

GLM_IMG_multiple: Find the closest number of a number multiple of other number. -More...

- - - - - - - - -

Functions

template<typename genType >
genType higherMultiple (genType const &Source, genType const &Multiple)
 Higher Multiple number of Source.
template<typename genType >
genType lowerMultiple (genType const &Source, genType const &Multiple)
 Lower Multiple number of Source.
-

Detailed Description

-

GLM_IMG_multiple: Find the closest number of a number multiple of other number.

-

Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
genType glm::img::multiple::higherMultiple (genType const &  Source,
genType const &  Multiple 
)
-
-
- -

Higher Multiple number of Source.

-

From GLM_IMG_multiple extension.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
genType glm::img::multiple::lowerMultiple (genType const &  Source,
genType const &  Multiple 
)
-
-
- -

Lower Multiple number of Source.

-

From GLM_IMG_multiple extension.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00221.html b/doc/html/a00221.html deleted file mode 100644 index 57ce70a3..00000000 --- a/doc/html/a00221.html +++ /dev/null @@ -1,643 +0,0 @@ - - - - -GLM: glm::virtrev_glmext::address Namespace Reference - - - - - - -
-

glm::virtrev_glmext::address Namespace Reference

-

GLM_VIRTREV_address extension: Vector & matrix content address (T const * type pointer). -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Functions

template<typename T >
T * address (detail::tmat4x3< T > &mat)
 Get the address of the matrix content.
template<typename T >
T const * address (detail::tmat4x3< T > const &mat)
 Get the const address of the matrix content.
template<typename T >
T * address (detail::tmat3x4< T > &mat)
 Get the address of the matrix content.
template<typename T >
T const * address (detail::tmat3x4< T > const &mat)
 Get the const address of the matrix content.
template<typename T >
T * address (detail::tmat4x2< T > &mat)
 Get the address of the matrix content.
template<typename T >
T const * address (detail::tmat4x2< T > const &mat)
 Get the const address of the matrix content.
template<typename T >
T * address (detail::tmat2x4< T > &mat)
 Get the address of the matrix content.
template<typename T >
T const * address (detail::tmat2x4< T > const &mat)
 Get the const address of the matrix content.
template<typename T >
T * address (detail::tmat3x2< T > &mat)
 Get the address of the matrix content.
template<typename T >
T const * address (detail::tmat3x2< T > const &mat)
 Get the const address of the matrix content.
template<typename T >
T * address (detail::tmat2x3< T > &mat)
 Get the address of the matrix content.
template<typename T >
T const * address (detail::tmat2x3< T > const &mat)
 Get the const address of the matrix content.
template<typename T >
T * address (detail::tmat4x4< T > &mat)
 Get the address of the matrix content.
template<typename T >
T const * address (detail::tmat4x4< T > const &mat)
 Get the const address of the matrix content.
template<typename T >
T * address (detail::tmat3x3< T > &mat)
 Get the address of the matrix content.
template<typename T >
T const * address (detail::tmat3x3< T > const &mat)
 Get the const address of the matrix content.
template<typename T >
T * address (detail::tmat2x2< T > &mat)
 Get the address of the matrix content.
template<typename T >
T const * address (detail::tmat2x2< T > const &mat)
 Get the const address of the matrix content.
template<typename T >
T * address (detail::tvec4< T > &vec)
 Get the address of the vector content.
template<typename T >
T const * address (detail::tvec4< T > const &vec)
 Get the const address of the vector content.
template<typename T >
T * address (detail::tvec3< T > &vec)
 Get the address of the vector content.
template<typename T >
T const * address (detail::tvec3< T > const &vec)
 Get the const address of the vector content.
template<typename T >
T * address (detail::tvec2< T > &vec)
 Get the address of the vector content.
template<typename T >
T const * address (detail::tvec2< T > const &vec)
 Get the const address of the vector content.
-

Detailed Description

-

GLM_VIRTREV_address extension: Vector & matrix content address (T const * type pointer).

-

Function Documentation

- -
-
- - - - - - - - - -
T* glm::virtrev_glmext::address::address (detail::tmat4x3< T > &  mat ) 
-
-
- -

Get the address of the matrix content.

- -

Definition at line 178 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T const* glm::virtrev_glmext::address::address (detail::tmat4x3< T > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

- -

Definition at line 172 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T* glm::virtrev_glmext::address::address (detail::tmat3x4< T > &  mat ) 
-
-
- -

Get the address of the matrix content.

- -

Definition at line 165 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T const* glm::virtrev_glmext::address::address (detail::tmat3x4< T > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

- -

Definition at line 159 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T* glm::virtrev_glmext::address::address (detail::tmat4x2< T > &  mat ) 
-
-
- -

Get the address of the matrix content.

- -

Definition at line 152 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T const* glm::virtrev_glmext::address::address (detail::tmat4x2< T > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

- -

Definition at line 146 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T* glm::virtrev_glmext::address::address (detail::tmat2x4< T > &  mat ) 
-
-
- -

Get the address of the matrix content.

- -

Definition at line 139 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T const* glm::virtrev_glmext::address::address (detail::tmat2x4< T > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

- -

Definition at line 133 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T* glm::virtrev_glmext::address::address (detail::tmat3x2< T > &  mat ) 
-
-
- -

Get the address of the matrix content.

- -

Definition at line 126 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T const* glm::virtrev_glmext::address::address (detail::tmat3x2< T > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

- -

Definition at line 120 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T* glm::virtrev_glmext::address::address (detail::tmat2x3< T > &  mat ) 
-
-
- -

Get the address of the matrix content.

- -

Definition at line 113 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T const* glm::virtrev_glmext::address::address (detail::tmat2x3< T > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

- -

Definition at line 107 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T* glm::virtrev_glmext::address::address (detail::tmat4x4< T > &  mat ) 
-
-
- -

Get the address of the matrix content.

- -

Definition at line 100 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T const* glm::virtrev_glmext::address::address (detail::tmat4x4< T > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

- -

Definition at line 94 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T* glm::virtrev_glmext::address::address (detail::tmat3x3< T > &  mat ) 
-
-
- -

Get the address of the matrix content.

- -

Definition at line 87 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T const* glm::virtrev_glmext::address::address (detail::tmat3x3< T > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

- -

Definition at line 81 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T* glm::virtrev_glmext::address::address (detail::tmat2x2< T > &  mat ) 
-
-
- -

Get the address of the matrix content.

- -

Definition at line 74 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T const* glm::virtrev_glmext::address::address (detail::tmat2x2< T > const &  mat ) 
-
-
- -

Get the const address of the matrix content.

- -

Definition at line 68 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T* glm::virtrev_glmext::address::address (detail::tvec4< T > &  vec ) 
-
-
- -

Get the address of the vector content.

- -

Definition at line 61 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T const* glm::virtrev_glmext::address::address (detail::tvec4< T > const &  vec ) 
-
-
- -

Get the const address of the vector content.

- -

Definition at line 55 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T* glm::virtrev_glmext::address::address (detail::tvec3< T > &  vec ) 
-
-
- -

Get the address of the vector content.

- -

Definition at line 48 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T const* glm::virtrev_glmext::address::address (detail::tvec3< T > const &  vec ) 
-
-
- -

Get the const address of the vector content.

- -

Definition at line 42 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T* glm::virtrev_glmext::address::address (detail::tvec2< T > &  vec ) 
-
-
- -

Get the address of the vector content.

- -

Definition at line 35 of file address.hpp.

- -
-
- -
-
- - - - - - - - - -
T const* glm::virtrev_glmext::address::address (detail::tvec2< T > const &  vec ) 
-
-
- -

Get the const address of the vector content.

- -

Definition at line 29 of file address.hpp.

- -
-
-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00222.html b/doc/html/a00222.html deleted file mode 100644 index 60850418..00000000 --- a/doc/html/a00222.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -GLM: glm::virtrev_glmext::equal_operator Namespace Reference - - - - - - -
-

glm::virtrev_glmext::equal_operator Namespace Reference

-

GLM_VIRTREV_gl extension: Vector & matrix integration with OpenGL. -More...

- -
-

Detailed Description

-

GLM_VIRTREV_gl extension: Vector & matrix integration with OpenGL.

-
-
Generated on Mon Nov 16 11:23:25 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00223.html b/doc/html/a00223.html deleted file mode 100644 index 6b1bad85..00000000 --- a/doc/html/a00223.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - -GLM: glm::virtrev_glmext::gl Namespace Reference - - - - - - -
-

glm::virtrev_glmext::gl Namespace Reference

-

GLM_VIRTREV_gl extension: Vector & matrix integration with OpenGL. -More...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Typedefs

-typedef detail::tvec2< GLint > gl_ivec2
 vec2 for GLint OpenGL type
-typedef detail::tvec3< GLint > gl_ivec3
 vec3 for GLint OpenGL type
-typedef detail::tvec4< GLint > gl_ivec4
 vec4 for GLint OpenGL type
-typedef detail::tmat2x2< GLfloat > gl_mat2
 mat2x2 for GLfloat OpenGL type
-typedef detail::tmat2x3< GLfloat > gl_mat2x3
 mat2x3 for GLfloat OpenGL type
-typedef detail::tmat2x4< GLfloat > gl_mat2x4
 mat2x4 for GLfloat OpenGL type
-typedef detail::tmat3x3< GLfloat > gl_mat3
 mat3x3 for GLfloat OpenGL type
-typedef detail::tmat3x2< GLfloat > gl_mat3x2
 mat3x2 for GLfloat OpenGL type
-typedef detail::tmat3x4< GLfloat > gl_mat3x4
 mat3x4 for GLfloat OpenGL type
-typedef detail::tmat4x4< GLfloat > gl_mat4
 mat4x4 for GLfloat OpenGL type
-typedef detail::tmat4x2< GLfloat > gl_mat4x2
 mat4x2 for GLfloat OpenGL type
-typedef detail::tmat4x3< GLfloat > gl_mat4x3
 mat4x3 for GLfloat OpenGL type
-typedef detail::tvec2< GLshort > gl_svec2
 vec2 for GLshort OpenGL type
-typedef detail::tvec3< GLshort > gl_svec3
 vec3 for GLshort OpenGL type
-typedef detail::tvec4< GLshort > gl_svec4
 vec4 for GLshort OpenGL type
-typedef detail::tvec2< GLfloat > gl_vec2
 vec2 for GLfloat OpenGL type
-typedef detail::tvec3< GLfloat > gl_vec3
 vec3 for GLfloat OpenGL type
-typedef detail::tvec4< GLfloat > gl_vec4
 vec4 for GLfloat OpenGL type
-

Detailed Description

-

GLM_VIRTREV_gl extension: Vector & matrix integration with OpenGL.

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/a00224.html b/doc/html/a00224.html deleted file mode 100644 index bd265fa1..00000000 --- a/doc/html/a00224.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -GLM: glm::virtrev_glmext::xstream Namespace Reference - - - - - - -
-

glm::virtrev_glmext::xstream Namespace Reference

-

GLM_VIRTREV_xstream extension: Streaming vector and matrix in a xml way. -More...

- -
-

Detailed Description

-

GLM_VIRTREV_xstream extension: Streaming vector and matrix in a xml way.

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css deleted file mode 100644 index 9ca3cafb..00000000 --- a/doc/html/doxygen.css +++ /dev/null @@ -1,498 +0,0 @@ -/* The standard CSS for doxygen */ - -body, table, div, p, dl { - font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; - font-size: 12px; -} - -/* @group Heading Levels */ - -h1 { - text-align: center; - font-size: 150%; -} - -h2 { - font-size: 120%; -} - -h3 { - font-size: 100%; -} - -dt { - font-weight: bold; -} - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - padding: 2px; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #153788; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #1b77c5; -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #6666cc; - color: #ffffff; - border: 1px double #9295C2; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code { -} - -a.codeRef { -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -.fragment { - font-family: monospace, fixed; - font-size: 105%; -} - -pre.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - padding: 4px 6px; - margin: 4px 8px 4px 2px; -} - -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background: white; - color: black; - margin-right: 20px; - margin-left: 20px; -} - -td.indexkey { - background-color: #e8eef2; - font-weight: bold; - border: 1px solid #CCCCCC; - margin: 2px 0px 2px 0; - padding: 2px 10px; -} - -td.indexvalue { - background-color: #e8eef2; - border: 1px solid #CCCCCC; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #f0f0f0; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -/* @end */ - -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #84b0c7; -} - -th.dirtab { - background: #e8eef2; - font-weight: bold; -} - -hr { - height: 0; - border: none; - border-top: 1px solid #666; -} - -/* @group Member Descriptions */ - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #FAFAFA; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memItemLeft, .memItemRight, .memTemplParams { - border-top: 1px solid #ccc; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memTemplParams { - color: #606060; - white-space: nowrap; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtemplate { - font-size: 80%; - color: #606060; - font-weight: normal; - margin-left: 3px; -} - -.memnav { - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.memitem { - padding: 0; - margin-bottom: 10px; -} - -.memname { - white-space: nowrap; - font-weight: bold; -} - -.memproto, .memdoc { - border: 1px solid #84b0c7; -} - -.memproto { - padding: 0; - background-color: #d5e1e8; - font-weight: bold; - -webkit-border-top-left-radius: 8px; - -webkit-border-top-right-radius: 8px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -moz-border-radius-topleft: 8px; - -moz-border-radius-topright: 8px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -} - -.memdoc { - padding: 2px 5px; - background-color: #eef3f5; - border-top-width: 0; - -webkit-border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -moz-border-radius-bottomleft: 8px; - -moz-border-radius-bottomright: 8px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} - -/* @end */ - -/* @group Directory (tree) */ - -/* for the tree view */ - -.ftvtree { - font-family: sans-serif; - margin: 0.5em; -} - -/* these are for tree view when used as main index */ - -.directory { - font-size: 9pt; - font-weight: bold; -} - -.directory h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -/* -The following two styles can be used to replace the root node title -with an image of your choice. Simply uncomment the next two styles, -specify the name of your image and be sure to set 'height' to the -proper pixel height of your image. -*/ - -/* -.directory h3.swap { - height: 61px; - background-repeat: no-repeat; - background-image: url("yourimage.gif"); -} -.directory h3.swap span { - display: none; -} -*/ - -.directory > h3 { - margin-top: 0; -} - -.directory p { - margin: 0px; - white-space: nowrap; -} - -.directory div { - display: none; - margin: 0px; -} - -.directory img { - vertical-align: -30%; -} - -/* these are for tree view when not used as main index */ - -.directory-alt { - font-size: 100%; - font-weight: bold; -} - -.directory-alt h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -.directory-alt > h3 { - margin-top: 0; -} - -.directory-alt p { - margin: 0px; - white-space: nowrap; -} - -.directory-alt div { - display: none; - margin: 0px; -} - -.directory-alt img { - vertical-align: -30%; -} - -/* @end */ - -address { - font-style: normal; - color: #333; -} diff --git a/doc/html/doxygen.png b/doc/html/doxygen.png deleted file mode 100644 index f0a274bbaffdd67f6d784c894d9cf28729db0e14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1281 zcmaJ>ZA?>F7(Vx-ms?uoS`b@hdRtpo6o^%HU>M$hfGrBvQnk$LE?p^P!kn&ikhyq! zX~V@&tPF5Qt@V?oTL96Bi%aRiwbe1)9DWQI#?)=HxS7QSw`J`5fAJ*eJbB;uNuKA& zdERDo*{Y<(If(#(B$Lr#;nB(8Y#ia=ZCeW?JfPLuQY`=@cW$k}Rivq|vbxGrRq1Tl9;+(gNt?}UtVKM2`T5t1jLzuL@0UIs`S#vlhl4)^ zLgSYrPj@$+`|j?eSbXTmiHGkWxV8V}BzNR?pl9k_s4pDu9vd5a_UzZEPk)}Ad{AV_ zzddrjrh4=Imr`E06;LY{)YYt?o}L~H@7C}F^WB!Ra=v`Q0bj{>5&$66CWF>mf6vjP z2N>RRY6ZYa=K`76>+|_)Xdwko+7wv}7cN|btOhWb(*{sta~6b?S8Omrxw}!4`NhGr zZVpNqpu1@BE`QGWNTpEpcJVW5izu~2B^GlM?1(OPg)zwW;QcP@Ltcclm>XbJL9C|j z=9!2?ua=uIlf0%AndzHsRC}IyTL$EhAee(fdKB`?27KeS^2M8M_7b~PiCFO&r5LC7 z7gl1*a<8;SjNaw#h=843_AV9iZbWQOAp5YOC^&_F*9K0> zB|6%IDb?aM#3viTxkLU4aXg&@+CkNTOnQ1iMP*^?b|^lJy$4C)Zk4isV!|RZ*XhXh zw8q3$=*0LeGC!XI_Wc?dkT~3+*Gu%%yIqP+Wr3H$=&ROMQU6q}Ag^P~>c5vAEO;a- z_dK-3PPeKar%)6$j~vI2#*-YH!1h6HYVtwCX5_wM`iF#UKz&&@9Oo5w3%XGYrX zW>dY~)SG-((Yim%`InwgTvyRC?e=Wh^8KCao!R6Eg&TpVWUY1sN~4G}V?nFnEGo-; zHZ_$eW9-GnC%^WS9b z@p;-$oH#MtC0v>Q$HX%4^JdFdO$0cbv-W)Q TtK}Eh@>>I#ipmV1>S*>q-hkC} diff --git a/doc/html/files.html b/doc/html/files.html deleted file mode 100644 index e0cda383..00000000 --- a/doc/html/files.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - -GLM: File Index - - - - - - -
-

File List

Here is a list of all documented files with brief descriptions: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_detail.hpp [code]
_swizzle.hpp [code]
address.hpp [code]
associated_min_max.hpp [code]
bit.hpp [code]
closest_point.hpp [code]
color_cast.hpp [code]
color_space.hpp [code]
color_space_YCoCg.hpp [code]
comparison.hpp [code]
compatibility.hpp [code]
component_wise.hpp [code]
determinant.hpp [code]
gtc/double_float.hpp [code]
gtx/double_float.hpp [code]
epsilon.hpp [code]
equal_operator.hpp [code]
euler_angles.hpp [code]
ext.hpp [code]
extend.hpp [code]
extented_min_max.hpp [code]
fast_exponential.hpp [code]
fast_square_root.hpp [code]
fast_trigonometry.hpp [code]
func_common.hpp [code]
func_exponential.hpp [code]
func_geometric.hpp [code]
func_matrix.hpp [code]
func_noise.hpp [code]
func_trigonometric.hpp [code]
func_vector_relational.hpp [code]
gl.hpp [code]
glm.hpp [code]
gradient_paint.hpp [code]
gtc.hpp [code]
gtx.hpp [code]
gtc/half_float.hpp [code]
gtx/half_float.hpp [code]
handed_coordinate_space.hpp [code]
hint.hpp [code]
img.hpp [code]
inertia.hpp [code]
integer.hpp [code]
intersect.hpp [code]
intrinsic_common.hpp [code]
intrinsic_exponential.hpp [code]
intrinsic_geometric.hpp [code]
intrinsic_matrix.hpp [code]
intrinsic_trigonometric.hpp [code]
intrinsic_vector_relational.hpp [code]
inverse.hpp [code]
inverse_transpose.hpp [code]
log_base.hpp [code]
gtc/matrix_access.hpp [code]
gtx/matrix_access.hpp [code]
matrix_cross_product.hpp [code]
matrix_major_storage.hpp [code]
gtc/matrix_operation.hpp [code]
gtx/matrix_operation.hpp [code]
gtc/matrix_projection.hpp [code]
gtx/matrix_projection.hpp [code]
matrix_query.hpp [code]
matrix_selection.hpp [code]
matrix_transform.hpp [code]
matx.hpp [code]
mixed_product.hpp [code]
multiple.hpp [code]
norm.hpp [code]
normal.hpp [code]
normalize_dot.hpp [code]
number_precision.hpp [code]
ocl_type.hpp [code]
optimum_pow.hpp [code]
orthonormalize.hpp [code]
perpendicular.hpp [code]
polar_coordinates.hpp [code]
projection.hpp [code]
gtc/quaternion.hpp [code]
gtx/quaternion.hpp [code]
random.hpp [code]
raw_data.hpp [code]
reciprocal.hpp [code]
rotate_vector.hpp [code]
setup.hpp [code]
simd_common.hpp [code]
simd_geometric.hpp [code]
simd_mat4.hpp [code]
simd_vec4.hpp [code]
spline.hpp [code]
statistics_operation.hpp [code]
std_based_type.hpp [code]
string_cast.hpp [code]
transform.hpp [code]
transform2.hpp [code]
type.hpp [code]
type_float.hpp [code]
type_gentype.hpp [code]
type_half.hpp [code]
type_int.hpp [code]
type_mat2x2.hpp [code]
type_mat2x3.hpp [code]
type_mat2x4.hpp [code]
type_mat3x2.hpp [code]
type_mat3x3.hpp [code]
type_mat3x4.hpp [code]
type_mat4x2.hpp [code]
type_mat4x3.hpp [code]
type_mat4x4.hpp [code]
type_precision.hpp [code]
type_ptr.hpp [code]
type_size.hpp [code]
type_vec1.hpp [code]
type_vec2.hpp [code]
type_vec3.hpp [code]
type_vec4.hpp [code]
unsigned_int.hpp [code]
vector_access.hpp [code]
vector_angle.hpp [code]
vector_query.hpp [code]
vecx.hpp [code]
verbose_operator.hpp [code]
virtrev.hpp [code]
xstream.hpp [code]
-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/index.hhc b/doc/html/index.hhc deleted file mode 100644 index 32b8c905..00000000 --- a/doc/html/index.hhc +++ /dev/null @@ -1,237 +0,0 @@ - - - - - -
    -
  • -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
- - diff --git a/doc/html/index.hhk b/doc/html/index.hhk deleted file mode 100644 index 5a830dff..00000000 --- a/doc/html/index.hhk +++ /dev/null @@ -1,1689 +0,0 @@ - - - - - -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    -
  • -
      -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
      -
    • -
    • -
    -
  • -
  • -
      -
    • -
    • -
    • -
    -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    • -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
      -
    • -
    • -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
- - diff --git a/doc/html/index.hhp b/doc/html/index.hhp deleted file mode 100644 index ed5e920e..00000000 --- a/doc/html/index.hhp +++ /dev/null @@ -1,298 +0,0 @@ -[OPTIONS] -Compatibility=1.1 -Full-text search=Yes -Contents file=index.hhc -Default Window=main -Default topic=index.html -Index file=index.hhk -Language=0x409 English (United States) -Title=GLM - -[WINDOWS] -main="GLM","index.hhc","index.hhk","index.html","index.html",,,,,0x23520,,0x10387e,,,,,,,,0 - -[FILES] -index.html -a00001_source.html -a00002_source.html -a00003_source.html -a00004_source.html -a00005_source.html -a00006_source.html -a00007_source.html -a00008_source.html -a00009_source.html -a00010_source.html -a00011_source.html -a00012_source.html -a00013_source.html -a00014_source.html -a00015_source.html -a00016_source.html -a00017_source.html -a00018_source.html -a00019_source.html -a00020_source.html -a00021_source.html -a00022_source.html -a00023_source.html -a00024_source.html -a00025_source.html -a00026_source.html -a00027_source.html -a00028_source.html -a00029_source.html -a00030_source.html -a00031_source.html -a00032_source.html -a00033_source.html -a00034_source.html -a00035_source.html -a00036_source.html -a00037_source.html -a00038_source.html -a00039_source.html -a00040_source.html -a00041_source.html -a00042_source.html -a00043_source.html -a00044_source.html -a00045_source.html -a00046_source.html -a00047_source.html -a00048_source.html -a00049_source.html -a00050_source.html -a00051_source.html -a00052_source.html -a00053_source.html -a00054_source.html -a00055_source.html -a00056_source.html -a00057_source.html -a00058_source.html -a00059_source.html -a00060_source.html -a00061_source.html -a00062_source.html -a00063_source.html -a00064_source.html -a00065_source.html -a00066_source.html -a00067_source.html -a00068_source.html -a00069_source.html -a00070_source.html -a00071_source.html -a00072_source.html -a00073_source.html -a00074_source.html -a00075_source.html -a00076_source.html -a00077_source.html -a00078_source.html -a00079_source.html -a00080_source.html -a00081_source.html -a00082_source.html -a00083_source.html -a00084_source.html -a00085_source.html -a00086_source.html -a00087_source.html -a00088_source.html -a00089_source.html -a00090_source.html -a00091_source.html -a00092_source.html -a00093_source.html -a00094_source.html -a00095_source.html -a00096_source.html -a00097_source.html -a00098_source.html -a00099_source.html -a00100_source.html -a00101_source.html -a00102_source.html -a00103_source.html -a00104_source.html -a00105_source.html -a00106_source.html -a00107_source.html -a00108_source.html -a00109_source.html -a00110_source.html -a00111_source.html -a00112_source.html -a00113_source.html -a00114_source.html -a00115_source.html -a00116_source.html -a00117_source.html -a00118_source.html -a00119_source.html -a00120_source.html -a00121_source.html -a00122_source.html -a00123_source.html -namespaces.html -a00124.html -a00125.html -a00126.html -a00127.html -a00128.html -a00129.html -a00130.html -a00132.html -a00133.html -a00134.html -a00135.html -a00136.html -a00137.html -a00138.html -a00139.html -a00140.html -a00142.html -a00143.html -a00144.html -a00145.html -a00146.html -a00147.html -a00148.html -a00149.html -a00150.html -a00151.html -a00152.html -a00153.html -a00154.html -a00155.html -a00156.html -a00157.html -a00158.html -a00159.html -a00160.html -a00161.html -a00162.html -a00163.html -a00164.html -a00165.html -a00166.html -a00167.html -a00168.html -a00169.html -a00170.html -a00171.html -a00172.html -a00173.html -a00174.html -a00175.html -a00176.html -a00177.html -a00178.html -a00179.html -a00180.html -a00181.html -a00182.html -a00183.html -a00184.html -a00185.html -a00186.html -a00187.html -a00188.html -a00189.html -a00190.html -a00191.html -a00192.html -a00193.html -a00194.html -a00195.html -a00196.html -a00197.html -a00198.html -a00199.html -a00200.html -a00201.html -a00202.html -a00203.html -a00204.html -a00205.html -a00206.html -a00207.html -a00208.html -a00209.html -a00210.html -a00211.html -a00212.html -a00213.html -a00214.html -a00215.html -a00216.html -a00217.html -a00218.html -a00221.html -a00222.html -a00223.html -a00224.html -namespacemembers.html -namespacemembers_0x62.html -namespacemembers_0x63.html -namespacemembers_0x64.html -namespacemembers_0x65.html -namespacemembers_0x66.html -namespacemembers_0x67.html -namespacemembers_0x68.html -namespacemembers_0x69.html -namespacemembers_0x6c.html -namespacemembers_0x6d.html -namespacemembers_0x6e.html -namespacemembers_0x6f.html -namespacemembers_0x70.html -namespacemembers_0x71.html -namespacemembers_0x72.html -namespacemembers_0x73.html -namespacemembers_0x74.html -namespacemembers_0x75.html -namespacemembers_0x76.html -namespacemembers_0x77.html -namespacemembers_0x79.html -namespacemembers_func.html -namespacemembers_func_0x62.html -namespacemembers_func_0x63.html -namespacemembers_func_0x64.html -namespacemembers_func_0x65.html -namespacemembers_func_0x66.html -namespacemembers_func_0x67.html -namespacemembers_func_0x68.html -namespacemembers_func_0x69.html -namespacemembers_func_0x6c.html -namespacemembers_func_0x6d.html -namespacemembers_func_0x6e.html -namespacemembers_func_0x6f.html -namespacemembers_func_0x70.html -namespacemembers_func_0x71.html -namespacemembers_func_0x72.html -namespacemembers_func_0x73.html -namespacemembers_func_0x74.html -namespacemembers_func_0x75.html -namespacemembers_func_0x76.html -namespacemembers_func_0x79.html -namespacemembers_type.html -namespacemembers_type_0x63.html -namespacemembers_type_0x64.html -namespacemembers_type_0x66.html -namespacemembers_type_0x67.html -namespacemembers_type_0x68.html -namespacemembers_type_0x69.html -namespacemembers_type_0x6c.html -namespacemembers_type_0x6d.html -namespacemembers_type_0x71.html -namespacemembers_type_0x73.html -namespacemembers_type_0x75.html -namespacemembers_type_0x76.html -namespacemembers_type_0x77.html -files.html -tabs.css -tab_b.gif -tab_l.gif -tab_r.gif diff --git a/doc/html/index.html b/doc/html/index.html deleted file mode 100644 index 118d1706..00000000 --- a/doc/html/index.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - -GLM: OpenGL Mathematics - - - - - - -
-

OpenGL Mathematics

Version 0.8.4

OpenGL Mathematics (GLM) is a C++ mathematics library for 3D applications based on the OpenGL Shading Language (GLSL) specification.

-

The goal of the project is to provide to 3D programmers math classes and functions that miss in C++ when we use to program with GLSL or any high level GPU language. With GLM, the idea is to have a library that works the same way that GLSL which imply a strict following of GLSL specification for the implementation.

-

However, this project isn't limited by GLSL features. An extension system based on GLSL extensions development conventions allows to extend GLSL capabilities.

-

GLM is release under MIT license and available for all version of GCC from version 3.4 and Visual Studio from version 8.0 as a platform independent library.

-

Any feedback is welcome, please send them to g.truc.creation[NO_SPAM_THANKS]gmail.com.

-
-
Generated on Mon Nov 16 11:23:22 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers.html b/doc/html/namespacemembers.html deleted file mode 100644 index cb29d130..00000000 --- a/doc/html/namespacemembers.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- a -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x62.html b/doc/html/namespacemembers_0x62.html deleted file mode 100644 index 1cf90c5c..00000000 --- a/doc/html/namespacemembers_0x62.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- b -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x63.html b/doc/html/namespacemembers_0x63.html deleted file mode 100644 index d9c95c2c..00000000 --- a/doc/html/namespacemembers_0x63.html +++ /dev/null @@ -1,287 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- c -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x64.html b/doc/html/namespacemembers_0x64.html deleted file mode 100644 index c26b6926..00000000 --- a/doc/html/namespacemembers_0x64.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- d -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x65.html b/doc/html/namespacemembers_0x65.html deleted file mode 100644 index 80b2c0e5..00000000 --- a/doc/html/namespacemembers_0x65.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- e -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x66.html b/doc/html/namespacemembers_0x66.html deleted file mode 100644 index 5a9a4670..00000000 --- a/doc/html/namespacemembers_0x66.html +++ /dev/null @@ -1,471 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- f -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x67.html b/doc/html/namespacemembers_0x67.html deleted file mode 100644 index c50d27f4..00000000 --- a/doc/html/namespacemembers_0x67.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- g -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x68.html b/doc/html/namespacemembers_0x68.html deleted file mode 100644 index a2fb3311..00000000 --- a/doc/html/namespacemembers_0x68.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- h -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x69.html b/doc/html/namespacemembers_0x69.html deleted file mode 100644 index 8dc6bf97..00000000 --- a/doc/html/namespacemembers_0x69.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- i -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x6c.html b/doc/html/namespacemembers_0x6c.html deleted file mode 100644 index 695b6c37..00000000 --- a/doc/html/namespacemembers_0x6c.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- l -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x6d.html b/doc/html/namespacemembers_0x6d.html deleted file mode 100644 index 4ea58b69..00000000 --- a/doc/html/namespacemembers_0x6d.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- m -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x6e.html b/doc/html/namespacemembers_0x6e.html deleted file mode 100644 index 8032a401..00000000 --- a/doc/html/namespacemembers_0x6e.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- n -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x6f.html b/doc/html/namespacemembers_0x6f.html deleted file mode 100644 index 0612cb52..00000000 --- a/doc/html/namespacemembers_0x6f.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- o -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x70.html b/doc/html/namespacemembers_0x70.html deleted file mode 100644 index 3196a816..00000000 --- a/doc/html/namespacemembers_0x70.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- p -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x71.html b/doc/html/namespacemembers_0x71.html deleted file mode 100644 index 0b152a83..00000000 --- a/doc/html/namespacemembers_0x71.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- q -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x72.html b/doc/html/namespacemembers_0x72.html deleted file mode 100644 index 89aff7a8..00000000 --- a/doc/html/namespacemembers_0x72.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- r -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x73.html b/doc/html/namespacemembers_0x73.html deleted file mode 100644 index dccf3fdf..00000000 --- a/doc/html/namespacemembers_0x73.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- s -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x74.html b/doc/html/namespacemembers_0x74.html deleted file mode 100644 index ccbb477f..00000000 --- a/doc/html/namespacemembers_0x74.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- t -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x75.html b/doc/html/namespacemembers_0x75.html deleted file mode 100644 index 9314b238..00000000 --- a/doc/html/namespacemembers_0x75.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- u -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x76.html b/doc/html/namespacemembers_0x76.html deleted file mode 100644 index 81a40bb1..00000000 --- a/doc/html/namespacemembers_0x76.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- v -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x77.html b/doc/html/namespacemembers_0x77.html deleted file mode 100644 index cbd9fc89..00000000 --- a/doc/html/namespacemembers_0x77.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- w -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_0x79.html b/doc/html/namespacemembers_0x79.html deleted file mode 100644 index bad378a7..00000000 --- a/doc/html/namespacemembers_0x79.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-Here is a list of all documented namespace members with links to the namespaces they belong to: - -

- y -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func.html b/doc/html/namespacemembers_func.html deleted file mode 100644 index d50ad17c..00000000 --- a/doc/html/namespacemembers_func.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - -GLM: Class Members - - - - - - - -
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x62.html b/doc/html/namespacemembers_func_0x62.html deleted file mode 100644 index a10a953a..00000000 --- a/doc/html/namespacemembers_func_0x62.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- b -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x63.html b/doc/html/namespacemembers_func_0x63.html deleted file mode 100644 index cbdb27f8..00000000 --- a/doc/html/namespacemembers_func_0x63.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- c -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x64.html b/doc/html/namespacemembers_func_0x64.html deleted file mode 100644 index 0e5d9bb6..00000000 --- a/doc/html/namespacemembers_func_0x64.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- d -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x65.html b/doc/html/namespacemembers_func_0x65.html deleted file mode 100644 index 35924c3f..00000000 --- a/doc/html/namespacemembers_func_0x65.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- e -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x66.html b/doc/html/namespacemembers_func_0x66.html deleted file mode 100644 index 28307a49..00000000 --- a/doc/html/namespacemembers_func_0x66.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- f -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x67.html b/doc/html/namespacemembers_func_0x67.html deleted file mode 100644 index 2cc259aa..00000000 --- a/doc/html/namespacemembers_func_0x67.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- g -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x68.html b/doc/html/namespacemembers_func_0x68.html deleted file mode 100644 index 73c01a7f..00000000 --- a/doc/html/namespacemembers_func_0x68.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- h -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x69.html b/doc/html/namespacemembers_func_0x69.html deleted file mode 100644 index 234192d3..00000000 --- a/doc/html/namespacemembers_func_0x69.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- i -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x6c.html b/doc/html/namespacemembers_func_0x6c.html deleted file mode 100644 index 511d9124..00000000 --- a/doc/html/namespacemembers_func_0x6c.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- l -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x6d.html b/doc/html/namespacemembers_func_0x6d.html deleted file mode 100644 index c63cd504..00000000 --- a/doc/html/namespacemembers_func_0x6d.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - -GLM: Class Members - - - - - - - -
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x6e.html b/doc/html/namespacemembers_func_0x6e.html deleted file mode 100644 index e46efbdc..00000000 --- a/doc/html/namespacemembers_func_0x6e.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- n -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x6f.html b/doc/html/namespacemembers_func_0x6f.html deleted file mode 100644 index 4e741c14..00000000 --- a/doc/html/namespacemembers_func_0x6f.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- o -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x70.html b/doc/html/namespacemembers_func_0x70.html deleted file mode 100644 index 0f5e1ad7..00000000 --- a/doc/html/namespacemembers_func_0x70.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- p -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x71.html b/doc/html/namespacemembers_func_0x71.html deleted file mode 100644 index 39f58e25..00000000 --- a/doc/html/namespacemembers_func_0x71.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- q -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x72.html b/doc/html/namespacemembers_func_0x72.html deleted file mode 100644 index a63df39e..00000000 --- a/doc/html/namespacemembers_func_0x72.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - -GLM: Class Members - - - - - - - -
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x73.html b/doc/html/namespacemembers_func_0x73.html deleted file mode 100644 index 0aff66d9..00000000 --- a/doc/html/namespacemembers_func_0x73.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- s -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x74.html b/doc/html/namespacemembers_func_0x74.html deleted file mode 100644 index 00d09ef5..00000000 --- a/doc/html/namespacemembers_func_0x74.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- t -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x75.html b/doc/html/namespacemembers_func_0x75.html deleted file mode 100644 index 935e8bdc..00000000 --- a/doc/html/namespacemembers_func_0x75.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- u -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x76.html b/doc/html/namespacemembers_func_0x76.html deleted file mode 100644 index e3b0cafc..00000000 --- a/doc/html/namespacemembers_func_0x76.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- v -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_func_0x79.html b/doc/html/namespacemembers_func_0x79.html deleted file mode 100644 index 6ec28a30..00000000 --- a/doc/html/namespacemembers_func_0x79.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- y -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type.html b/doc/html/namespacemembers_type.html deleted file mode 100644 index ce59c364..00000000 --- a/doc/html/namespacemembers_type.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - -GLM: Class Members - - - - - - - -
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x63.html b/doc/html/namespacemembers_type_0x63.html deleted file mode 100644 index c33fdfc3..00000000 --- a/doc/html/namespacemembers_type_0x63.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- c -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x64.html b/doc/html/namespacemembers_type_0x64.html deleted file mode 100644 index fdada232..00000000 --- a/doc/html/namespacemembers_type_0x64.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- d -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x66.html b/doc/html/namespacemembers_type_0x66.html deleted file mode 100644 index 36910055..00000000 --- a/doc/html/namespacemembers_type_0x66.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- f -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x67.html b/doc/html/namespacemembers_type_0x67.html deleted file mode 100644 index d2e9b3c8..00000000 --- a/doc/html/namespacemembers_type_0x67.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- g -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x68.html b/doc/html/namespacemembers_type_0x68.html deleted file mode 100644 index 49187319..00000000 --- a/doc/html/namespacemembers_type_0x68.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- h -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x69.html b/doc/html/namespacemembers_type_0x69.html deleted file mode 100644 index 9616e51b..00000000 --- a/doc/html/namespacemembers_type_0x69.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - -GLM: Class Members - - - - - - - -
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x6c.html b/doc/html/namespacemembers_type_0x6c.html deleted file mode 100644 index 6196380d..00000000 --- a/doc/html/namespacemembers_type_0x6c.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - -GLM: Class Members - - - - - - - -
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x6d.html b/doc/html/namespacemembers_type_0x6d.html deleted file mode 100644 index fe4112c3..00000000 --- a/doc/html/namespacemembers_type_0x6d.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- m -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x71.html b/doc/html/namespacemembers_type_0x71.html deleted file mode 100644 index e91dc929..00000000 --- a/doc/html/namespacemembers_type_0x71.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- q -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x73.html b/doc/html/namespacemembers_type_0x73.html deleted file mode 100644 index 7bf43c43..00000000 --- a/doc/html/namespacemembers_type_0x73.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- s -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x75.html b/doc/html/namespacemembers_type_0x75.html deleted file mode 100644 index 2a2e9a44..00000000 --- a/doc/html/namespacemembers_type_0x75.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - -GLM: Class Members - - - - - - - -
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x76.html b/doc/html/namespacemembers_type_0x76.html deleted file mode 100644 index 456b93d7..00000000 --- a/doc/html/namespacemembers_type_0x76.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - -GLM: Class Members - - - - - - - -
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespacemembers_type_0x77.html b/doc/html/namespacemembers_type_0x77.html deleted file mode 100644 index a80abbf3..00000000 --- a/doc/html/namespacemembers_type_0x77.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - -GLM: Class Members - - - - - - -
-  - -

- w -

-
-
Generated on Mon Nov 16 11:23:26 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/namespaces.html b/doc/html/namespaces.html deleted file mode 100644 index 6ddcc9d6..00000000 --- a/doc/html/namespaces.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - -GLM: Namespace Index - - - - - - -
-

Namespace List

Here is a list of all documented namespaces with brief descriptions: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
glmGLM namespace, it contains all GLSL based features
glm::coreGLM core. Namespace that includes all the feature define by GLSL 1.30.8 specification. This namespace is included in glm namespace
glm::core::functionSome of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification
glm::core::function::commonDefine common functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace
glm::core::function::exponentialDefine all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace
glm::core::function::geometricDefine all geometric functions from Section 8.4 of GLSL 1.30.8 specification. Included in glm namespace
glm::core::function::matrixDefine all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace
glm::core::function::trigonometricDefine Angle and trigonometry functions from Section 8.1 of GLSL 1.30.8 specification
glm::core::function::vector_relationalDefine vector relational functions from Section 8.3 of GLSL 1.30.8 specification. Included in glm namespace
glm::core::typeScalar, vectors and matrices from section 4.1.2 Booleans, 4.1.3 Integers section, 4.1.4 Floats section, 4.1.5 Vectors and section 4.1.6 Matrices of GLSL 1.30.8 specification
glm::core::type::matrixMatrix types from section 4.1.6 of GLSL 1.30.8 specification
glm::core::type::matrix::precisionMatrix types with precision qualifier
glm::core::type::scalarScalar types from section 4.1.2 Booleans, 4.1.3 Integers and 4.1.4 Floats of GLSL 1.30.8 specification
glm::core::type::scalar::precisionScalar types with precision qualifier
glm::core::type::vectorVector types from section 4.1.5 of GLSL 1.30.8 specification
glm::core::type::vector::precisionVector types with precision qualifier
glm::gtcGLM stable extensions
glm::gtc::double_floatGLM_GTC_double_float extension: Add support for double precision floating-point types
glm::gtc::half_floatGLM_GTC_half_float extension: Add support for half precision floating-point types
glm::gtc::matrix_operationGLM_GTC_matrix_operation extension: Matrix operation functions
glm::gtc::matrix_projectionGLM_GTC_matrix_projection: Varius ways to build and operate on projection matrices
glm::gtc::matrix_transformGLM_GTC_matrix_transform extension: Add transformation matrices
glm::gtc::quaternionGLM_GTC_quaternion extension: Quaternion types and functions
glm::gtc::type_precisionGLM_GTC_type_precision extension: Defined types with specific size
glm::gtxGLM experimental extensions. The interface could change between releases
glm::gtx::associated_min_maxGLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces
glm::gtx::bitGLM_GTX_bit extension: Allow to perform bit operations on integer values
glm::gtx::closest_pointGLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point
glm::gtx::color_castGLM_GTX_color_cast extension: Conversion between two color types
glm::gtx::color_spaceGLM_GTX_color_space extension: Related to RGB to HSV conversions and operations
glm::gtx::color_space_YCoCgGLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations
glm::gtx::comparisonGLM_GTX_comparison extension: Defined comparison operators for vectors
glm::gtx::compatibilityGLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages
glm::gtx::component_wiseGLM_GTX_component_wise extension: Operations between components of a type
glm::gtx::determinantGLM_GTX_determinant extension: Compute the determinant of a matrix
glm::gtx::double_floatGLM_GTX_double_float extension: Add support for double precision flotting-point types
glm::gtx::epsilonGLM_GTX_epsilon extension: Comparaison functions for a user defined epsilon values
glm::gtx::euler_anglesGLM_GTX_euler_angles extension: Build matrices from euler angles
glm::gtx::extendGLM_GTX_extend extension: Extend a position from a source to a position at a defined length
glm::gtx::extented_min_maxGLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters
glm::gtx::fast_exponentialGLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions
glm::gtx::fast_square_rootGLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions
glm::gtx::fast_trigonometryGLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions
glm::gtx::gradient_paintGLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients
glm::gtx::half_floatGLM_GTX_half_float extension: Add support for half precision flotting-point types
glm::gtx::handed_coordinate_spaceGLM_GTX_handed_coordinate_space extension: To know if a triedron is right or left handed
glm::gtx::inertiaGLM_GTX_inertia extension: Create inertia matrices
glm::gtx::integerGLM_GTX_integer extension: Add support for integer for core functions
glm::gtx::intersectGLM_GTX_intersect extension: Add intersection functions
glm::gtx::inverseGLM_GTX_inverse extension: Inverse matrix functions
glm::gtx::inverse_transposeGLM_GTX_inverse_transpose extension: Inverse transpose matrix functions
glm::gtx::log_baseGLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar
glm::gtx::matrix_accessGLM_GTX_matrix_access extension: Set a column or a row of a matrix
glm::gtx::matrix_cross_productGLM_GTX_matrix_cross_product: Build cross product matrices
glm::gtx::matrix_major_storageGLM_GTX_matrix_cross_product: Build matrices with specific matrix order, row or column
glm::gtx::matrix_operationGLM_GTX_matrix_operation: Build cross product matrices
glm::gtx::matrix_projectionGLM_GTX_matrix_projection: Varius ways to build and operate on projection matrices
glm::gtx::matrix_queryGLM_GTX_matrix_query: Query to evaluate matrices properties
glm::gtx::matrix_selectionGLM_GTX_matrix_selection extension: Access to matrix columns or rows
glm::gtx::matxGLM_GTX_matx extension: - Work in progress - NxN matrix types
glm::gtx::mixed_productGLM_GTX_mixed_product extension: Mixed product of 3 vectors
glm::gtx::normGLM_GTX_norm extension: Varius way to compute vector norms
glm::gtx::normalGLM_GTX_normal extension: Compute the normal of a triangle
glm::gtx::normalize_dotGLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root
glm::gtx::number_precisionGLM_GTX_number_precision extension: Defined size types
glm::gtx::ocl_typeGLM_GTX_ocl_type extension: OpenCL types
glm::gtx::optimum_powGLM_GTX_optimum_pow extension: Integer exponenciation of power functions
glm::gtx::orthonormalizeGLM_GTX_orthonormalize extension: Orthonormalize matrices
glm::gtx::perpendicularGLM_GTX_perpendicular extension: Perpendicular of a vector from other one
glm::gtx::polar_coordinatesGLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert
glm::gtx::projectionGLM_GTX_projection extension: Projection of a vector to other one
glm::gtx::quaternionGLM_GTX_quaternion extension: Quaternion types and functions
glm::gtx::randomGLM_GTX_random extension: Generate random number from varius distribution methods
glm::gtx::raw_dataGLM_GTX_raw_data extension: Projection of a vector to other one
glm::gtx::reciprocalGLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions
glm::gtx::rotate_vectorGLM_GTX_rotate_vector extension: Function to directly rotate a vector
glm::gtx::simd_mat4GLM_GTX_simd_mat4 extension: SIMD implementation of vec4 type
glm::gtx::simd_vec4GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type
glm::gtx::splineGLM_GTX_spline extension: Spline functions
glm::gtx::statistics_operationGLM_GTX_statistics_operation extension: - Work in progress - Statistics functions
glm::gtx::std_based_typeGLM_GTX_std_based_type extension: Add support vector types based on C++ standard type
glm::gtx::string_castGLM_GTX_string_cast extension: Setup strings for GLM type values
glm::gtx::transformGLM_GTX_transform extension: Add transformation matrices
glm::gtx::transform2GLM_GTX_transform2 extension: Add extra transformation matrices
glm::gtx::type_ptrGLM_GTX_type_ptr extension: Get access to vectors & matrices value type address
glm::gtx::unsigned_intGLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions
glm::gtx::vector_accessGLM_GTX_vector_access extension: Function to set values to vectors
glm::gtx::vector_angleGLM_GTX_vector_angle extension: Compute angle between vectors
glm::gtx::vector_queryGLM_GTX_vector_query extension: Query informations of vector types
glm::gtx::vecxGLM_GTX_vecx extension: - Work in progress - Add custom size vectors
glm::gtx::verbose_operatorGLM_GTX_verbose_operator extension: Use words to replace operators
glm::imgIMG extensions
glm::img::multipleGLM_IMG_multiple: Find the closest number of a number multiple of other number
glm::virtrev_glmext::addressGLM_VIRTREV_address extension: Vector & matrix content address (T const * type pointer)
glm::virtrev_glmext::equal_operatorGLM_VIRTREV_gl extension: Vector & matrix integration with OpenGL
glm::virtrev_glmext::glGLM_VIRTREV_gl extension: Vector & matrix integration with OpenGL
glm::virtrev_glmext::xstreamGLM_VIRTREV_xstream extension: Streaming vector and matrix in a xml way
-
-
Generated on Mon Nov 16 11:23:23 2009 for GLM by  - -doxygen 1.6.1
- - diff --git a/doc/html/tab_b.gif b/doc/html/tab_b.gif deleted file mode 100644 index 0d623483ffdf5f9f96900108042a7ab0643fe2a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35 ncmZ?wbhEHbWMp7uXkcJy*>IeJfk6j|fqX^=1|}vKMh0sDa2W*H diff --git a/doc/html/tab_l.gif b/doc/html/tab_l.gif deleted file mode 100644 index 9b1e6337c9299a700401a2a78a2c6ffced475216..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmZ?wbhEHbZT`}F1e&(Gg}Y(8=I;HA5#Z$3JI=gGB)FQ#odI(O&E^@q;x zK6mr*m3xOS-#u~t!I@i+u0DKm^U160k6t`|^WpV}&n+8{U%dD9&a>B#U%!9-@yol< zU%&tQ{rk_K|NsC0`}dE5ET99@1@a36+kb~?0UJ*yc&I3X_m z!ND^5$O7$#8OFRuDhG}!?8z?cdZK&!`PWjdR;Aj^wZ` zeK{IEYHBJ)6K8VIp1`BVt++swf6j+=L{p1*nO(VhE`pFexG@5$|>uaCcd z`0m=9m+yak{QmXN#Sc$^{$X9h9&q2jiKAI|&T)a;PPx2K9p`YIdw8HtR5k2Q$2-O2 z*;3y{MQ-RnJTgJfI&R5|O)AHxDf_00XbPvDZPy4t=hHd)nfLPvms&O`Ok(sD()5v$ z5U@&h;a=#xbxVbo2~X&Xj0Ie(f{v>vERH+qC+nTG=B8Nca=wU-O$?1&vUgV~9=!H; zx>3p9Yn%*<>t~sk+&0xfyS8RsPfYBd<~wWK%j-LmpU>O7yX^h#UCp1x-p#i7@bE;py8XI6 zmY<)m>~)W~yIWcMVoiPg{duuf<*)9qZ9l$m*Ph&W&$jlv*Vpa+{pH@n=IQ$L?0$ax ec60Ul|8o2P|NVbd{6P)#weSbE3}s?04AuZvx_~SI diff --git a/doc/html/tab_r.gif b/doc/html/tab_r.gif deleted file mode 100644 index ce9dd9f533cb5486d6941844f442b59d4a9e9175..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2585 zcmbV}`9Bkk1ILFF--w5zJc=ZZT(zjE=;2|_S)Qm~rCWz1Pc)KPl;jv%A#&v2*x}yc zmf2~Jm~&=xjJY?PqwIN}f8qQ2{r$uH{c*nJbmr{cR5??*egHrs-B=MzCF`3%e{FAW z{oL5xTHn~5TM{jaB;@|_Ue5F&Zb@p(kMyG{*;gWDg zyeL|eZf7Qd8=#bXzSiR{yzRgLSj-fJS8>lBjVHN z^o-0eS=nE6a`W;LChBs=`+QAJP~{b93>H^eRb5kCSC1zUNezun%`L5M?RDzv#%jk7 zYVRX=vATPD`+oEfum^{RM@GjuP?-r=yh0!p;Vx^T9G7~`7%5ydH%70=jyJ;;`d;hv92x3R=z{xp+Lg2!*@OK*K15-t&okoPtSED)h&$RLxdbA zseWm^C3d%-yRNi-ryk^!ek+C`n&~cd$#ZWct_cUL{l~i+Nzx^5d!n94(>bW-iL~Rl z&8r)?q|1DIo=0=judQ{FaGcfLERz8gfn3-Qt<2lksh{mzpT}DXxUuR^z=^key&q4! z+wWI45vL0k$R^(F#{qfqhUsN@WA+w-V?LPH33!Q?WFSB3)WBojE@hK41Nb?KfS+Qo zXgrzfsP$wr4Qzy*{OD>uJBjdgGM@VMml5)2f~_}lD*YyOb}Hjeobhz#4c`w(l^>KK zr?Ud;W~Z}*w;%hZ|2^p^+f06gJDJQD zeIhGADbDmm&6arh(q>EZ<7mjzg7l|z$hRL8=1>)Nv=S7CY$B}iYJ&*T_-T_OG*L1q ztZ3Lana33?y3AKnyq^YCF|4x%Rb5WU&2qcl{TFKey%QJeMxn^SdT!hZ5+0i1zeusiYVp-phBl7b5+Px-X&LhByq z0F&<;K0l2+v>qiHlXb#$jXMv$uK-dEGE9L~qtdU(XeRXmvu*K2Q&6!fD**JxYP4b4BR7FdJ$Qx9G9`J%-_X!a#LGpp3g9)VWytGCa;7`S1_e8F~!R+aSJ zOF17p2`H?2kPs8Q`_;U}+D%3p zs2-0BTqFwpUoBk`?P;iPQ(IbEA|JmMx!P&YYG|R@S=5Mnw;-?A6rEEVyV%d7{iU4a zNk`i!%F(Ykpm`}#oH;BjY->@b8vQedv;pza2FL&*6ufjd+*3Ute&>kes~TU?^KkojsTh(o~(3tk1Y6>4(yn( z#U*ID9@eg-beKo1B;HXe+}{Z%n@7m0+yxivuqk9~;!1LGQlah)xYK4>wgL}l6dsaN zIxlRlq`*`j9PG4*0hD6YV_b_2w5b#)o7J?`q#{GjvvKlD`T*dWcZx<-s(ZvLB44E# z=!|sw!?)@%y$oRNL#25WS3lzdii}TuQ3?CLnvQ1_n};2sT_;Y;#d3=+-(O% zMN$>O!3;ke(UuLR%h_&)N zs^!-@A>QR}4yB1bPp`9S19ikTbZ~O{&FF-yHK{En;mmShDUIEw03`j(DBIsM}Rjki2J#SQa3gFZTKBPDeIiLt9Z z%bL3(B@Qw%(B`wSMS~dPh$=R`(}lBoFXKy(s|*{#ru$wjsBc_O#zxNk9w+UUHmx(U zmJ8+M+ndtnZ<7|VU9Mbt61zpo9T&3%Wx&XII=#QJxjR`CZf22ac3d51Z?GD%LEe_&*t46Qf;4`bZ7p2K(Ab5>GfT^}4! zBT&HZD`^PEgWoI&{~o-ID0F?O`75sm(87x%A{(}Ch1)QlzdJ)1B-eqe5a(weg0`4lQIf1evjvbBY50DVbzO7CLf|vP z2#0(U-|jZ`H{y5N^o7%iK6H>_HEGN->U6^!)1{XpJV!!4(Ig7wzZQ*9WYF4X1rG0x z=1uA@i`rIAciubDC{;~b(|&|A@xkjRP5aRcvRU9tvIm}jDB6J eQ0-6-y)mpwdT=ayS0tBxKDA*~;EWmo diff --git a/doc/html/tabs.css b/doc/html/tabs.css deleted file mode 100644 index a4441634..00000000 --- a/doc/html/tabs.css +++ /dev/null @@ -1,105 +0,0 @@ -/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ - -DIV.tabs -{ - float : left; - width : 100%; - background : url("tab_b.gif") repeat-x bottom; - margin-bottom : 4px; -} - -DIV.tabs UL -{ - margin : 0px; - padding-left : 10px; - list-style : none; -} - -DIV.tabs LI, DIV.tabs FORM -{ - display : inline; - margin : 0px; - padding : 0px; -} - -DIV.tabs FORM -{ - float : right; -} - -DIV.tabs A -{ - float : left; - background : url("tab_r.gif") no-repeat right top; - border-bottom : 1px solid #84B0C7; - font-size : 80%; - font-weight : bold; - text-decoration : none; -} - -DIV.tabs A:hover -{ - background-position: 100% -150px; -} - -DIV.tabs A:link, DIV.tabs A:visited, -DIV.tabs A:active, DIV.tabs A:hover -{ - color: #1A419D; -} - -DIV.tabs SPAN -{ - float : left; - display : block; - background : url("tab_l.gif") no-repeat left top; - padding : 5px 9px; - white-space : nowrap; -} - -DIV.tabs #MSearchBox -{ - float : right; - display : inline; - font-size : 1em; -} - -DIV.tabs TD -{ - font-size : 80%; - font-weight : bold; - text-decoration : none; -} - - - -/* Commented Backslash Hack hides rule from IE5-Mac \*/ -DIV.tabs SPAN {float : none;} -/* End IE5-Mac hack */ - -DIV.tabs A:hover SPAN -{ - background-position: 0% -150px; -} - -DIV.tabs LI.current A -{ - background-position: 100% -150px; - border-width : 0px; -} - -DIV.tabs LI.current SPAN -{ - background-position: 0% -150px; - padding-bottom : 6px; -} - -DIV.navpath -{ - background : none; - border : none; - border-bottom : 1px solid #84B0C7; - text-align : center; - margin : 2px; - padding : 2px; -} diff --git a/doc/readme.txt b/doc/readme.txt deleted file mode 100644 index 7edadbd3..00000000 --- a/doc/readme.txt +++ /dev/null @@ -1,248 +0,0 @@ -============================= -GLM 0.9.A.1 final: 2010-02-09 ------------------------------ -- Removed deprecated features -- Internal redesign - -============================= -GLM 0.8.4.4 final: 2010-01-25 ------------------------------ -- Fixed warnings - -============================= -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 ------------------------------ -- Fixed Half float adds - -============================= -GLM 0.8.4.1 final: 2009-10-05 ------------------------------ -- Updated documentation -- Fixed MacOS X build - -============================= -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 ------------------------------ -- Fixed bugs - -============================= -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 ------------------------------ -- Fixed bugs - -============================= -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 ------------------------------ -- Fixed old extension system. - -============================= -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 ------------------------------ -- Fixed bugs. - -============================= -GLM 0.8.2.2 final: 2009-02-24 ------------------------------ -- Fixed bugs. - -============================= -GLM 0.8.2.1 final: 2009-02-13 ------------------------------ -- Fixed bugs. - -============================= -GLM 0.8.2 final: 2009-01-21 ------------------------------ -- Fixed bugs. - -============================= -GLM 0.8.1 final: 2008-10-30 ------------------------------ -- Fixed bugs. - -============================= -GLM 0.8.0 final: 2008-10-23 ------------------------------ -- New method to use extension. - -============================= -GLM 0.8.0 beta3: 2008-10-10 ------------------------------ -- Added CMake support for GLM tests. - -============================= -GLM 0.8.0 beta2: 2008-10-04 ------------------------------ -- Improved half scalars and vectors support. - -============================= -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 ---------------------------- -- Improved C++ standard comformance -- Added Static assert for types checking - -=========================== -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 ---------------------------- -- Added external dependencies system. - -=========================== -GLM 0.7.3 final: 2008-05-24 ---------------------------- -- Fixed bugs -- Added new extension group - -=========================== -GLM 0.7.2 final: 2008-04-27 ---------------------------- -- Updated documentation -- Added preprocessor options - -=========================== -GLM 0.7.1 final: 2008-03-24 ---------------------------- -- Disabled half on GCC -- Fixed extensions - -=========================== -GLM 0.7.0 final: 2008-03-22 ---------------------------- -- Changed to MIT license -- Added new documentation - -=========================== -GLM 0.6.4 : 2007-12-10 ---------------------------- -- Fixed swizzle operators - -=========================== -GLM 0.6.3 : 2007-11-05 ---------------------------- -- Fixed type data accesses -- Fixed 3DSMax sdk conflict - -=========================== -GLM 0.6.2 : 2007-10-08 ---------------------------- -- Fixed extension - -=========================== -GLM 0.6.1 : 2007-10-07 ---------------------------- -- Fixed a namespace error -- Added extensions - -=========================== -GLM 0.6.0 : 2007-09-16 ---------------------------- -- Added new extension namespace mecanium -- Added Automatic compiler detection - -=========================== -GLM 0.5.1 : 2007-02-19 ---------------------------- -- Fixed swizzle operators - -=========================== -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 ---------------------------- -- Added OpenGL examples - -=========================== -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 ---------------------------- -- Fixed texcoord components access. -- Fixed mat4 and imat4 division operators. - -=========================== -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 ---------------------------- -- Improved GLSL type conversion and construction compliance. -- Added experimental extensions. -- Added Doxygen Documentation. -- Added code optimisations. -- Fixed bugs. - -=========================== -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 ---------------------------- -- Add vec2, vec3, vec4 GLSL types -- Add ivec2, ivec3, ivec4 GLSL types -- Add bvec2, bvec3, bvec4 GLSL types -- Add mat2, mat3, mat4 GLSL types -- Add almost all functions - -=========================== -Christophe [Groove] Riccio, glm|AT|g-truc|DOT|net - diff --git a/doc/usertype.dat b/doc/usertype.dat deleted file mode 100644 index dbf4a90e..00000000 --- a/doc/usertype.dat +++ /dev/null @@ -1,646 +0,0 @@ -attribute -const -uniform -varying -break -continue -do -for -while -if -else -in -out -inout -float -int -void -bool -true -false -discard -return -mat2 -mat3 -mat4 -mat2x2 -mat3x3 -mat4x4 -mat2x3 -mat3x2 -mat2x4 -mat4x2 -mat3x4 -mat4x3 -vec2 -vec3 -vec4 -ivec2 -ivec3 -ivec4 -uvec2 -uvec3 -uvec4 -bvec2 -bvec3 -bvec4 -sampler1D -sampler2D -sampler3D -samplerCube -sampler1DShadow -sampler2DShadow -struct - -asm -class -union -enum -typedef -template -this -packed -goto -switch -default -inline -noinline -volatile -public -static -extern -external -interface -long -short -double -half -fixed -unsigned -input -output -sampler2DRect -sampler3DRect -sampler2DRectShadow -sizeof -cast -namespace -using - -hvec2 -hvec3 -hvec4 -fvec2 -fvec3 -fvec4 -dvec2 -dvec3 -dvec4 - -__uvec2GTX -__uvec3GTX -__uvec4GTX -__ivec2GTX -__ivec3GTX -__ivec4GTX -__hvec2GTX -__hvec3GTX -__hvec4GTX -__fvec2GTX -__fvec3GTX -__fvec4GTX -__dvec2GTX -__dvec3GTX -__dvec4GTX - -on - -final -abstract -limited -access -self - -uchar -schar -uint -sint - -int8 -int16 -int32 -int64 - -sint8 -sint16 -sint32 -sint64 - -uint8 -uint16 -uint32 -uint64 - -float16 -float32 -float64 - -quat -hquat -fquat -dquat - -__quatGTX -__hquatGTX -__fquatGTX -__dquatGTX - -handle -handle8 -handle16 -handle32 -handle64 - -flag -flag8 -flag16 -flag32 -flag64 - -import -export - -hmat2 -hmat3 -hmat4 - -fmat2 -fmat3 -fmat4 - -dmat2 -dmat3 -dmat4 - -hmat2x3 -hmat3x2 -hmat2x4 -hmat4x2 -hmat3x4 -hmat4x3 - -fmat2x3 -fmat3x2 -fmat2x4 -fmat4x2 -fmat3x4 -fmat4x3 - -dmat2x3 -dmat3x2 -dmat2x4 -dmat4x2 -dmat3x4 -dmat4x3 - -__halfGTX - -__hvec2GTX -__hvec3GTX -__hvec4GTX - -__hmat2GTX -__hmat3GTX -__hmat4GTX - -__fmat2GTX -__fmat3GTX -__fmat4GTX - -__dmat2GTX -__dmat3GTX -__dmat4GTX - -__hmat2x3GTX -__hmat3x2GTX -__hmat2x4GTX -__hmat4x2GTX -__hmat3x4GTX -__hmat4x3GTX - -__fmat2x3GTX -__fmat3x2GTX -__fmat2x4GTX -__fmat4x2GTX -__fmat3x4GTX -__fmat4x3GTX - -__dmat2x3GTX -__dmat3x2GTX -__dmat2x4GTX -__dmat4x2GTX -__dmat3x4GTX -__dmat4x3GTX - -null -pi -epsilon -infinite -self - -byte -word -dword -qword - -new_object -new_array -delete_object -delete_array - -__int8GTX -__int16GTX -__int32GTX -__int64GTX - -__i8GTX -__i16GTX -__i32GTX -__i64GTX - -__i8vec2GTX -__i8vec3GTX -__i8vec4GTX - -__i16vec2GTX -__i16vec3GTX -__i16vec4GTX - -__i32vec2GTX -__i32vec3GTX -__i32vec4GTX - -__i64vec2GTX -__i64vec3GTX -__i64vec4GTX - -__uint8GTX -__uint16GTX -__uint32GTX -__uint64GTX - -__u8GTX -__u16GTX -__u32GTX -__u64GTX - -__u8vec2GTX -__u8vec3GTX -__u8vec4GTX - -__u16vec2GTX -__u16vec3GTX -__u16vec4GTX - -__u32vec2GTX -__u32vec3GTX -__u32vec4GTX - -__u64vec2GTX -__u64vec3GTX -__u64vec4GTX - -__float16GTX -__float32GTX -__float64GTX - -__f16GTX -__f32GTX -__f64GTX - -__f16vec2GTX -__f16vec3GTX -__f16vec4GTX - -__f32vec2GTX -__f32vec3GTX -__f32vec4GTX - -__f64vec2GTX -__f64vec3GTX -__f64vec4GTX - -__f16mat2GTX -__f16mat3GTX -__f16mat4GTX - -__f16mat2x3GTX -__f16mat2x4GTX -__f16mat3x2GTX -__f16mat3x4GTX -__f16mat4x2GTX -__f16mat4x3GTX - -__f32mat2GTX -__f32mat3GTX -__f32mat4GTX - -__f32mat2x3GTX -__f32mat2x4GTX -__f32mat3x2GTX -__f32mat3x4GTX -__f32mat4x2GTX -__f32mat4x3GTX - -__f64mat2GTX -__f64mat3GTX -__f64mat4GTX - -__f64mat2x3GTX -__f64mat2x4GTX -__f64mat3x2GTX -__f64mat3x4GTX -__f64mat4x2GTX -__f64mat4x3GTX - -__f16quatGTX -__f32quatGTX -__f64quatGTX - -int8 -int16 -int32 -int64 - -i8 -i16 -i32 -i64 - -i8vec2 -i8vec3 -i8vec4 - -i16vec2 -i16vec3 -i16vec4 - -i32vec2 -i32vec3 -i32vec4 - -i64vec2 -i64vec3 -i64vec4 - -uint8 -uint16 -uint32 -uint64 - -u8 -u16 -u32 -u64 - -u8vec2 -u8vec3 -u8vec4 - -u16vec2 -u16vec3 -u16vec4 - -u32vec2 -u32vec3 -u32vec4 - -u64vec2 -u64vec3 -u64vec4 - -float16 -float32 -float64 - -f16 -f32 -f64 - -f16vec2 -f16vec3 -f16vec4 - -f32vec2 -f32vec3 -f32vec4 - -f64vec2 -f64vec3 -f64vec4 - -f16mat2 -f16mat3 -f16mat4 - -f16mat2x3 -f16mat2x4 -f16mat3x2 -f16mat3x4 -f16mat4x2 -f16mat4x3 - -f32mat2 -f32mat3 -f32mat4 - -f32mat2x3 -f32mat2x4 -f32mat3x2 -f32mat3x4 -f32mat4x2 -f32mat4x3 - -f64mat2 -f64mat3 -f64mat4 - -f64mat2x3 -f64mat2x4 -f64mat3x2 -f64mat3x4 -f64mat4x2 -f64mat4x3 - -f16quat -f32quat -f64quat - -bool1 -bool2 -bool3 -bool4 - -bool1x1 -bool2x2 -bool3x3 -bool4x4 - -bool2x3 -bool2x4 -bool3x2 -bool3x4 -bool4x2 -bool4x3 - -int1 -int2 -int3 -int4 - -int1x1 -int2x2 -int3x3 -int4x4 - -int2x3 -int2x4 -int3x2 -int3x4 -int4x2 -int4x3 - -half1 -half2 -half3 -half4 - -half2x2 -half3x3 -half4x4 - -half2x3 -half2x4 -half3x2 -half3x4 -half4x2 -half4x3 - -float1 -float2 -float3 -float4 - -float1x1 -float2x2 -float3x3 -float4x4 - -float2x3 -float2x4 -float3x2 -float3x4 -float4x2 -float4x3 - -double1 -double2 -double3 -double4 - -double1x1 -double2x2 -double3x3 -double4x4 - -double2x3 -double2x4 -double3x2 -double3x4 -double4x2 -double4x3 - -bool1GTX -bool2GTX -bool3GTX -bool4GTX - -bool1x1GTX -bool2x2GTX -bool3x3GTX -bool4x4GTX - -bool2x3GTX -bool2x4GTX -bool3x2GTX -bool3x4GTX -bool4x2GTX -bool4x3GTX - -__int1GTX -__int2GTX -__int3GTX -__int4GTX - -__int1x1GTX -__int2x2GTX -__int3x3GTX -__int4x4GTX - -__int2x3GTX -__int2x4GTX -__int3x2GTX -__int3x4GTX -__int4x2GTX -__int4x3GTX - -__half1GTX -__half2GTX -__half3GTX -__half4GTX - -__half1x1GTX -__half2x2GTX -__half3x3GTX -__half4x4GTX - -__half2x3GTX -__half2x4GTX -__half3x2GTX -__half3x4GTX -__half4x2GTX -__half4x3GTX - -__float1GTX -__float2GTX -__float3GTX -__float4GTX - -__float1x1GTX -__float2x2GTX -__float3x3GTX -__float4x4GTX - -__float2x3GTX -__float2x4GTX -__float3x2GTX -__float3x4GTX -__float4x2GTX -__float4x3GTX - -__double1GTX -__double2GTX -__double3GTX -__double4GTX - -__double1x1GTX -__double2x2GTX -__double3x3GTX -__double4x4GTX - -__double2x3GTX -__double2x4GTX -__double3x2GTX -__double3x4GTX -__double4x2GTX -__double4x3GTX From 17f1f967bb567f23097aed528ecda27e636efb04 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Fri, 30 Apr 2010 16:50:05 +0100 Subject: [PATCH 05/20] Updated documentation --- doc/doxyfile | 8 +++---- glm/glm.hpp | 67 +++++++++++++--------------------------------------- 2 files changed, 20 insertions(+), 55 deletions(-) diff --git a/doc/doxyfile b/doc/doxyfile index c8d424f0..0f0fccfd 100644 --- a/doc/doxyfile +++ b/doc/doxyfile @@ -31,7 +31,7 @@ PROJECT_NAME = GLM # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = "Version 0.9.A.1" +PROJECT_NUMBER = "Version 0.9.0" # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. @@ -619,9 +619,7 @@ RECURSIVE = YES # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. -EXCLUDE = ../../include/glm/gtx/vecx.hpp \ - ../../include/glm/gtx/matx.hpp \ - ../../include/glm/gtx/statistics_operation.hpp +EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded @@ -1126,7 +1124,7 @@ LATEX_SOURCE_CODE = NO # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. -GENERATE_RTF = YES +GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be diff --git a/glm/glm.hpp b/glm/glm.hpp index ea875f99..6c91fa14 100644 --- a/glm/glm.hpp +++ b/glm/glm.hpp @@ -2,7 +2,7 @@ // OpenGL Mathematics Copyright (c) 2005 - 2010 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2005-01-14 -// Updated : 2009-05-01 +// Updated : 2010-05-30 // Licence : This source is under MIT License // File : glm/glm.hpp /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -11,13 +11,17 @@ * * OpenGL Mathematics (GLM) is a C++ mathematics library for 3D applications based on the OpenGL Shading Language (GLSL) specification. * - * The goal of the project is to provide to 3D programmers math classes and functions that miss in C++ when we use to program with GLSL or any high level GPU language. With GLM, the idea is to have a library that works the same way that GLSL which imply a strict following of GLSL specification for the implementation. + * GLM provides 3D programmers with math classes and functions that are similar to GLSL or any high level GPU programming language. The idea is to have a library that has identical naming conventions and functionalities than GLSL so that when developers know GLSL, they know how to use GLM. * - * However, this project isn't limited by GLSL features. An extension system based on GLSL extensions development conventions allows to extend GLSL capabilities. + * However, this project isn't limited by GLSL features. An extension system, based on the GLSL extension conventions, allows extended capabilities. * - * GLM is release under MIT license and available for all version of GCC from version 3.4 and Visual Studio from version 8.0 as a platform independent library. + * This library can be used with OpenGL but also for software rendering (Raytracing / Rasterisation), image processing and as much contexts as a simple math library could be used for. * - * Any feedback is welcome, please send them to g.truc.creation[NO_SPAM_THANKS]gmail.com. + * GLM is written as a platform independent library and supports the following compilers: - GNU GCC 3.4 and higher - Microsoft Visual Studio 8.0 and higher + * + * The source code is under the MIT licence. + * + * Any feedback is welcome and can be sent to g.truc.creation[at]gmail.com. * */ @@ -58,22 +62,7 @@ namespace glm //! from section 4.1.2 Booleans, 4.1.3 Integers section, 4.1.4 Floats section, //! 4.1.5 Vectors and section 4.1.6 Matrices of GLSL 1.30.8 specification. //! This namespace resolves precision qualifier define in section 4.5 of GLSL 1.30.8 specification. - namespace type - { -/* - //! Scalar types from section 4.1.2 Booleans, 4.1.3 Integers and 4.1.4 Floats of GLSL 1.30.8 specification. - //! This namespace is included in glm namespace. - namespace scalar{} - - //! Vector types from section 4.1.5 of GLSL 1.30.8 specification. - //! This namespace is included in glm namespace. - namespace vector{} - - //! Matrix types from section 4.1.6 of GLSL 1.30.8 specification. - //! This namespace is included in glm namespace. - namespace matrix{} -*/ - } + namespace type{} //! Some of the functions defined in section 8 Built-in Functions of GLSL 1.30.8 specification. //! Angle and trigonometry, exponential, common, geometric, matrix and vector relational functions. @@ -109,44 +98,22 @@ namespace glm #include "./core/func_integer.hpp" #include "./core/func_noise.hpp" #include "./core/_swizzle.hpp" -//#include "./core/_xref2.hpp" -//#include "./core/_xref3.hpp" -//#include "./core/_xref4.hpp" - - - - - - #if(defined(GLM_MESSAGE) && (GLM_MESSAGE & (GLM_MESSAGE_CORE | GLM_MESSAGE_NOTIFICATION))) # pragma message("GLM message: Core library included") #endif//GLM_MESSAGE - - - - #if(defined(GLM_COMPILER) && (GLM_COMPILER & GLM_COMPILER_VC)) - -#define GLM_DEPRECATED __declspec(deprecated) -#define GLM_RESTRICT __restrict -#define GLM_ALIGN(x) __declspec(align(x)) - -//#define aligned(x) __declspec(align(x)) struct - +# define GLM_DEPRECATED __declspec(deprecated) +# define GLM_RESTRICT __restrict +# define GLM_ALIGN(x) __declspec(align(x)) +//# define aligned(x) __declspec(align(x)) struct #else - -#define GLM_DEPRECATED -#define GLM_RESTRICT -#define GLM_ALIGN(x) - +# define GLM_DEPRECATED +# define GLM_RESTRICT +# define GLM_ALIGN(x) #endif//GLM_COMPILER - - - - //////////////////// // check type sizes #ifndef GLM_STATIC_ASSERT_NULL From 1003972abaac386baab194c88f8a513ec4bf2b6d Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Fri, 30 Apr 2010 17:20:04 +0100 Subject: [PATCH 06/20] Updated documentation --- doc/src/bug.xsl | 116 -- doc/src/changelog.xsl | 55 - doc/src/data.xml | 2747 +++++++++++++++++++++-------------------- doc/src/issue.xsl | 120 -- doc/src/util.xsl | 3 - glm/glm.hpp | 4 +- 6 files changed, 1391 insertions(+), 1654 deletions(-) delete mode 100644 doc/src/bug.xsl delete mode 100644 doc/src/changelog.xsl delete mode 100644 doc/src/issue.xsl diff --git a/doc/src/bug.xsl b/doc/src/bug.xsl deleted file mode 100644 index 47f4057a..00000000 --- a/doc/src/bug.xsl +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - - OpenGL Mathematics : Bugs - - - - - - -
- OpenGL Mathematics -
- - - - - -
- -
- - G-Truc Creation - - - -
- - -
-
Bugs
-
- -
-
- - -
- )
-
-
- -
-
- STATUE : , -
-
-
-
- - -
- : -
-
- -
diff --git a/doc/src/changelog.xsl b/doc/src/changelog.xsl deleted file mode 100644 index eb440b4b..00000000 --- a/doc/src/changelog.xsl +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - OpenGL Mathematics : Changelog - - - - - - - - - - - -
-
- OpenGL Mathematics -
- -
- - -
- - -
- - -
- :
-
- -
_________________
-
-
- - -
- -
-
-
- -
diff --git a/doc/src/data.xml b/doc/src/data.xml index 70e42103..57b9b526 100644 --- a/doc/src/data.xml +++ b/doc/src/data.xml @@ -2,69 +2,73 @@ -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + @@ -91,779 +95,779 @@
-
- -
+
+ +
- - Euler angles operation with specified rotation order - Cast to other toolkit (D3D, some engines) - Arrays - SIMD optimisations - Standard output stream - In place operations - - - GLSL 1.30, more templated code, better API documentation, use of CMake. - Hint. - First GTC extensions. - More tests. - Arrays. - SIMD optimizations. - In place operations. - - - bit rotation. - frexp - RGBE. - row matrices. - Optimize *mat4 inverse. - fixed numbers - row and column major matrices - - - - Promoted double types - - - Removed global inclusion. - Removed auto cast setup. - Removed compatibility setup. - Clean up and simplify setup.hpp - Fixed website links - - - Added missing inline. - Added common vecType for vector based types. - Updated copyright date. - Refactoring of type precision - GLM types are now more generic - Extract vec1 code - Reduced namespaces count - - - GLM 0.8.4.4 released. - - - Fixed warnings. - - - Added texcoord wrapping through GLM_IMG_wrap extension. - - - Reorganized SVN directory. - - - GLM 0.8.4.3 released. - - - Fixed half arithmetic. - - - Added scalars support for GLM_IMG_multiple. - - - Fixed setup defines. - - - Added GLM_IMG_multiple extensions and unit tests. - - - GLM 0.8.4.2 released. - - - Fixed half. - - - GLM 0.8.4.1 released. - - - Updated documentation. - - - Updated manual. - Added static assert implementation. - Removed unuse GLM_SWIZZLE_FUNC. - - - Some progress on fixing GLM for MacOSX comflics. - - - Fixed GLM_GTX_quaternion extension: cross and intermediate. - - - Fixed quaternion angle. - - - Updated documentation. - GLM 0.8.4.0 released. - - - Added Visual Studio 2010 support. - Fixed build on GCC. - Added GCC 4.4 support. - - - Added no initilization constructor to vec4. - - - Added no initilization constructor to mat4. - Updated GLM_GTC_matrix_transform: faster rotate. - - - Added GLM_GTX_matrix_operation: build diagonal matrix. - Updated GLM_GTC_matrix_transform: faster scaling. - - - Fixed transpose function for mat4x3. - Optimized translate function for mat4 matrix: ~184 cycles instead of ~592 cycles on Q6600. - - - Fixed OpenGL dependence. - Added OpenGL 3 dependence. - - - Fixed parameter definition and definition mismatch. - - - Fixed GLM_GTC_matrix_projection. - Updated GLM_GTX_transform: Added missing entry points. - GLM 0.8.3.5 released. - - - Move inverse function to core following GLSL 1.4 specification. - Move determinant function to core following GLSL 1.5 specification. - GLM 0.8.3.4 released. - - - Fixed GLM_GTX_matrix_query extension: Fixed row_size and col_size() calls. - Fixed GLM_GTX_matrix_access extension: Fixed row_size calls. - - - Fixed GLM_GTX_string_cast extension: Build on GCC 4. - Fixed GLM_GTC_quaternion extension: rotate function build. - - - Fixed GLM_GTC_matrix_transform extension: Fixed matrix operation order; like OpenGL instead of like Direct3D. - GLM 0.8.3.3 released. - - - Fixed GLM_GTX_rotate_vector extension: Fixed rotate function. - - - Fixed matrix external operators. - - - Added GLM_GTC_type_precision extension. - GLM 0.8.3.2 released. - - - Fixed GLM_GTC_matrix_transform: Fixed mat4 inverse function. - - - Added GLM_GTC_quaternion extension. - Updated GLM_GTC_quaternion extension. - Fixed GLM_GTC_matrix_transform extension. - - - GLM 0.8.3.1 released. - - - Updated GLM_GTX_bit extension: Added lowestBit functions. - Fixed old extention inclusion method. - - - Updated sse mat4 implementation. - - - Updated GLM_GTX_bit extension: Added bitRevert, bitRotateRight and bitRotateLeft functions. - - - Added intrinsic like functions for mat4 product and inverse. - - - Added intrinsic like functions for mat4 and vec4 products. - - - Fixed GLM_GTX_type_ptr extension. - GLM 0.8.3.0 released. - - - Fixed GLM_GTC_matrix_projection: glm::project build. - - - Added new extensions inclusion system. - - - Fixed GLM_GTX_determinant extension. - Reorganized extensions. - Removed GLM_GTX_vector_comp_mult and GLM_GTX_mat4x3 extensions. - Renamed .h files to .hpp. - - - Added GLM_GTC_half_float. - - - Fixed GLM_GTX_perpendicular extension. - Fixed GLM_GTX_matrix_projection extension. - Fixed GLM_GTX_transform2 extension. - - - Added GLM_GTC_matrix_operation. - Added GLM_GTC_matrix_transform. - Added GLM_GTC_matrix_projection. - Added GLM_GTC_double_float. - - - Fixed bug 2774738. - Fixed bug 2774015. - - - GLM 0.8.2.3 released. - - - Updaded mix function: Makes it more flexible, types wise. - - - Fixed GLM_GTX_perpendicular and GLM_GTX_projection. - Added GLM_GTX_radial_gradient extensions. - - - Fixed GCC 4.3 pedantic build. - GLM 0.8.2.2 released. - - - Removed all deprecated ARB conventions. - - - Fixed highp_int_t and highp_uint_t with Linux 64. - Fixed GCC 4.3 'extra ;' with pedentic build. - - - Fixed build. - GLM 0.8.2.1 released. - - - Fixed build. - Added extensions build test. - - - GLM 0.8.2 released. - - - Fixed GLM_GTX_intersect: intersectRayTriangle. - - - Fixed vectors access operators. - Fixed unresolved with quaternions. - - - Fixed GLM_GTX_norm: Include issue. - - - Fixed left value swizzle operators. - - - Fixed GLM_GTX intersect extension: intersectRayTriangleGTX with GCC. - Typo. - - - Fixed GLM_GTX inverse_transpose extension. - - - Updated quaternion implementation. - - - Added GLM_GTX_raw_data extension. - - - Updated GLM_GTX_bit extension: Added mask function. - - - Updated GLM_GTX_bit extension: Added extractField function. - Fixed STATIC_ASSERT with 64bits integers. - - - GLM 0.8.1 released. - - - Fixed mix function with boolean parameter. - Fixed value_size issue. - - - Fixed GLM_GTX_component_wise extension. - Added GLM_GTX_color_space_YCoCg extension. - - - Added GLM_GTX_comparison extension: Defined comparison operators for vectors. - - - Added GLM_GTX_log_base extension. - - - Fixed 64 bits integers with GCC. - Deleted deprecated half number setup options. - Updated GLM_GTX_number_precision: Clean up and added missing type definitions. - Updated GLM_GTX_color_cast: Clean up and fixes. - - - Updated manuel and documentation. - GLM 0.8.0 final released. - - - Fixed glm::size_t possible collisions with std::size_t. glm::size_t is now named glm::sizeType. - Updated GLM_VIRTREV_address extension: Added none const fonctions. - Updated GLM_GTX_double_float extension: Typo. - Added new API to use extension. - - - Added logos in varius resolutions. - - - Updated website. - Added website builder. - - - Updated GLM_GTX_number_precision: No more warning with type size tests. - Fixed none consistent size_t. - - - Updated website. - - - Fixed build. - Updated manual. - GLM 0.8.0 beta3 released. - - - Added GLM_GTX_reciprocal extension: Define sec, csc, cot, asec, acsc, acot, sech, csch, coth, asech, acsch and acoth functions. - - - Updated GLM_GTX_euler_angles extension: Added functions to build rotation matrices. - - - Fixed GLM_GTX_color_space: Fixed conflits with swizzle operators. - Fixed virtrev.h, didn't build. - Fixed genType build. - Fixed GLM_GTX_compatibility build. - Added GLM_VIRTREV_address: Get the address of internal vector or matrix contents. - Fixed code typo and clean up. - - - Added genType class. For long term base class for all types though template specialization. - Updated project directory. - Added CMakeFile in test directory. - Fixed code typo and clean up. - Fixed GLM_GTX_string_cast: Missing some matrix definitions, some wrong behaviours with matrices. - - - Added glm::sizeType type which is used to defined size of all vectors and matrices. Defined as std::size_t. - row_size, col_size and is_matrix are now functions. - Fixed use inline on *mat4 function declaration. - Deleted auto cast from *mat4x3. - Fixed missing ++ -- and - operators to some matrix types. - Fixed typo. - - - GLM 0.8.0 beta2 released. - - - value_size and is_vector are now functions. - - - Added GLM_USE_ANONYMOUS_UNION: To use anonymous union to provide multiple component names access for class valType. Visual C++ only. - Removed noise function from documentation. - - - Fixed build with GCC. - Updated manual. - - - Updated GLM_GTX_bit implementation. - Added GLM_USE_ONLY_XYZW to disable multiple component names. - Updated GLM_GTX_euler_angles extension: added yawPitchRoll function. - - - Fixed half vector build. - Updated GLM_GTX_vector_angle: Added orientedAngleFromRef function. - Deprecated GLM_GTX_mul extension. Features moved in GLM_GTX_verbose_operator. - Updated GLM_GTX_verbose_operator: Added mad function. - - - Fixed missing inline in tvec3 and tvec4 definisions. - New implementation of hvec3 thought specialisation of tvec3 template. - New implementation of hvec4 thought specialisation of tvec4 template. - Fixed tvec4 operators than where applied just on 3 components. - - - Added build option for build that support anonymous structure. - Fixed missing inline in tvec2 definision. - New implementation of hvec2 thought specialisation of tvec2 template. - - - Updated documentation. - GLM 0.8.0 beta1 released. - - - Fixed static asserts within vector and matrix types. - Updated mix function implementation, support for boolean vectors. - - - Fixed static asserts. - Added some asserts. - Updated matrices operator[]. - - - Added GLM_VIRTREV_equal_operator: Operators that compare vectors. - Fixed build errors from static asserts. - - - Fixed build errors with GCC. - Fixed func_trigonometric.h encoding. - - - Deleted GLM_GTX_INCLUDED. - Fixed build errors. - Fixed GLM_GTX_random: Bad assert definition. - - - Updated manual. - Updated swizzle operators with swizzle function. - Added modf definition. - - - Added namespaces to sort type and function in the API documentation. - Deleted some documentations from {__}*GTX types and functions from extensions. - Updated vectors and matrices documentation. - Updated scalars and precisions documentation. - Fixed some vectors and matrices declaration missing in some cases. - Updated overall documentation. - - - Included all types in type namespace. - - - Added type namespace in glm namespace for documentation purpose. - - - Added modf definition for vec2, vec3 and vec4. - Updated static assert to exponential, geometric, matrix, noise, trigonometric and vector relational functions. - Added GLM_GTC_matrix_transformation extensions: API and translate, rotate and scale definisions. - Deprecated GLM_GTX_gpu_shader4, GLM_GTX_hyperbolic, GLM_GTX_flexible_mix, GLM_GTX_round. - Added definition of mix with last parameter being booleans. - Added hint classes. - Updated GLM_GTX_integer, GLM_GTX_unsigned_int, GLM_GTX_half and GLM_GTX_double_float extensions. - - - Added trait code (class type) to detect bool, float, int and uint numbers. - Updated static assert to common functions. - - - Updated noise function definitions... Still unsure for staying in GLM 0.8.0. - - - Updated overall documentation, doxygen documentation. - - - Updated documentation and implementation of all matrix functions. - Added declaration of main functions for each function group namespace. - Updated documentation and API of all noise functions... Should be deleted becose of bad implementation? - - - Updated documentation and implementation of all vector relational functions. - Added transpose_type typedef to all matrix types. - Added is_matrix static constantes to all matrix types for static assert usage. - Added is_vector static constantes to all vector types for static assert usage. - - - Updated documentation and implementation of all geometric functions. - - - Updated documentation and implementation of all exponential functions. - - - Added isinf and isnan GLSL 1.3 functions. - Updated common functions code, mostly syntax. - Added trunc, round and roundEven GLSL 1.3 functions. - Added sinh, cosh, tanh, asinh, acosh and atanh GLSL 1.3 functions. - Updated documentation and implementation of all trigonometric functions. - - - Added bool_type implementation detail to vector types. - - - Added API and documentation of all common functions. - - - Updated GLM_GTX_extensions: Define operator* as a cross product. Still in WIP... - - - Updated *vec2 and *vec3 with precision types missed and documentation. - - - Fixed 2085925 bug: rotateGTX didn't use it quaternion parameter. - - - Added test files. - Updated *vec4 with precision types missed and documentation. - - - Renamed implementation files. - Updated type pre-declarations. - - - Fixed GLM_GTX_matrix_projection extension: frustum function gave a wrong result. - - - Updated matrix types functions and extensions according new vectors types. - - - Added new vector types implementation. - - - Added support for new GLSL 1.30 precision model. - - - Added GLSL 1.30.08 unsigned int types support - - - Added detail::vec1 type. - Added detail::desc for types description and higher templatisation. - - - Started work on GLM 0.8.x based on GLSL 1.3 specification. - Visual Studio .NET 2003 (7.1) is now deprecated. - GLM_FORCE_HALF_COMPATIBILITY is now deprecated. - GLM_AUTO_CAST is now deprecated. - - - Updated GLM_GTX_fast_square_root implementation: Updated fastInverseSqrt - - - Updated documentation. - GLM 0.7.6 released. - - - gl_svec* (for GLshort) added in GLM_virtrev_gl extension. - Updated detail implementation of vector types. - Make Visual C++ build with Visual C++ extensions disabled. - Rename "not" to "not_" for compatibility. - Fixed GLM_GTX_fast_square_root build. - - - Fixed GLM_GTX_component_wise extension. - - - Updated mix functions for optimization purpose. - Fixed mix functions static assert. - Updated test files. - Updated GLM_GTX_statistics_operation. - - - Fixed GLM_GTX_bit extension: isPowerOfTwoGTX works for signed int too. - Updated GLM_GTX_norm extension: Added distance2, l2norm and lxNorm functions. - Added some boost static assert. - - - Added GLM_GTX_std_based_type: Types based on C++ conventions. - Added files for extension tests. - - - Fixed GLM_GTX_fast_square_root: Updated fastDistance. - - - Fixed GLM_GTX_fast_square_root: Wrong const and updated fastLenght. - Optimized mix core function - - - Fixed GLM_GTX_epsilon: Wrong function definitions for y, z and w components. - - - Fixed GLM_GTX_flexible: Flexible with scalar only failed. - Fixed GLM_GTX_quaternion: One rotate overloaded function undefined. - - - Some fixes on GLM_GTX_intersect extension. - - - GLM 0.7.5 released. - - - Updated documentation. - - - Updated message system. - - - Added new message system. - - - Fixed GLM_GTX_normal extension. - - - Updated GLM_GTX_unsigned_int extension. (New typedef extensions) - - - Added new precompiler system. - - - Increase C++ conformance. - - - Fixed build errors. - GLM 0.7.4 released. - - - Updated external dependencies system. - Updated manual. - Fixed GLM_GTX_random extension: Fixed build with GCC. - Fixed GLM_GTX_string_cast extension: Fixed build with GCC 3.4 due to GCC anonymuous namespace bug. - - - Fixed GLM_GTX_transform2 extension: scaleBias didn't built. - - - Added GLM_VIRTREV_xstream extension: XML output for GLM types. - Added external library system - - - Updated GLM_GTX_string_cast extension: Support of non-square matrices. - GLM 0.7.3 released. - - - Fixed mat2 product. - - - Fixed GLM_GTX_transform2 dependencies. - - - Added GLM_VIRTREV_gl extension: Vector and matrix integration with OpenGL. - - - Updated GLM_GTX_number_precision extension: Added uint type. - Added GLM_GTX_string_cast extension: Create formated string from GLM type instances. - Updated GLM_GTX_transform2: added scaleBias matrix build - - - GLM 0.7.2 released. - - - Added GLM_AUTO_CAST setup option. - Updated documentation - - - Updated GLM_GTX_inverse, added affine inverse functions for fast matrix inverts. - Updated overall documentation - Added trait typedef to all GLM data types - - - Updated GLM_GTX_compatibility documentation. - Fixed GLM_GTX_random, gauss functions didn't build. - - - Added few SSE code. - Fixed matrix projections. - - - Added GLM_SWIZZLE_FUNC swizzle option. - - - Updated GLM_GTX_euler_angles documentation. - - - Updated documentation. - - - Fixed GLM_GTX_associated_min_max build on GCC. - Updated GLM_GTX_matrix_projection. - GLM 0.7.1 released. - - - GLM 0.7.0 released. - - - Updated manual. - - - Updated documentation. - Added GLM_GTX_associated_min_max extension. - - - Fixed not function with GCC. - - - Fixed interger pow function for the case of a null power. - - - Fixed mat4x2 and mat4x3 GCC build. - Updated documentation. - Reseted glmsetup.h to default values. - - - Fixed missing xvec4 constructor with bool argument definition. - Fixed namespace collision in quaternion inverse function. - Fixed swizzle operators involved in operations. - Change license from GNU LGPL to MIT. - - - Fixed missing xvec4 ++ and -- operator definition. - - - Move some implementation details into detail namespace. - + + Euler angles operation with specified rotation order + Cast to other toolkit (D3D, some engines) + Arrays + SIMD optimisations + Standard output stream + In place operations + + + GLSL 1.30, more templated code, better API documentation, use of CMake. + Hint. + First GTC extensions. + More tests. + Arrays. + SIMD optimizations. + In place operations. + + + bit rotation. + frexp + RGBE. + row matrices. + Optimize *mat4 inverse. + fixed numbers + row and column major matrices + + + + Promoted double types + + + Removed global inclusion. + Removed auto cast setup. + Removed compatibility setup. + Clean up and simplify setup.hpp + Fixed website links + + + Added missing inline. + Added common vecType for vector based types. + Updated copyright date. + Refactoring of type precision + GLM types are now more generic + Extract vec1 code + Reduced namespaces count + + + GLM 0.8.4.4 released. + + + Fixed warnings. + + + Added texcoord wrapping through GLM_IMG_wrap extension. + + + Reorganized SVN directory. + + + GLM 0.8.4.3 released. + + + Fixed half arithmetic. + + + Added scalars support for GLM_IMG_multiple. + + + Fixed setup defines. + + + Added GLM_IMG_multiple extensions and unit tests. + + + GLM 0.8.4.2 released. + + + Fixed half. + + + GLM 0.8.4.1 released. + + + Updated documentation. + + + Updated manual. + Added static assert implementation. + Removed unuse GLM_SWIZZLE_FUNC. + + + Some progress on fixing GLM for MacOSX comflics. + + + Fixed GLM_GTX_quaternion extension: cross and intermediate. + + + Fixed quaternion angle. + + + Updated documentation. + GLM 0.8.4.0 released. + + + Added Visual Studio 2010 support. + Fixed build on GCC. + Added GCC 4.4 support. + + + Added no initilization constructor to vec4. + + + Added no initilization constructor to mat4. + Updated GLM_GTC_matrix_transform: faster rotate. + + + Added GLM_GTX_matrix_operation: build diagonal matrix. + Updated GLM_GTC_matrix_transform: faster scaling. + + + Fixed transpose function for mat4x3. + Optimized translate function for mat4 matrix: ~184 cycles instead of ~592 cycles on Q6600. + + + Fixed OpenGL dependence. + Added OpenGL 3 dependence. + + + Fixed parameter definition and definition mismatch. + + + Fixed GLM_GTC_matrix_projection. + Updated GLM_GTX_transform: Added missing entry points. + GLM 0.8.3.5 released. + + + Move inverse function to core following GLSL 1.4 specification. + Move determinant function to core following GLSL 1.5 specification. + GLM 0.8.3.4 released. + + + Fixed GLM_GTX_matrix_query extension: Fixed row_size and col_size() calls. + Fixed GLM_GTX_matrix_access extension: Fixed row_size calls. + + + Fixed GLM_GTX_string_cast extension: Build on GCC 4. + Fixed GLM_GTC_quaternion extension: rotate function build. + + + Fixed GLM_GTC_matrix_transform extension: Fixed matrix operation order; like OpenGL instead of like Direct3D. + GLM 0.8.3.3 released. + + + Fixed GLM_GTX_rotate_vector extension: Fixed rotate function. + + + Fixed matrix external operators. + + + Added GLM_GTC_type_precision extension. + GLM 0.8.3.2 released. + + + Fixed GLM_GTC_matrix_transform: Fixed mat4 inverse function. + + + Added GLM_GTC_quaternion extension. + Updated GLM_GTC_quaternion extension. + Fixed GLM_GTC_matrix_transform extension. + + + GLM 0.8.3.1 released. + + + Updated GLM_GTX_bit extension: Added lowestBit functions. + Fixed old extention inclusion method. + + + Updated sse mat4 implementation. + + + Updated GLM_GTX_bit extension: Added bitRevert, bitRotateRight and bitRotateLeft functions. + + + Added intrinsic like functions for mat4 product and inverse. + + + Added intrinsic like functions for mat4 and vec4 products. + + + Fixed GLM_GTX_type_ptr extension. + GLM 0.8.3.0 released. + + + Fixed GLM_GTC_matrix_projection: glm::project build. + + + Added new extensions inclusion system. + + + Fixed GLM_GTX_determinant extension. + Reorganized extensions. + Removed GLM_GTX_vector_comp_mult and GLM_GTX_mat4x3 extensions. + Renamed .h files to .hpp. + + + Added GLM_GTC_half_float. + + + Fixed GLM_GTX_perpendicular extension. + Fixed GLM_GTX_matrix_projection extension. + Fixed GLM_GTX_transform2 extension. + + + Added GLM_GTC_matrix_operation. + Added GLM_GTC_matrix_transform. + Added GLM_GTC_matrix_projection. + Added GLM_GTC_double_float. + + + Fixed bug 2774738. + Fixed bug 2774015. + + + GLM 0.8.2.3 released. + + + Updaded mix function: Makes it more flexible, types wise. + + + Fixed GLM_GTX_perpendicular and GLM_GTX_projection. + Added GLM_GTX_radial_gradient extensions. + + + Fixed GCC 4.3 pedantic build. + GLM 0.8.2.2 released. + + + Removed all deprecated ARB conventions. + + + Fixed highp_int_t and highp_uint_t with Linux 64. + Fixed GCC 4.3 'extra ;' with pedentic build. + + + Fixed build. + GLM 0.8.2.1 released. + + + Fixed build. + Added extensions build test. + + + GLM 0.8.2 released. + + + Fixed GLM_GTX_intersect: intersectRayTriangle. + + + Fixed vectors access operators. + Fixed unresolved with quaternions. + + + Fixed GLM_GTX_norm: Include issue. + + + Fixed left value swizzle operators. + + + Fixed GLM_GTX intersect extension: intersectRayTriangleGTX with GCC. + Typo. + + + Fixed GLM_GTX inverse_transpose extension. + + + Updated quaternion implementation. + + + Added GLM_GTX_raw_data extension. + + + Updated GLM_GTX_bit extension: Added mask function. + + + Updated GLM_GTX_bit extension: Added extractField function. + Fixed STATIC_ASSERT with 64bits integers. + + + GLM 0.8.1 released. + + + Fixed mix function with boolean parameter. + Fixed value_size issue. + + + Fixed GLM_GTX_component_wise extension. + Added GLM_GTX_color_space_YCoCg extension. + + + Added GLM_GTX_comparison extension: Defined comparison operators for vectors. + + + Added GLM_GTX_log_base extension. + + + Fixed 64 bits integers with GCC. + Deleted deprecated half number setup options. + Updated GLM_GTX_number_precision: Clean up and added missing type definitions. + Updated GLM_GTX_color_cast: Clean up and fixes. + + + Updated manuel and documentation. + GLM 0.8.0 final released. + + + Fixed glm::size_t possible collisions with std::size_t. glm::size_t is now named glm::sizeType. + Updated GLM_VIRTREV_address extension: Added none const fonctions. + Updated GLM_GTX_double_float extension: Typo. + Added new API to use extension. + + + Added logos in varius resolutions. + + + Updated website. + Added website builder. + + + Updated GLM_GTX_number_precision: No more warning with type size tests. + Fixed none consistent size_t. + + + Updated website. + + + Fixed build. + Updated manual. + GLM 0.8.0 beta3 released. + + + Added GLM_GTX_reciprocal extension: Define sec, csc, cot, asec, acsc, acot, sech, csch, coth, asech, acsch and acoth functions. + + + Updated GLM_GTX_euler_angles extension: Added functions to build rotation matrices. + + + Fixed GLM_GTX_color_space: Fixed conflits with swizzle operators. + Fixed virtrev.h, didn't build. + Fixed genType build. + Fixed GLM_GTX_compatibility build. + Added GLM_VIRTREV_address: Get the address of internal vector or matrix contents. + Fixed code typo and clean up. + + + Added genType class. For long term base class for all types though template specialization. + Updated project directory. + Added CMakeFile in test directory. + Fixed code typo and clean up. + Fixed GLM_GTX_string_cast: Missing some matrix definitions, some wrong behaviours with matrices. + + + Added glm::sizeType type which is used to defined size of all vectors and matrices. Defined as std::size_t. + row_size, col_size and is_matrix are now functions. + Fixed use inline on *mat4 function declaration. + Deleted auto cast from *mat4x3. + Fixed missing ++ -- and - operators to some matrix types. + Fixed typo. + + + GLM 0.8.0 beta2 released. + + + value_size and is_vector are now functions. + + + Added GLM_USE_ANONYMOUS_UNION: To use anonymous union to provide multiple component names access for class valType. Visual C++ only. + Removed noise function from documentation. + + + Fixed build with GCC. + Updated manual. + + + Updated GLM_GTX_bit implementation. + Added GLM_USE_ONLY_XYZW to disable multiple component names. + Updated GLM_GTX_euler_angles extension: added yawPitchRoll function. + + + Fixed half vector build. + Updated GLM_GTX_vector_angle: Added orientedAngleFromRef function. + Deprecated GLM_GTX_mul extension. Features moved in GLM_GTX_verbose_operator. + Updated GLM_GTX_verbose_operator: Added mad function. + + + Fixed missing inline in tvec3 and tvec4 definisions. + New implementation of hvec3 thought specialisation of tvec3 template. + New implementation of hvec4 thought specialisation of tvec4 template. + Fixed tvec4 operators than where applied just on 3 components. + + + Added build option for build that support anonymous structure. + Fixed missing inline in tvec2 definision. + New implementation of hvec2 thought specialisation of tvec2 template. + + + Updated documentation. + GLM 0.8.0 beta1 released. + + + Fixed static asserts within vector and matrix types. + Updated mix function implementation, support for boolean vectors. + + + Fixed static asserts. + Added some asserts. + Updated matrices operator[]. + + + Added GLM_VIRTREV_equal_operator: Operators that compare vectors. + Fixed build errors from static asserts. + + + Fixed build errors with GCC. + Fixed func_trigonometric.h encoding. + + + Deleted GLM_GTX_INCLUDED. + Fixed build errors. + Fixed GLM_GTX_random: Bad assert definition. + + + Updated manual. + Updated swizzle operators with swizzle function. + Added modf definition. + + + Added namespaces to sort type and function in the API documentation. + Deleted some documentations from {__}*GTX types and functions from extensions. + Updated vectors and matrices documentation. + Updated scalars and precisions documentation. + Fixed some vectors and matrices declaration missing in some cases. + Updated overall documentation. + + + Included all types in type namespace. + + + Added type namespace in glm namespace for documentation purpose. + + + Added modf definition for vec2, vec3 and vec4. + Updated static assert to exponential, geometric, matrix, noise, trigonometric and vector relational functions. + Added GLM_GTC_matrix_transformation extensions: API and translate, rotate and scale definisions. + Deprecated GLM_GTX_gpu_shader4, GLM_GTX_hyperbolic, GLM_GTX_flexible_mix, GLM_GTX_round. + Added definition of mix with last parameter being booleans. + Added hint classes. + Updated GLM_GTX_integer, GLM_GTX_unsigned_int, GLM_GTX_half and GLM_GTX_double_float extensions. + + + Added trait code (class type) to detect bool, float, int and uint numbers. + Updated static assert to common functions. + + + Updated noise function definitions... Still unsure for staying in GLM 0.8.0. + + + Updated overall documentation, doxygen documentation. + + + Updated documentation and implementation of all matrix functions. + Added declaration of main functions for each function group namespace. + Updated documentation and API of all noise functions... Should be deleted becose of bad implementation? + + + Updated documentation and implementation of all vector relational functions. + Added transpose_type typedef to all matrix types. + Added is_matrix static constantes to all matrix types for static assert usage. + Added is_vector static constantes to all vector types for static assert usage. + + + Updated documentation and implementation of all geometric functions. + + + Updated documentation and implementation of all exponential functions. + + + Added isinf and isnan GLSL 1.3 functions. + Updated common functions code, mostly syntax. + Added trunc, round and roundEven GLSL 1.3 functions. + Added sinh, cosh, tanh, asinh, acosh and atanh GLSL 1.3 functions. + Updated documentation and implementation of all trigonometric functions. + + + Added bool_type implementation detail to vector types. + + + Added API and documentation of all common functions. + + + Updated GLM_GTX_extensions: Define operator* as a cross product. Still in WIP... + + + Updated *vec2 and *vec3 with precision types missed and documentation. + + + Fixed 2085925 bug: rotateGTX didn't use it quaternion parameter. + + + Added test files. + Updated *vec4 with precision types missed and documentation. + + + Renamed implementation files. + Updated type pre-declarations. + + + Fixed GLM_GTX_matrix_projection extension: frustum function gave a wrong result. + + + Updated matrix types functions and extensions according new vectors types. + + + Added new vector types implementation. + + + Added support for new GLSL 1.30 precision model. + + + Added GLSL 1.30.08 unsigned int types support + + + Added detail::vec1 type. + Added detail::desc for types description and higher templatisation. + + + Started work on GLM 0.8.x based on GLSL 1.3 specification. + Visual Studio .NET 2003 (7.1) is now deprecated. + GLM_FORCE_HALF_COMPATIBILITY is now deprecated. + GLM_AUTO_CAST is now deprecated. + + + Updated GLM_GTX_fast_square_root implementation: Updated fastInverseSqrt + + + Updated documentation. + GLM 0.7.6 released. + + + gl_svec* (for GLshort) added in GLM_virtrev_gl extension. + Updated detail implementation of vector types. + Make Visual C++ build with Visual C++ extensions disabled. + Rename "not" to "not_" for compatibility. + Fixed GLM_GTX_fast_square_root build. + + + Fixed GLM_GTX_component_wise extension. + + + Updated mix functions for optimization purpose. + Fixed mix functions static assert. + Updated test files. + Updated GLM_GTX_statistics_operation. + + + Fixed GLM_GTX_bit extension: isPowerOfTwoGTX works for signed int too. + Updated GLM_GTX_norm extension: Added distance2, l2norm and lxNorm functions. + Added some boost static assert. + + + Added GLM_GTX_std_based_type: Types based on C++ conventions. + Added files for extension tests. + + + Fixed GLM_GTX_fast_square_root: Updated fastDistance. + + + Fixed GLM_GTX_fast_square_root: Wrong const and updated fastLenght. + Optimized mix core function + + + Fixed GLM_GTX_epsilon: Wrong function definitions for y, z and w components. + + + Fixed GLM_GTX_flexible: Flexible with scalar only failed. + Fixed GLM_GTX_quaternion: One rotate overloaded function undefined. + + + Some fixes on GLM_GTX_intersect extension. + + + GLM 0.7.5 released. + + + Updated documentation. + + + Updated message system. + + + Added new message system. + + + Fixed GLM_GTX_normal extension. + + + Updated GLM_GTX_unsigned_int extension. (New typedef extensions) + + + Added new precompiler system. + + + Increase C++ conformance. + + + Fixed build errors. + GLM 0.7.4 released. + + + Updated external dependencies system. + Updated manual. + Fixed GLM_GTX_random extension: Fixed build with GCC. + Fixed GLM_GTX_string_cast extension: Fixed build with GCC 3.4 due to GCC anonymuous namespace bug. + + + Fixed GLM_GTX_transform2 extension: scaleBias didn't built. + + + Added GLM_VIRTREV_xstream extension: XML output for GLM types. + Added external library system + + + Updated GLM_GTX_string_cast extension: Support of non-square matrices. + GLM 0.7.3 released. + + + Fixed mat2 product. + + + Fixed GLM_GTX_transform2 dependencies. + + + Added GLM_VIRTREV_gl extension: Vector and matrix integration with OpenGL. + + + Updated GLM_GTX_number_precision extension: Added uint type. + Added GLM_GTX_string_cast extension: Create formated string from GLM type instances. + Updated GLM_GTX_transform2: added scaleBias matrix build + + + GLM 0.7.2 released. + + + Added GLM_AUTO_CAST setup option. + Updated documentation + + + Updated GLM_GTX_inverse, added affine inverse functions for fast matrix inverts. + Updated overall documentation + Added trait typedef to all GLM data types + + + Updated GLM_GTX_compatibility documentation. + Fixed GLM_GTX_random, gauss functions didn't build. + + + Added few SSE code. + Fixed matrix projections. + + + Added GLM_SWIZZLE_FUNC swizzle option. + + + Updated GLM_GTX_euler_angles documentation. + + + Updated documentation. + + + Fixed GLM_GTX_associated_min_max build on GCC. + Updated GLM_GTX_matrix_projection. + GLM 0.7.1 released. + + + GLM 0.7.0 released. + + + Updated manual. + + + Updated documentation. + Added GLM_GTX_associated_min_max extension. + + + Fixed not function with GCC. + + + Fixed interger pow function for the case of a null power. + + + Fixed mat4x2 and mat4x3 GCC build. + Updated documentation. + Reseted glmsetup.h to default values. + + + Fixed missing xvec4 constructor with bool argument definition. + Fixed namespace collision in quaternion inverse function. + Fixed swizzle operators involved in operations. + Change license from GNU LGPL to MIT. + + + Fixed missing xvec4 ++ and -- operator definition. + + + Move some implementation details into detail namespace. + Fixed cast between matrices of different sizes. - - Fixed matNxM type cast to other matNxM type. - - - Fixed GLM_GTX_matrix_projection extension. - - - GLM 0.6.4 released. - - - Fixed swizzle operators. - - - Fixed GLM_GTX_matrix_selection extension. - - - Updated GLM_GTX_color_space extension. Added luminosity function. - - - GLM 0.6.3 released. - - - Fixed 3DSMax SDK conflict with GLM. - - - Updated GLM_GTX_quaternion. Added sqrt function. - - - Updated GLM_GTX_random extension. - Updated GLM_GTX_half extension. - - - Fixed matrices operator const T*() const. - - - Fixed GLM_GTX_normalize_dot extension. - GLM 0.6.2 released. - - - GLM 0.6.1 released. - - + + Fixed matNxM type cast to other matNxM type. + + + Fixed GLM_GTX_matrix_projection extension. + + + GLM 0.6.4 released. + + + Fixed swizzle operators. + + + Fixed GLM_GTX_matrix_selection extension. + + + Updated GLM_GTX_color_space extension. Added luminosity function. + + + GLM 0.6.3 released. + + + Fixed 3DSMax SDK conflict with GLM. + + + Updated GLM_GTX_quaternion. Added sqrt function. + + + Updated GLM_GTX_random extension. + Updated GLM_GTX_half extension. + + + Fixed matrices operator const T*() const. + + + Fixed GLM_GTX_normalize_dot extension. + GLM 0.6.2 released. + + + GLM 0.6.1 released. + + Added GLM_GTX_normalize_dot extension: Faster way to normalize parameters before a dot product - - Fixed namespace error on GLM_GTX_matx extension - + + Fixed namespace error on GLM_GTX_matx extension + Added GLM_GTX_flexible_mix extension: mix function can take different types parameters @@ -888,7 +892,7 @@ Updated GLM_GTX_random extension: Gauss distribution, spherical distribution, linear distribution. - Fixed namespace issues with Visual Studio 8.0 SP1. + Fixed namespace issues with Visual Studio 8.0 SP1. Updated GLM_GTX_gpu_shader4 extension: Add bit operators. @@ -1184,7 +1188,7 @@ Added GLM_GTX_fast_square_root extension to wishlist in position 19. Added GLM_GTX_inverse_transpose extension to wishlist in position 20. - Fixed missing of vec4 * mat4 operator. + Fixed missing of vec4 * mat4 operator. Reorganization of extensions. @@ -1199,7 +1203,7 @@ Updated GLM_GTX_projection extension. - + Added GLM_GTX_transform2 extension to wishlist in position 18. @@ -1519,11 +1523,36 @@ + + + + + - + + + + GLM 0.9.B.2 (zip, 1.07 MB) + GLM 0.9.B.2 (7z, 555 KB) + + + + + A new development version of GLM 0.9 is available. + + + This version is based on GLSL 4.0 and supports the new common and integer functions. Also a long and frequently asked feature has been implemented: inplicit conversions. + However, the rules defining implicit conversions by GLSL 4.0 are quite weaked and can't really be apply in C++. + + + Reaching the beta status, this new features close the feature list of GLM 0.9. + Further development releases may happen before the final release. + + GLM 0.9.B.1 (zip, 964 KB) + GLM 0.9.B.1 (7z, 414 KB) + + Groove @@ -1531,438 +1560,437 @@ GLM 0.9.A.2 (zip, 1.3 MB) GLM 0.9.A.2 (7z, 726 KB) + + + + Groove + + First step until a major release for GLM with this first alpha of GLM 0.9. + + + This version brings a large internal redesign to improve the library reliability and optimized some parts. + It removed the deprecated features and API which implies that GLM 0.9 isn't backward compatible. + + + For most users the build issues when upgrading to GLM 0.9 should be reduced especially if they follow the deprecation policy. + + + This release is still UNSTABLE and not recommanded for commertial products. + + GLM 0.9.A.1 (zip, 950 KB) + GLM 0.9.A.1 (7z, 391 KB) Full changelog - - - Groove - - First step until a major release for GLM with this first alpha of GLM 0.9. - - - This version brings a large internal redesign to improve the library reliability and optimized some parts. - It removed the deprecated features and API which implies that GLM 0.9 isn't backward compatible. - - - For most users the build issues when upgrading to GLM 0.9 should be reduced especially if they follow the deprecation policy. - - - This release is still UNSTABLE and not recommanded for commertial products. - - GLM 0.9.A.1 (zip, 950 KB) - GLM 0.9.A.1 (7z, 391 KB) - Full changelog - - - - Groove - - This update just removes some warnings - - - By the way, if you have questions about GLM, a good place for those is the OpenGL.org Toolkits forum. - - GLM 0.8.4.4 (zip, 1.1 MB) - GLM 0.8.4.4 (7z, 479 KB) - Full changelog - - - - Groove - - This version fixed half scalars and half vectors arithmetics. - This is a really slow practice that should be avoid. - Half floating point value should be use only to store GPU data. - GPUs have native support for half values, not x86 CPUs. - - GLM 0.8.4.3 (zip, 1.1 MB) - GLM 0.8.4.3 (7z, 463 KB) - Full changelog - - - - Groove - - This version is a really minor updates, fixing single issue with half float types. - - GLM 0.8.4.2 (zip, 1.1 MB) - GLM 0.8.4.2 (7z, 443 KB) - Full changelog - - - Groove - - This version fixes few bugs and provides an major update of the manual thanks to Damian Trebilco. - - GLM 0.8.4.1 (zip, 1.1 MB) - GLM 0.8.4.1 (7z, 443 KB) - Full changelog - - - - Groove - - This new version mainly adds support for Visual Studio 2010 and GCC 4.4. It also provides various code optimization, bug fixes and an extension. - - GLM 0.8.4.0 (zip, 1.1 MB) - GLM 0.8.4.0 (7z, 439 KB) - Full changelog - - - - Groove - - Fixed extension bugs introduced by core update. - - GLM 0.8.3.5 (zip, 971 KB) - GLM 0.8.3.5 (7z, 405 KB) - Full changelog - - - - Groove - - Fixed varius bugs. Move determinant fonction to core following GLSL 1.5 specification. - - GLM 0.8.3.4 (zip, 971 KB) - GLM 0.8.3.4 (7z, 405 KB) - Full changelog - - - - Groove - - Fixed varius bugs. - - GLM 0.8.3.3 (zip, 971 KB) - GLM 0.8.3.3 (7z, 405 KB) - Full changelog - - - - Groove - - Add GLM_GTC_quaternion and GLM_GTC_type_precision extensions both subset of GLM_GTX_quaternion and GLM_GTX_number_precision - - GLM 0.8.3.2 (zip, 971 KB) - GLM 0.8.3.2 (7z, 405 KB) - Full changelog - + + Groove + + This update just removes some warnings + + + By the way, if you have questions about GLM, a good place for those is the OpenGL.org Toolkits forum. + + GLM 0.8.4.4 (zip, 1.1 MB) + GLM 0.8.4.4 (7z, 479 KB) + Full changelog + - - Groove - - The old way to use extensions have been fixed and GLM_GTX_bit extension gets updated with more functions to manipulate bit fields. - - GLM 0.8.3.1 (zip, 954 KB) - GLM 0.8.3.1 (7z, 402 KB) - Full changelog - - - - Groove - - This version brings to main changed: Stable extensions and a new extension system. - - - The first stable GLM extensions are: GLM_GTC_double_float and GLM_GTC_half_float for higher and lower vectors and matrices floating point precision. GLM_GTC_matrix_operation provides determinant and inverse matrix calculation. GLM_GTC_matrix_transform allows to build scale, rotate and translate matrices and GLM_GTC_matrix_projection provides varius functions to build projection matrices. Few stable extensions yet but the number is going to grow with the next release! - - - Both GLM 0.8.2.x extensions use method are deprecated (but still working) and replace by a new one. If you wnat to use GLM_GTC_half_float just include "glm/gtc/half_float.hpp" and it is going to be included in GLM namespace. - - - Finally, quite some file have been renamed, using "hpp" instead of ".h". Old file have been deprecated but are still available so that GLM 0.8.3.0 is fully compatible with GLM 0.8.2.x. - - GLM 0.8.3.0 (zip, 896 KB) - GLM 0.8.3.0 (7z, 359 KB) - Code samples page - Manual - Full changelog - + + Groove + + This version fixed half scalars and half vectors arithmetics. + This is a really slow practice that should be avoid. + Half floating point value should be use only to store GPU data. + GPUs have native support for half values, not x86 CPUs. + + GLM 0.8.4.3 (zip, 1.1 MB) + GLM 0.8.4.3 (7z, 463 KB) + Full changelog + - - Groove - GLM 0.8.2.3 (zip, 963 KB) - GLM 0.8.2.3 (7z, 381 KB) - Manual - Full changelog - + + Groove + + This version is a really minor updates, fixing single issue with half float types. + + GLM 0.8.4.2 (zip, 1.1 MB) + GLM 0.8.4.2 (7z, 443 KB) + Full changelog + - - Groove - - A new release is available and inogurate a patch number. The goal of this patch number is to release faster fixes from bug reports. - - GLM 0.8.2.1 (zip, 963 KB) - GLM 0.8.2.1 (7z, 381 KB) - Manual - Full changelog - - - - Groove - - This release only fixes bugs. Left sided swizzle operators, quaternion operators, vectors access operators for the main onces. - - GLM 0.8.2 (zip, 963 KB) - GLM 0.8.2 (7z, 381 KB) - Manual - Full changelog - + + Groove + + This version fixes few bugs and provides an major update of the manual thanks to Damian Trebilco. + + GLM 0.8.4.1 (zip, 1.1 MB) + GLM 0.8.4.1 (7z, 443 KB) + Full changelog + - - Groove - - Some artifacts have been added to the tracker to give a picture of what you could expect for the next releases. - - - If you need something else you can add some artifacts to the tracker. Any comment on added entries is welcome. - - - Furthermore, no more release of GLM 0.7.x will be done. Please upgrade to GLM 0.8.1. - - - Finally, a pack of programmable oriented OpenGL samples using GLM is under development and planed to be release in December. - - Tracker - + + Groove + + This new version mainly adds support for Visual Studio 2010 and GCC 4.4. It also provides various code optimization, bug fixes and an extension. + + GLM 0.8.4.0 (zip, 1.1 MB) + GLM 0.8.4.0 (7z, 439 KB) + Full changelog + - - Groove - - GLM 0.8.1 is released. This new version mainly fixes 64 bit integers with GCC and various bugs. - - GLM 0.8.1 (zip, 938 KB) - GLM 0.8.1 (7z, 372 KB) - GLM 0.8.1 Manual - Full changelog - + + Groove + + Fixed extension bugs introduced by core update. + + GLM 0.8.3.5 (zip, 971 KB) + GLM 0.8.3.5 (7z, 405 KB) + Full changelog + - - Groove - - GLM 0.8.0 is released. This new version is now based on GLSL 1.30 specification which provided new functions and precision qualifiers. - - - Beyond this, lot of changes have been done to make GLM easier to use, easier to develop, more reliable, more conform to C++ ISO98 standard and GLSL specifications. - - - It involves that GLM 0.8.x is not backward compatible with GLM 0.7.x... However, an application port from GLM 0.7.x to GLM 0.8.x isn't a huge work and actually for some, it won’t be work at all. - - - On GLM core side, based on GLSL features, vector types can't be automatically cast to pointer anymore for code safety purposes. Vector constructors require a single scalar parameter of the exact number of components. - - - On GLM extension side, the mechanism to use them has changed. The old [__]***GTX way doesn't exist anymore. Have a look on the manual for more information. - - - Have a look on the manual and the changelog for more information. Don't forget to send your feedback and enjoy! - - GLM 0.8.0 (zip, 936 KB) - GLM 0.8.0 (7z, 370 KB) - GLM 0.8.0 Manual - Full changelog - Post a comment - + + Groove + + Fixed varius bugs. Move determinant fonction to core following GLSL 1.5 specification. + + GLM 0.8.3.4 (zip, 971 KB) + GLM 0.8.3.4 (7z, 405 KB) + Full changelog + - - Groove - - Ambient aperture lighting Humus demo have been updated to use GLM as math library. - - Updated demo + all sources (zip, 2.38 MB) - Original demo (zip, 1.40 MB) - Post a comment - - - - Groove - - As you can see the website get a little update to prepare GLM 0.8.0 final release. - - - GLM 0.8.0 final should be release during the week. - - - - - Groove - - This release fixes some bugs and add few features though extensions. The development is now based on CMake to make easier cross platform tests and project management. - - GLM 0.8.0 Beta 3 (zip, 819 KB) - GLM 0.8.0 Beta 3 (7z, 345 KB) - Full changelog - Post a comment - - - - Groove - - This release mainly improves half float vectors support. By default the low precission vectors are based on float numbers not on half numbers - - - It also provides new setup options. GLM_USE_ONLY_XYZW to disable multiple names to access to a single vector component. GLM_USE_ANONYMOUS_UNION to allow multiple component names on half vectors with Visual C++. - - - Various bugs and updates of extensions have been done too. Final release is coming... - - GLM 0.8.0 Beta 2 (zip, 798 KB) - GLM 0.8.0 Beta 2 (7z, 327 KB) - Full changelog - Post a comment - + + Groove + + Fixed varius bugs. + + GLM 0.8.3.3 (zip, 971 KB) + GLM 0.8.3.3 (7z, 405 KB) + Full changelog + - - Groove - - GLM have been updated to support GLSL 1.30. API documentation had significant improvements to make easier finding of GLSL functions and types. - - - GLM 0.8.x is NOT backward compatible with GLM 0.7.x. Upgrade to GLM 0.8.x could involve build errors for the following cases: A lot of improvements have been made to increase the conformance with GLSL specification. Lot of GLSL 1.30 features were already exposed in extensions that have been deleted. The extension syntaxe based on ARB convension is no long used. - - - Due to the number of changes GLM 0.8.0 is release as beta first. The final release is schedule for october. - - GLM 0.8.0 Beta 1 (zip, 786 KB) - GLM 0.8.0 Beta 1 (7z, 321 KB) - Full changelog - Post a comment - + + Groove + + Add GLM_GTC_quaternion and GLM_GTC_type_precision extensions both subset of GLM_GTX_quaternion and GLM_GTX_number_precision + + GLM 0.8.3.2 (zip, 971 KB) + GLM 0.8.3.2 (7z, 405 KB) + Full changelog + - - Groove - - GLM 0.7.6 provides a better C++ conformance so that you can build GLM with –pedantic G++ parameter or without Visual Studio extensions. To make GLM more reliable, BOOST_STATIC_ASSERT are used according developer wishes. - - GLM 0.7.6 (zip, 907 KB) - GLM 0.7.6 (7z, 387 KB) - Full changelog - Manual - + + Groove + + The old way to use extensions have been fixed and GLM_GTX_bit extension gets updated with more functions to manipulate bit fields. + + GLM 0.8.3.1 (zip, 954 KB) + GLM 0.8.3.1 (7z, 402 KB) + Full changelog + - - Groove - - GLM 0.7.5 is available and introduces a new build messsage system to get information of GLM build configuration with Visual Studio. This mechanism is documented in section 6 of GLM manual. Also, GLM can be built with GCC pedantic options. - - GLM 0.7.5 (zip, 852 KB) - GLM 0.7.5 (7z, 366 KB) - Full changelog - Manual - + + Groove + + This version brings to main changed: Stable extensions and a new extension system. + + + The first stable GLM extensions are: GLM_GTC_double_float and GLM_GTC_half_float for higher and lower vectors and matrices floating point precision. GLM_GTC_matrix_operation provides determinant and inverse matrix calculation. GLM_GTC_matrix_transform allows to build scale, rotate and translate matrices and GLM_GTC_matrix_projection provides varius functions to build projection matrices. Few stable extensions yet but the number is going to grow with the next release! + + + Both GLM 0.8.2.x extensions use method are deprecated (but still working) and replace by a new one. If you wnat to use GLM_GTC_half_float just include "glm/gtc/half_float.hpp" and it is going to be included in GLM namespace. + + + Finally, quite some file have been renamed, using "hpp" instead of ".h". Old file have been deprecated but are still available so that GLM 0.8.3.0 is fully compatible with GLM 0.8.2.x. + + GLM 0.8.3.0 (zip, 896 KB) + GLM 0.8.3.0 (7z, 359 KB) + Code samples page + Manual + Full changelog + - - Groove - - GLM 0.7.4 introduces a new system to manage external dependencies. - - - It allows developing extension using external dependencies like GLEW, Boost, etc. without making required those dependencies for GLM programmer that doesn't need those external dependent extensions. - - - The mechanism is described into the updated manual. - - GLM 0.7.4 (zip, 859 KB) - GLM 0.7.4 (7z, 372 KB) - Full changelog - Manual - + + Groove + GLM 0.8.2.3 (zip, 963 KB) + GLM 0.8.2.3 (7z, 381 KB) + Manual + Full changelog + + + + Groove + + A new release is available and inogurate a patch number. The goal of this patch number is to release faster fixes from bug reports. + + GLM 0.8.2.1 (zip, 963 KB) + GLM 0.8.2.1 (7z, 381 KB) + Manual + Full changelog + + + + Groove + + This release only fixes bugs. Left sided swizzle operators, quaternion operators, vectors access operators for the main onces. + + GLM 0.8.2 (zip, 963 KB) + GLM 0.8.2 (7z, 381 KB) + Manual + Full changelog + + + + Groove + + Some artifacts have been added to the tracker to give a picture of what you could expect for the next releases. + + + If you need something else you can add some artifacts to the tracker. Any comment on added entries is welcome. + + + Furthermore, no more release of GLM 0.7.x will be done. Please upgrade to GLM 0.8.1. + + + Finally, a pack of programmable oriented OpenGL samples using GLM is under development and planed to be release in December. + + Tracker + + + + Groove + + GLM 0.8.1 is released. This new version mainly fixes 64 bit integers with GCC and various bugs. + + GLM 0.8.1 (zip, 938 KB) + GLM 0.8.1 (7z, 372 KB) + GLM 0.8.1 Manual + Full changelog + + + + Groove + + GLM 0.8.0 is released. This new version is now based on GLSL 1.30 specification which provided new functions and precision qualifiers. + + + Beyond this, lot of changes have been done to make GLM easier to use, easier to develop, more reliable, more conform to C++ ISO98 standard and GLSL specifications. + + + It involves that GLM 0.8.x is not backward compatible with GLM 0.7.x... However, an application port from GLM 0.7.x to GLM 0.8.x isn't a huge work and actually for some, it won’t be work at all. + + + On GLM core side, based on GLSL features, vector types can't be automatically cast to pointer anymore for code safety purposes. Vector constructors require a single scalar parameter of the exact number of components. + + + On GLM extension side, the mechanism to use them has changed. The old [__]***GTX way doesn't exist anymore. Have a look on the manual for more information. + + + Have a look on the manual and the changelog for more information. Don't forget to send your feedback and enjoy! + + GLM 0.8.0 (zip, 936 KB) + GLM 0.8.0 (7z, 370 KB) + GLM 0.8.0 Manual + Full changelog + Post a comment + + + + Groove + + Ambient aperture lighting Humus demo have been updated to use GLM as math library. + + Updated demo + all sources (zip, 2.38 MB) + Original demo (zip, 1.40 MB) + Post a comment + + + + Groove + + As you can see the website get a little update to prepare GLM 0.8.0 final release. + + + GLM 0.8.0 final should be release during the week. + + + + + Groove + + This release fixes some bugs and add few features though extensions. The development is now based on CMake to make easier cross platform tests and project management. + + GLM 0.8.0 Beta 3 (zip, 819 KB) + GLM 0.8.0 Beta 3 (7z, 345 KB) + Full changelog + Post a comment + + + + Groove + + This release mainly improves half float vectors support. By default the low precission vectors are based on float numbers not on half numbers + + + It also provides new setup options. GLM_USE_ONLY_XYZW to disable multiple names to access to a single vector component. GLM_USE_ANONYMOUS_UNION to allow multiple component names on half vectors with Visual C++. + + + Various bugs and updates of extensions have been done too. Final release is coming... + + GLM 0.8.0 Beta 2 (zip, 798 KB) + GLM 0.8.0 Beta 2 (7z, 327 KB) + Full changelog + Post a comment + + + + Groove + + GLM have been updated to support GLSL 1.30. API documentation had significant improvements to make easier finding of GLSL functions and types. + + + GLM 0.8.x is NOT backward compatible with GLM 0.7.x. Upgrade to GLM 0.8.x could involve build errors for the following cases: A lot of improvements have been made to increase the conformance with GLSL specification. Lot of GLSL 1.30 features were already exposed in extensions that have been deleted. The extension syntaxe based on ARB convension is no long used. + + + Due to the number of changes GLM 0.8.0 is release as beta first. The final release is schedule for october. + + GLM 0.8.0 Beta 1 (zip, 786 KB) + GLM 0.8.0 Beta 1 (7z, 321 KB) + Full changelog + Post a comment + + + + Groove + + GLM 0.7.6 provides a better C++ conformance so that you can build GLM with –pedantic G++ parameter or without Visual Studio extensions. To make GLM more reliable, BOOST_STATIC_ASSERT are used according developer wishes. + + GLM 0.7.6 (zip, 907 KB) + GLM 0.7.6 (7z, 387 KB) + Full changelog + Manual + + + + Groove + + GLM 0.7.5 is available and introduces a new build messsage system to get information of GLM build configuration with Visual Studio. This mechanism is documented in section 6 of GLM manual. Also, GLM can be built with GCC pedantic options. + + GLM 0.7.5 (zip, 852 KB) + GLM 0.7.5 (7z, 366 KB) + Full changelog + Manual + + + + Groove + + GLM 0.7.4 introduces a new system to manage external dependencies. + + + It allows developing extension using external dependencies like GLEW, Boost, etc. without making required those dependencies for GLM programmer that doesn't need those external dependent extensions. + + + The mechanism is described into the updated manual. + + GLM 0.7.4 (zip, 859 KB) + GLM 0.7.4 (7z, 372 KB) + Full changelog + Manual + + + + Groove + + GLM 0.7.3 is released. This version fixes few bugs and add few extensions + + GLM 0.7.3 (zip, 1.8 MB) + GLM 0.7.3 (7z, 635 KB) + Full changelog + + + + Groove + + GLM 0.7.2 is released. The documentation have been completed again and several issues handle with precompiler options. + + + #define GLM_SWIZZLE GLM_SWIZZLE_FUNC allows to use swizzle operators with internal functions. For example, glm::vec3(1, 2, 3).zyx is replaced by glm::vec3(1, 2, 3)._zyx() with this option. + + + #define GLM_FORCE_NO_HALF allows to include all extensions (#include "glm/glmext.h") without any support of half-precision floating-point numbers. + + + #define GLM_AUTO_CAST GLM_DISABLE allows to disable automatic cast (eg: glLoadMatrixf(glm::mat4(1.0))) which could involve unfortunate issues in some cases. + + + More information on these topic are available in GLM manual section 5 "Known issues". + + GLM 0.7.2 (zip, 1.8 MB) + GLM 0.7.2 (7z, 635 KB) + Full changelog + + + + Groove + + GLM 0.7.1 is available under MIT license. It fixes bugs with GCC. + + GLM 0.7.1 (zip, 1.8 MB) + GLM 0.7.1 (7z, 635 KB) + Full changelog + + + + Groove + + GLM 0.7.0 is available under MIT license. LGPL lisence have been discard due to an issue of use for console development. This release contains a lot better documentation based on Doxygen. Lot of bugs have been fixed and the documentation completed. Thanks to all people that has contributed thought bug reports and ideas to make this version a lot better! + + GLM 0.7.0 (zip, 1.8 MB) + GLM 0.7.0 (7z, 635 KB) + Full changelog + - - Groove - - GLM 0.7.3 is released. This version fixes few bugs and add few extensions - - GLM 0.7.3 (zip, 1.8 MB) - GLM 0.7.3 (7z, 635 KB) - Full changelog - - - - Groove - - GLM 0.7.2 is released. The documentation have been completed again and several issues handle with precompiler options. - - - #define GLM_SWIZZLE GLM_SWIZZLE_FUNC allows to use swizzle operators with internal functions. For example, glm::vec3(1, 2, 3).zyx is replaced by glm::vec3(1, 2, 3)._zyx() with this option. - - - #define GLM_FORCE_NO_HALF allows to include all extensions (#include "glm/glmext.h") without any support of half-precision floating-point numbers. - - - #define GLM_AUTO_CAST GLM_DISABLE allows to disable automatic cast (eg: glLoadMatrixf(glm::mat4(1.0))) which could involve unfortunate issues in some cases. - - - More information on these topic are available in GLM manual section 5 "Known issues". - - GLM 0.7.2 (zip, 1.8 MB) - GLM 0.7.2 (7z, 635 KB) - Full changelog - - - - Groove - - GLM 0.7.1 is available under MIT license. It fixes bugs with GCC. - - GLM 0.7.1 (zip, 1.8 MB) - GLM 0.7.1 (7z, 635 KB) - Full changelog - - - - Groove - - GLM 0.7.0 is available under MIT license. LGPL lisence have been discard due to an issue of use for console development. This release contains a lot better documentation based on Doxygen. Lot of bugs have been fixed and the documentation completed. Thanks to all people that has contributed thought bug reports and ideas to make this version a lot better! - - GLM 0.7.0 (zip, 1.8 MB) - GLM 0.7.0 (7z, 635 KB) - Full changelog - - Groove - GLM 0.6.4 is available and fixes some swizzle operator issues. + GLM 0.6.4 is available and fixes some swizzle operator issues. GLM 0.6.4 (zip, 1.7 MB) GLM 0.6.4 (7z, 612 KB) Full changelog - + - Groove - - GLM 0.6.3 fixes accesses of matrices and a 3DSMax SDK conflict. - - GLM 0.6.3 (zip, 1.8 MB) - GLM 0.6.3 (7z, 633 KB) - Full changelog - - - - Groove - - GLM 0.6.2 fixes an error on an extension. - - GLM 0.6.2 (zip, 1.8 MB) - GLM 0.6.2 (7z, 632 KB) - Full changelog - - - - Groove - - GLM 0.6.1 is a minor update that fix an issue on extension namespace and add two more extensions. - - GLM 0.6.1 (zip, 1.8 MB) - GLM 0.6.1 (7z, 632 KB) - Full changelog - - - + Groove + + GLM 0.6.3 fixes accesses of matrices and a 3DSMax SDK conflict. + + GLM 0.6.3 (zip, 1.8 MB) + GLM 0.6.3 (7z, 633 KB) + Full changelog + + + + Groove + + GLM 0.6.2 fixes an error on an extension. + + GLM 0.6.2 (zip, 1.8 MB) + GLM 0.6.2 (7z, 632 KB) + Full changelog + + + + Groove + + GLM 0.6.1 is a minor update that fix an issue on extension namespace and add two more extensions. + + GLM 0.6.1 (zip, 1.8 MB) + GLM 0.6.1 (7z, 632 KB) + Full changelog + + + Groove GLM 0.6.0 is available. For this release, work focus on extensions. A new mecanisum allows to integrate GLM extensions as it is actually done for GLSL extension by vendors. Lot of new extensions have been added. @@ -1973,56 +2001,56 @@ Raytracer v1.0 (zip) Full changelog - + Groove This release fixes some issues with swizzle operators. - GLM 0.5.1 (zip, 2.3 MB) - GLM 0.5.1 (7z, 789 KB) + GLM 0.5.1 (zip, 2.3 MB) + GLM 0.5.1 (7z, 789 KB) - + Groove A new sample is available. It's an update of Philip Rideout's Catmull Clark subdivision program that uses GLM. Released with pleasant permission of Philip Rideout. - CatmullClark sample (zip, 605 KB) + CatmullClark sample (zip, 605 KB) - + Groove - This release include GLSL 1.2 new feature in the core implementation. Also, it includes swizzle read and write operators and a custom options system to setup GLM. + This release include GLSL 1.2 new feature in the core implementation. Also, it includes swizzle read and write operators and a custom options system to setup GLM. - It includes some new extensions to extend GLSL features but they remain experimental. The next release should provide the first stable extensions. + It includes some new extensions to extend GLSL features but they remain experimental. The next release should provide the first stable extensions. - The GLM 0.5.0 packages contain some basic samples and some documentation. The ray tracer sample has been updated to GLM 0.5.0. Except for specific cases, especially with extensions, GLM 0.5 is backward compatible. + The GLM 0.5.0 packages contain some basic samples and some documentation. The ray tracer sample has been updated to GLM 0.5.0. Except for specific cases, especially with extensions, GLM 0.5 is backward compatible. Now, GLM development is taking advantages of SourceForge.net services: a bug tracker system and the development source code is publicly available on SF.net SVN server. - GLM 0.5.0 (zip, 2.4 MB) - GLM 0.5.0 (7z, 843 KB) - Raytracer b3.0 (exe, 751 KB) - Raytracer b3.0 (zip, 1.1 MB) + GLM 0.5.0 (zip, 2.4 MB) + GLM 0.5.0 (7z, 843 KB) + Raytracer b3.0 (exe, 751 KB) + Raytracer b3.0 (zip, 1.1 MB) - + Groove - A GLM update is available. It simply includes some examples for a sweet start with GLM. + A GLM update is available. It simply includes some examples for a sweet start with GLM. - The examples show how to use GLM with OpenGL intermediate mode and OpenGL vertex arrays. Also, they show how to use GLM extensions to replace GLU and OpenGL function witch could slightly increase performances by decreasing the number of OpenGL states changes. + The examples show how to use GLM with OpenGL intermediate mode and OpenGL vertex arrays. Also, they show how to use GLM extensions to replace GLU and OpenGL function witch could slightly increase performances by decreasing the number of OpenGL states changes. - GLM 0.4.1 (zip, 1.6 MB) - GLM 0.4.1 (7z, 521 KB) + GLM 0.4.1 (zip, 1.6 MB) + GLM 0.4.1 (7z, 521 KB) - + Groove @@ -2031,9 +2059,9 @@ The number of features of GLM, including extensions, start to really increase the compilation time. That's why it's recommended to use precompiled headers. - GLM 0.4.0 + GLM 0.4.0 - + Groove @@ -2046,15 +2074,15 @@ Version 0.6 will add swizzle operators in reading and writing. (eg: vec3 v1(1.0, 2.0, 3.0); vec3 v2 = v1.xxx; v1.zyx = v;). - + Groove This release corrects two main bugs. First, a bug of the imat4 and mat4 division operators and other correct the vectors components access from texture coordinate way. - GLM 0.3.2 + GLM 0.3.2 - + Groove @@ -2063,9 +2091,9 @@ Further release will prodive GLSL 1.2 compliances. - GLM 0.3.1 + GLM 0.3.1 - + Groove @@ -2074,11 +2102,11 @@ This new release have been tested under Visual C++ 7.1, Visual C++ 8.0, GCC 3.2.3 et GCC 3.4.2. - GLM 0.3 - Raytrace - Online documentation + GLM 0.3 + Raytrace + Online documentation - + Groove @@ -2091,14 +2119,14 @@ To demo the features of this new version, a sample program is included. It is a simple Ray Tracer supporting reflected and refracted rays, three lights types (point, directionnal and spot), two objects types (sphere, plan), using all of the GLM possibilities. - + Groove The english section of this site is now available. - + Groove @@ -2110,31 +2138,31 @@ This project is multi platform and was successfully tested under Visual C++ 7.1, MinGW 3.4 and GCC 3.4. - GLM 0.1 User Release - GLM 0.1 Contributor Release - GLSL 1.10.59 specifications + GLM 0.1 User Release + GLM 0.1 Contributor Release + GLSL 1.10.59 specifications - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + OpenGL's Official site. You would find OpenGL specifications, news and tons of related informations. @@ -2228,75 +2256,76 @@ - - - OpenGL Mathematics (GLM) is a C++ mathematics library for 3D software based on the OpenGL Shading Language (GLSL) specification. - - - The goal of the project is to provide to 3D programmers math classes and functions that miss in C++ when we use to program with GLSL or any high level GPU language. With GLM, the idea is to have a library that works the same way that GLSL which imply a strict following of GLSL specification for the implementation. - - - However, this project isn't limited by GLSL features. An extension system allows to extend GLSL capabilities. It allows GLM to be a great subtitute for some OpenGL 3 deprecated functions, to work following a clean programmable approach. - - - GLM is release under MIT license and available for all version of GCC from version 3.4 and Visual Studio from version 8.0 as a platform independent library. - - - You can checkout SVN development sources from https://glf.svn.sourceforge.net/svnroot/glf/Trunk/glm/. - - + + + OpenGL Mathematics (GLM) is a C++ mathematics library for 3D software based on the OpenGL Shading Language (GLSL) specification. + + + The goal of the project is to provide to 3D programmers math classes and functions that miss in C++ when we use to program with GLSL or any high level GPU language. With GLM, the idea is to have a library that works the same way that GLSL which imply a strict following of GLSL specification for the implementation. + + + However, this project isn't limited by GLSL features. An extension system allows to extend GLSL capabilities. It allows GLM to be a great subtitute for some OpenGL 3 deprecated functions, to work following a clean programmable approach. + + + GLM is release under MIT license and available for all version of GCC from version 3.4 and Visual Studio from version 8.0 as a platform independent library. + + + You can checkout SVN development sources from https://glf.svn.sourceforge.net/svnroot/glf/Trunk/glm/. + + - - GLSL + Optional features = OpenGL Mathematics (GLM). - A C++ mathematics library for 3D graphics. - + + GLSL + Optional features = OpenGL Mathematics (GLM). + A C++ mathematics library for 3D graphics. + - - - - - 2560x1600 - 1920x1200 - 1600x1000 - 1280x0800 - 1024x0640 - - - - - Font (.otf) - - - - - - - - - - - + + + + + 2560x1600 + 1920x1200 + 1600x1000 + 1280x0800 + 1024x0640 + + + + + Font (.otf) + + - - - - - - - - + + + + + + + - - - - - + + + + + + + + - - - - - - + + + + + + + + + + + + + + diff --git a/doc/src/issue.xsl b/doc/src/issue.xsl deleted file mode 100644 index 23b8e1ed..00000000 --- a/doc/src/issue.xsl +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - OpenGL Mathematics : Issues - - - - - - -
- OpenGL Mathematics -
- - - - - -
- -
- - - -
- - -
-
Problématiques
-
- -
-
- - -
- )
-
-
- -
-
- STATUE : , -
-
-
-
- - -
- : -
-
- -
diff --git a/doc/src/util.xsl b/doc/src/util.xsl index cb8978f2..55e49061 100644 --- a/doc/src/util.xsl +++ b/doc/src/util.xsl @@ -93,9 +93,6 @@
-

diff --git a/glm/glm.hpp b/glm/glm.hpp index 6c91fa14..9ff58467 100644 --- a/glm/glm.hpp +++ b/glm/glm.hpp @@ -17,7 +17,9 @@ * * This library can be used with OpenGL but also for software rendering (Raytracing / Rasterisation), image processing and as much contexts as a simple math library could be used for. * - * GLM is written as a platform independent library and supports the following compilers: - GNU GCC 3.4 and higher - Microsoft Visual Studio 8.0 and higher + * GLM is written as a platform independent library and supports the following compilers: + * - GNU GCC 3.4 and higher + * - Microsoft Visual Studio 8.0 and higher * * The source code is under the MIT licence. * From 42193c984a3a2fb142e19552cffa3e7a6a88e9c9 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Fri, 30 Apr 2010 17:30:06 +0100 Subject: [PATCH 07/20] Updated doc --- doc/about.html | 25 +- doc/build/build.bat | 3 - doc/changelog.html | 1428 ++++++++++++++++++++++--------------------- doc/code.html | 5 +- doc/download.html | 25 +- doc/doxyfile | 6 +- doc/goodies.html | 5 +- doc/index.html | 262 ++++---- doc/issue.html | 23 +- doc/link.html | 9 +- doc/src/data.xml | 6 +- doc/src/link.xsl | 13 +- 12 files changed, 931 insertions(+), 879 deletions(-) diff --git a/doc/about.html b/doc/about.html index 84674fb4..3fc26879 100644 --- a/doc/about.html +++ b/doc/about.html @@ -1,15 +1,14 @@ -OpenGL Mathematics : About
OpenGL Mathematics

GLSL + Optional features = OpenGL Mathematics (GLM).
A C++ mathematics library for 3D graphics.


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

- The goal of the project is to provide to 3D programmers math classes and functions that miss in C++ when we use to program with GLSL or any high level GPU language. With GLM, the idea is to have a library that works the same way that GLSL which imply a strict following of GLSL specification for the implementation. -

- However, this project isn't limited by GLSL features. An extension system allows to extend GLSL capabilities. It allows GLM to be a great subtitute for some OpenGL 3 deprecated functions, to work following a clean programmable approach. -

- GLM is release under MIT license and available for all version of GCC from version 3.4 and Visual Studio from version 8.0 as a platform independent library. -

- You can checkout SVN development sources from https://glf.svn.sourceforge.net/svnroot/glf/sdk. -

_________________

_________________

- Copyright © 2005-2008 G-Truc Creation
\ No newline at end of file +OpenGL Mathematics : About
OpenGL Mathematics
GLSL + Optional features = OpenGL Mathematics (GLM).
A C++ mathematics library for 3D graphics.


+ OpenGL Mathematics (GLM) is a C++ mathematics library for 3D software based on the OpenGL Shading Language (GLSL) specification. +

+ The goal of the project is to provide to 3D programmers math classes and functions that miss in C++ when we use to program with GLSL or any high level GPU language. With GLM, the idea is to have a library that works the same way that GLSL which imply a strict following of GLSL specification for the implementation. +

+ However, this project isn't limited by GLSL features. An extension system allows to extend GLSL capabilities. It allows GLM to be a great subtitute for some OpenGL 3 deprecated functions, to work following a clean programmable approach. +

+ GLM is release under MIT license and available for all version of GCC from version 3.4 and Visual Studio from version 8.0 as a platform independent library. +

+ You can checkout SVN development sources from https://glf.svn.sourceforge.net/svnroot/glf/Trunk/glm/. +

_________________

_________________

Copyright © 2005 - 2010 G-Truc Creation
\ No newline at end of file diff --git a/doc/build/build.bat b/doc/build/build.bat index 18062b06..adef7f24 100644 --- a/doc/build/build.bat +++ b/doc/build/build.bat @@ -1,8 +1,5 @@ xalan -m -o ..\index.html ..\src\data.xml ..\src\news.xsl xalan -m -o ..\download.html ..\src\data.xml ..\src\download.xsl -xalan -m -o ..\changelog.html ..\src\data.xml ..\src\changelog.xsl -xalan -m -o ..\issue.html ..\src\data.xml ..\src\issue.xsl -xalan -m -o ..\link.html ..\src\data.xml ..\src\link.xsl xalan -m -o ..\goodies.html ..\src\data.xml ..\src\goodies.xsl xalan -m -o ..\about.html ..\src\data.xml ..\src\about.xsl xalan -m -o ..\code.html ..\src\data.xml ..\src\code.xsl diff --git a/doc/changelog.html b/doc/changelog.html index 5c5b45c4..e9472a49 100644 --- a/doc/changelog.html +++ b/doc/changelog.html @@ -1,708 +1,724 @@ -OpenGL Mathematics : Changelog
OpenGL Mathematics

GLSL + Optional features = OpenGL Mathematics (GLM).
A C++ mathematics library for 3D graphics.


2009-11-16:
- - GLM 0.8.4.3 released.
_________________

2009-11-12:
- - Fixed half arithmetic.
_________________

2009-11-11:
- - Added scalars support for GLM_IMG_multiple.
_________________

2009-11-05:
- - Fixed setup defines.
_________________

2009-10-27:
- - Added GLM_IMG_multiple extensions and unit tests.
_________________

2009-10-19:
- - GLM 0.8.4.2 released.
_________________

2009-10-10:
- - Fixed half.
_________________

2009-10-05:
- - GLM 0.8.4.1 released.
_________________

2009-10-02:
- - Updated documentation.
_________________

2009-09-30:
- - Updated manual.
- - Added static assert implementation.
- - Removed unuse GLM_SWIZZLE_FUNC.
_________________

2009-09-23:
- - Some progress on fixing GLM for MacOSX comflics.
_________________

2009-09-22:
- - Fixed GLM_GTX_quaternion extension: cross and intermediate.
_________________

2009-09-17:
- - Fixed quaternion angle.
_________________

2009-09-16:
- - Updated documentation.
- - GLM 0.8.4.0 released.
_________________

2009-09-14:
- - Added Visual Studio 2010 support.
- - Fixed build on GCC.
- - Added GCC 4.4 support.
_________________

2009-09-03:
- - Added no initilization constructor to vec4.
_________________

2009-09-01:
- - Added no initilization constructor to mat4.
- - Updated GLM_GTC_matrix_transform: faster rotate.
_________________

2009-08-29:
- - Added GLM_GTX_matrix_operation: build diagonal matrix.
- - Updated GLM_GTC_matrix_transform: faster scaling.
_________________

2009-08-28:
- - Fixed transpose function for mat4x3.
- - Optimized translate function for mat4 matrix: ~184 cycles instead of ~592 cycles on Q6600.
_________________

2009-08-24:
- - Fixed OpenGL dependence.
- - Added OpenGL 3 dependence.
_________________

2009-08-23:
- - Fixed parameter definition and definition mismatch.
_________________

2009-08-11:
- - Fixed GLM_GTC_matrix_projection.
- - Updated GLM_GTX_transform: Added missing entry points.
- - GLM 0.8.3.5 released.
_________________

2009-08-10:
- - Move inverse function to core following GLSL 1.4 specification.
- - Move determinant function to core following GLSL 1.5 specification.
- - GLM 0.8.3.4 released.
_________________

2009-07-22:
- - Fixed GLM_GTX_matrix_query extension: Fixed row_size and col_size() calls.
- - Fixed GLM_GTX_matrix_access extension: Fixed row_size calls.
_________________

2009-07-03:
- - Fixed GLM_GTX_string_cast extension: Build on GCC 4.
- - Fixed GLM_GTC_quaternion extension: rotate function build.
_________________

2009-06-25:
- - Fixed GLM_GTC_matrix_transform extension: Fixed matrix operation order; like OpenGL instead of like Direct3D.
- - GLM 0.8.3.3 released.
_________________

2009-06-16:
- - Fixed GLM_GTX_rotate_vector extension: Fixed rotate function.
_________________

2009-06-09:
- - Fixed matrix external operators.
_________________

2009-06-04:
- - Added GLM_GTC_type_precision extension.
- - GLM 0.8.3.2 released.
_________________

2009-06-02:
- - Fixed GLM_GTC_matrix_transform: Fixed mat4 inverse function.
_________________

2009-05-22:
- - Added GLM_GTC_quaternion extension.
- - Updated GLM_GTC_quaternion extension.
- - Fixed GLM_GTC_matrix_transform extension.
_________________

2009-05-21:
- - GLM 0.8.3.1 released.
_________________

2009-05-20:
- - Updated GLM_GTX_bit extension: Added lowestBit functions.
- - Fixed old extention inclusion method.
_________________

2009-05-19:
- - Updated sse mat4 implementation.
_________________

2009-05-18:
- - Updated GLM_GTX_bit extension: Added bitRevert, bitRotateRight and bitRotateLeft functions.
_________________

2009-05-17:
- - Added intrinsic like functions for mat4 product and inverse.
_________________

2009-05-15:
- - Added intrinsic like functions for mat4 and vec4 products.
_________________

2009-05-06:
- - Fixed GLM_GTX_type_ptr extension.
- - GLM 0.8.3.0 released.
_________________

2009-05-06:
- - Fixed GLM_GTC_matrix_projection: glm::project build.
_________________

2009-05-05:
- - Added new extensions inclusion system.
_________________

2009-05-01:
- - Fixed GLM_GTX_determinant extension.
- - Reorganized extensions.
- - Removed GLM_GTX_vector_comp_mult and GLM_GTX_mat4x3 extensions.
- - Renamed .h files to .hpp.
_________________

2009-04-30:
- - Added GLM_GTC_half_float.
_________________

2009-04-29:
- - Fixed GLM_GTX_perpendicular extension.
- - Fixed GLM_GTX_matrix_projection extension.
- - Fixed GLM_GTX_transform2 extension.
_________________

2009-04-27:
- - Added GLM_GTC_matrix_operation.
- - Added GLM_GTC_matrix_transform.
- - Added GLM_GTC_matrix_projection.
- - Added GLM_GTC_double_float.
_________________

2009-04-20:
- - Fixed bug 2774738.
- - Fixed bug 2774015.
_________________

2009-04-01:
- - GLM 0.8.2.3 released.
_________________

2009-03-30:
- - Updaded mix function: Makes it more flexible, types wise.
_________________

2009-03-06:
- - Fixed GLM_GTX_perpendicular and GLM_GTX_projection.
- - Added GLM_GTX_radial_gradient extensions.
_________________

2009-02-24:
- - Fixed GCC 4.3 pedantic build.
- - GLM 0.8.2.2 released.
_________________

2009-02-19:
- - Removed all deprecated ARB conventions.
_________________

2009-02-18:
- - Fixed highp_int_t and highp_uint_t with Linux 64.
- - Fixed GCC 4.3 'extra ;' with pedentic build.
_________________

2009-02-13:
- - Fixed build.
- - GLM 0.8.2.1 released.
_________________

2009-02-02:
- - Fixed build.
- - Added extensions build test.
_________________

2009-01-21:
- - GLM 0.8.2 released.
_________________

2009-01-20:
- - Fixed GLM_GTX_intersect: intersectRayTriangle.
_________________

2009-01-17:
- - Fixed vectors access operators.
- - Fixed unresolved with quaternions.
_________________

2009-01-16:
- - Fixed GLM_GTX_norm: Include issue.
_________________

2009-01-01:
- - Fixed left value swizzle operators.
_________________

2008-12-03:
- - Fixed GLM_GTX intersect extension: intersectRayTriangleGTX with GCC.
- - Typo.
_________________

2008-12-02:
- - Fixed GLM_GTX inverse_transpose extension.
_________________

2008-11-27:
- - Updated quaternion implementation.
_________________

2008-11-19:
- - Added GLM_GTX_raw_data extension.
_________________

2008-11-18:
- - Updated GLM_GTX_bit extension: Added mask function.
_________________

2008-11-14:
- - Updated GLM_GTX_bit extension: Added extractField function.
- - Fixed STATIC_ASSERT with 64bits integers.
_________________

2008-10-30:
- - GLM 0.8.1 released.
_________________

2008-10-29:
- - Fixed mix function with boolean parameter.
- - Fixed value_size issue.
_________________

2008-10-28:
- - Fixed GLM_GTX_component_wise extension.
- - Added GLM_GTX_color_space_YCoCg extension.
_________________

2008-10-27:
- - Added GLM_GTX_comparison extension: Defined comparison operators for vectors.
_________________

2008-10-25:
- - Added GLM_GTX_log_base extension.
_________________

2008-10-24:
- - Fixed 64 bits integers with GCC.
- - Deleted deprecated half number setup options.
- - Updated GLM_GTX_number_precision: Clean up and added missing type definitions.
- - Updated GLM_GTX_color_cast: Clean up and fixes.
_________________

2008-10-23:
- - Updated manuel and documentation.
- - GLM 0.8.0 final released.
_________________

2008-10-22:
- - Fixed glm::size_t possible collisions with std::size_t. glm::size_t is now named glm::sizeType.
- - Updated GLM_VIRTREV_address extension: Added none const fonctions.
- - Updated GLM_GTX_double_float extension: Typo.
- - Added new API to use extension.
_________________

2008-10-18:
- - Added logos in varius resolutions.
_________________

2008-10-17:
- - Updated website.
- - Added website builder.
_________________

2008-10-15:
- - Updated GLM_GTX_number_precision: No more warning with type size tests.
- - Fixed none consistent size_t.
_________________

2008-10-12:
- - Updated website.
_________________

2008-10-10:
- - Fixed build.
- - Updated manual.
- - GLM 0.8.0 beta3 released.
_________________

2008-10-09:
- - Added GLM_GTX_reciprocal extension: Define sec, csc, cot, asec, acsc, acot, sech, csch, coth, asech, acsch and acoth functions.
_________________

2008-10-08:
- - Updated GLM_GTX_euler_angles extension: Added functions to build rotation matrices.
_________________

2008-10-07:
- - Fixed GLM_GTX_color_space: Fixed conflits with swizzle operators.
- - Fixed virtrev.h, didn't build.
- - Fixed genType build.
- - Fixed GLM_GTX_compatibility build.
- - Added GLM_VIRTREV_address: Get the address of internal vector or matrix contents.
- - Fixed code typo and clean up.
_________________

2008-10-06:
- - Added genType class. For long term base class for all types though template specialization.
- - Updated project directory.
- - Added CMakeFile in test directory.
- - Fixed code typo and clean up.
- - Fixed GLM_GTX_string_cast: Missing some matrix definitions, some wrong behaviours with matrices.
_________________

2008-10-05:
- - Added glm::sizeType type which is used to defined size of all vectors and matrices. Defined as std::size_t.
- - row_size, col_size and is_matrix are now functions.
- - Fixed use inline on *mat4 function declaration.
- - Deleted auto cast from *mat4x3.
- - Fixed missing ++ -- and - operators to some matrix types.
- - Fixed typo.
_________________

2008-10-04:
- - GLM 0.8.0 beta2 released.
_________________

2008-10-03:
- - value_size and is_vector are now functions.
_________________

2008-10-02:
- - Added GLM_USE_ANONYMOUS_UNION: To use anonymous union to provide multiple component names access for class valType. Visual C++ only.
- - Removed noise function from documentation.
_________________

2008-10-01:
- - Fixed build with GCC.
- - Updated manual.
_________________

2008-09-30:
- - Updated GLM_GTX_bit implementation.
- - Added GLM_USE_ONLY_XYZW to disable multiple component names.
- - Updated GLM_GTX_euler_angles extension: added yawPitchRoll function.
_________________

2008-09-29:
- - Fixed half vector build.
- - Updated GLM_GTX_vector_angle: Added orientedAngleFromRef function.
- - Deprecated GLM_GTX_mul extension. Features moved in GLM_GTX_verbose_operator.
- - Updated GLM_GTX_verbose_operator: Added mad function.
_________________

2008-09-28:
- - Fixed missing inline in tvec3 and tvec4 definisions.
- - New implementation of hvec3 thought specialisation of tvec3 template.
- - New implementation of hvec4 thought specialisation of tvec4 template.
- - Fixed tvec4 operators than where applied just on 3 components.
_________________

2008-09-27:
- - Added build option for build that support anonymous structure.
- - Fixed missing inline in tvec2 definision.
- - New implementation of hvec2 thought specialisation of tvec2 template.
_________________

2008-09-26:
- - Updated documentation.
- - GLM 0.8.0 beta1 released.
_________________

2008-09-25:
- - Fixed static asserts within vector and matrix types.
- - Updated mix function implementation, support for boolean vectors.
_________________

2008-09-24:
- - Fixed static asserts.
- - Added some asserts.
- - Updated matrices operator[].
_________________

2008-09-23:
- - Added GLM_VIRTREV_equal_operator: Operators that compare vectors.
- - Fixed build errors from static asserts.
_________________

2008-09-22:
- - Fixed build errors with GCC.
- - Fixed func_trigonometric.h encoding.
_________________

2008-09-21:
- - Deleted GLM_GTX_INCLUDED.
- - Fixed build errors.
- - Fixed GLM_GTX_random: Bad assert definition.
_________________

2008-09-20:
- - Updated manual.
- - Updated swizzle operators with swizzle function.
- - Added modf definition.
_________________

2008-09-17:
- - Added namespaces to sort type and function in the API documentation.
- - Deleted some documentations from {__}*GTX types and functions from extensions.
- - Updated vectors and matrices documentation.
- - Updated scalars and precisions documentation.
- - Fixed some vectors and matrices declaration missing in some cases.
- - Updated overall documentation.
_________________

2008-09-16:
- - Included all types in type namespace.
_________________

2008-09-15:
- - Added type namespace in glm namespace for documentation purpose.
_________________

2008-09-14:
- - Added modf definition for vec2, vec3 and vec4.
- - Updated static assert to exponential, geometric, matrix, noise, trigonometric and vector relational functions.
- - Added GLM_GTC_matrix_transformation extensions: API and translate, rotate and scale definisions.
- - Deprecated GLM_GTX_gpu_shader4, GLM_GTX_hyperbolic, GLM_GTX_flexible_mix, GLM_GTX_round.
- - Added definition of mix with last parameter being booleans.
- - Added hint classes.
- - Updated GLM_GTX_integer, GLM_GTX_unsigned_int, GLM_GTX_half and GLM_GTX_double_float extensions.
_________________

2008-09-13:
- - Added trait code (class type) to detect bool, float, int and uint numbers.
- - Updated static assert to common functions.
_________________

2008-09-12:
- - Updated noise function definitions... Still unsure for staying in GLM 0.8.0.
_________________

2008-09-11:
- - Updated overall documentation, doxygen documentation.
_________________

2008-09-10:
- - Updated documentation and implementation of all matrix functions.
- - Added declaration of main functions for each function group namespace.
- - Updated documentation and API of all noise functions... Should be deleted becose of bad implementation?
_________________

2008-09-09:
- - Updated documentation and implementation of all vector relational functions.
- - Added transpose_type typedef to all matrix types.
- - Added is_matrix static constantes to all matrix types for static assert usage.
- - Added is_vector static constantes to all vector types for static assert usage.
_________________

2008-09-08:
- - Updated documentation and implementation of all geometric functions.
_________________

2008-09-07:
- - Updated documentation and implementation of all exponential functions.
_________________

2008-09-06:
- - Added isinf and isnan GLSL 1.3 functions.
- - Updated common functions code, mostly syntax.
- - Added trunc, round and roundEven GLSL 1.3 functions.
- - Added sinh, cosh, tanh, asinh, acosh and atanh GLSL 1.3 functions.
- - Updated documentation and implementation of all trigonometric functions.
_________________

2008-09-05:
- - Added bool_type implementation detail to vector types.
_________________

2008-09-04:
- - Added API and documentation of all common functions.
_________________

2008-09-03:
- - Updated GLM_GTX_extensions: Define operator* as a cross product. Still in WIP...
_________________

2008-09-02:
- - Updated *vec2 and *vec3 with precision types missed and documentation.
_________________

2008-09-01:
- - Fixed 2085925 bug: rotateGTX didn't use it quaternion parameter.
_________________

2008-08-31:
- - Added test files.
- - Updated *vec4 with precision types missed and documentation.
_________________

2008-08-30:
- - Renamed implementation files.
- - Updated type pre-declarations.
_________________

2008-08-25:
- - Fixed GLM_GTX_matrix_projection extension: frustum function gave a wrong result.
_________________

2008-08-24:
- - Updated matrix types functions and extensions according new vectors types.
_________________

2008-08-23:
- - Added new vector types implementation.
_________________

2008-08-22:
- - Added support for new GLSL 1.30 precision model.
_________________

2008-08-19:
- - Added GLSL 1.30.08 unsigned int types support
_________________

2008-08-17:
- - Added detail::vec1 type.
- - Added detail::desc for types description and higher templatisation.
_________________

2008-08-11:
- - Started work on GLM 0.8.x based on GLSL 1.3 specification.
- - Visual Studio .NET 2003 (7.1) is now deprecated.
- - GLM_FORCE_HALF_COMPATIBILITY is now deprecated.
- - GLM_AUTO_CAST is now deprecated.
_________________

2008-08-09:
- - Updated GLM_GTX_fast_square_root implementation: Updated fastInverseSqrt
_________________

2008-08-08:
- - Updated documentation.
- - GLM 0.7.6 released.
_________________

2008-08-06:
- - gl_svec* (for GLshort) added in GLM_virtrev_gl extension.
- - Updated detail implementation of vector types.
- - Make Visual C++ build with Visual C++ extensions disabled.
- - Rename "not" to "not_" for compatibility.
- - Fixed GLM_GTX_fast_square_root build.
_________________

2008-07-31:
- - Fixed GLM_GTX_component_wise extension.
_________________

2008-07-29:
- - Updated mix functions for optimization purpose.
- - Fixed mix functions static assert.
- - Updated test files.
- - Updated GLM_GTX_statistics_operation.
_________________

2008-07-24:
- - Fixed GLM_GTX_bit extension: isPowerOfTwoGTX works for signed int too.
- - Updated GLM_GTX_norm extension: Added distance2, l2norm and lxNorm functions.
- - Added some boost static assert.
_________________

2008-07-23:
- - Added GLM_GTX_std_based_type: Types based on C++ conventions.
- - Added files for extension tests.
_________________

2008-07-22:
- - Fixed GLM_GTX_fast_square_root: Updated fastDistance.
_________________

2008-07-16:
- - Fixed GLM_GTX_fast_square_root: Wrong const and updated fastLenght.
- - Optimized mix core function
_________________

2008-07-14:
- - Fixed GLM_GTX_epsilon: Wrong function definitions for y, z and w components.
_________________

2008-07-10:
- - Fixed GLM_GTX_flexible: Flexible with scalar only failed.
- - Fixed GLM_GTX_quaternion: One rotate overloaded function undefined.
_________________

2008-07-08:
- - Some fixes on GLM_GTX_intersect extension.
_________________

2008-07-05:
- - GLM 0.7.5 released.
_________________

2008-07-03:
- - Updated documentation.
_________________

2008-07-01:
- - Updated message system.
_________________

2008-06-26:
- - Added new message system.
_________________

2008-06-13:
- - Fixed GLM_GTX_normal extension.
_________________

2008-06-07:
- - Updated GLM_GTX_unsigned_int extension. (New typedef extensions)
_________________

2008-06-06:
- - Added new precompiler system.
_________________

2008-06-04:
- - Increase C++ conformance.
_________________

2008-06-01:
- - Fixed build errors.
- - GLM 0.7.4 released.
_________________

2008-05-30:
- - Updated external dependencies system.
- - Updated manual.
- - Fixed GLM_GTX_random extension: Fixed build with GCC.
- - Fixed GLM_GTX_string_cast extension: Fixed build with GCC 3.4 due to GCC anonymuous namespace bug.
_________________

2008-05-29:
- - Fixed GLM_GTX_transform2 extension: scaleBias didn't built.
_________________

2008-05-26:
- - Added GLM_VIRTREV_xstream extension: XML output for GLM types.
- - Added external library system
_________________

2008-05-24:
- - Updated GLM_GTX_string_cast extension: Support of non-square matrices.
- - GLM 0.7.3 released.
_________________

2008-05-23:
- - Fixed mat2 product.
_________________

2008-05-18:
- - Fixed GLM_GTX_transform2 dependencies.
_________________

2008-05-01:
- - Added GLM_VIRTREV_gl extension: Vector and matrix integration with OpenGL.
_________________

2008-04-28:
- - Updated GLM_GTX_number_precision extension: Added uint type.
- - Added GLM_GTX_string_cast extension: Create formated string from GLM type instances.
- - Updated GLM_GTX_transform2: added scaleBias matrix build
_________________

2008-04-27:
- - GLM 0.7.2 released.
_________________

2008-04-26:
- - Added GLM_AUTO_CAST setup option.
- - Updated documentation
_________________

2008-04-23:
- - Updated GLM_GTX_inverse, added affine inverse functions for fast matrix inverts.
- - Updated overall documentation
- - Added trait typedef to all GLM data types
_________________

2008-04-22:
- - Updated GLM_GTX_compatibility documentation.
- - Fixed GLM_GTX_random, gauss functions didn't build.
_________________

2008-04-13:
- - Added few SSE code.
- - Fixed matrix projections.
_________________

2008-04-07:
- - Added GLM_SWIZZLE_FUNC swizzle option.
_________________

2008-04-06:
- - Updated GLM_GTX_euler_angles documentation.
_________________

2008-03-26:
- - Updated documentation.
_________________

2008-03-24:
- - Fixed GLM_GTX_associated_min_max build on GCC.
- - Updated GLM_GTX_matrix_projection.
- - GLM 0.7.1 released.
_________________

2008-03-22:
- - GLM 0.7.0 released.
_________________

2008-03-20:
- - Updated manual.
_________________

2008-03-16:
- - Updated documentation.
- - Added GLM_GTX_associated_min_max extension.
_________________

2008-03-15:
- - Fixed not function with GCC.
_________________

2008-03-12:
- - Fixed interger pow function for the case of a null power.
_________________

2008-02-20:
- - Fixed mat4x2 and mat4x3 GCC build.
- - Updated documentation.
- - Reseted glmsetup.h to default values.
_________________

2008-02-17:
- - Fixed missing xvec4 constructor with bool argument definition.
- - Fixed namespace collision in quaternion inverse function.
- - Fixed swizzle operators involved in operations.
- - Change license from GNU LGPL to MIT.
_________________

2008-02-16:
- - Fixed missing xvec4 ++ and -- operator definition.
_________________

2008-01-05:
- - Move some implementation details into detail namespace.
_________________

2008-01-04:
- - Fixed cast between matrices of different sizes.
_________________

2008-01-02:
- - Fixed matNxM type cast to other matNxM type.
_________________

2007-12-15:
- - Fixed GLM_GTX_matrix_projection extension.
_________________

2007-12-13:
- - GLM 0.6.4 released.
_________________

2007-12-09:
- - Fixed swizzle operators.
_________________

2007-11-21:
- - Fixed GLM_GTX_matrix_selection extension.
_________________

2007-11-14:
- - Updated GLM_GTX_color_space extension. Added luminosity function.
_________________

2007-11-05:
- - GLM 0.6.3 released.
_________________

2007-10-31:
- - Fixed 3DSMax SDK conflict with GLM.
_________________

2007-10-29:
- - Updated GLM_GTX_quaternion. Added sqrt function.
_________________

2007-10-28:
- - Updated GLM_GTX_random extension.
- - Updated GLM_GTX_half extension.
_________________

2007-10-21:
- - Fixed matrices operator const T*() const.
_________________

2007-10-08:
- - Fixed GLM_GTX_normalize_dot extension.
- - GLM 0.6.2 released.
_________________

2007-10-07:
- - GLM 0.6.1 released.
_________________

2007-10-02:
- - Added GLM_GTX_normalize_dot extension: Faster way to normalize parameters before a dot product
_________________

2007-09-22:
- - Fixed namespace error on GLM_GTX_matx extension
_________________

2007-09-21:
- - Added GLM_GTX_flexible_mix extension: mix function can take different types parameters
_________________

2007-09-16:
- - Updated documentation.
- - GLM 0.6.0 released.
_________________

2007-09-15:
- - Added GLM_SINGLE_COMP_NAME to fixed multiple component names on half types with GCC.
_________________

2007-09-10:
- - Added #define GLM_GTX_INCLUDED to automatically include all GTX extensions in the language.
_________________

2007-09-09:
- - Updated extensions documentation.
- - Updated GLM_GTX_quaternion extension: squad, euler angles conversions
_________________

2007-09-06:
- - Updated GLM_GTX_compatibility extension: Added isfinite isinf, and isnan.
_________________

2007-08-26:
- - Updated GLM_GTX_random extension: Gauss distribution, spherical distribution, linear distribution.
_________________

2007-08-21:
- - Fixed namespace issues with Visual Studio 8.0 SP1.
_________________

2007-08-20:
- - Updated GLM_GTX_gpu_shader4 extension: Add bit operators.
- - Updated GLM_GTX_integer extension: Delete some code duplications.
- - Added GLM_GTX_unsigned_int extension.
_________________

2007-08-19:
- - Fixed namespace issues with Visual Studio 8.0 SP1.
- - Added new namespace management for extensions.
- - Added automatic compiler ditection, no more compiler setup.
_________________

2007-07-31:
- - Updated GLM_GTX_number_precision extension.
- - Updated usertype.dat for Visual Studio.
- - Updated GLM_GTX_random extension.
_________________

2007-06-21:
- - Added GLM_GTX_color_cast extension.
- - Updated GLM_GTX_quaternion extension.
_________________

2007-05-22:
- - Added GLM_GTX_verbose_operator extension.
_________________

2007-05-21:
- - Added GLM_GTX_component_wise extension.
_________________

2007-05-10:
- - Added GLM_GTX_number_precision extension.
_________________

2007-04-16:
- - Updated GLM_GTX_bit extension.
_________________

2007-04-10:
- - Updated GLM_GTX_bit extension.
_________________

2007-04-04:
- - Updated GLM_GTX_fast_square_root extension.
- - Updated GLM_GTX_fast_trigonometry extension.
- - Updated GLM_GTX_fast_exponential extension.
- - Added GLM_GTX_mul extension.
- - Fixed GLM_GTX_epsilon extension.
_________________

2007-04-03:
- - Added GLM_GTX_mixed_product extension.
- - Added GLM_GTX_intersect extension.
- - Updated GLM_GTX_matrix_access extension.
_________________

2007-03-20:
- - Added bits operators in comment for vec2, vec3 and vec4.
- - Fixed friendly conformance to GLM_GTX_double.
_________________

2007-03-18:
- - Fixed size_type errors.
_________________

2007-03-14:
- - Updated GLM_GTX_quaternion extension.
- - Added GLM_GTX_bit extension.
- - Added value_type, size_type and value_size typedefs and value to all types.
_________________

2007-03-09:
- - Updated GLM_GTX_compatibility extension.
- - Fixed GLM_GTX_color_space extension.
_________________

2007-03-06:
- - Added GLM_GTX_polar_coordinates extension.
_________________

2007-03-05:
- - Added GLM_GTX_vector_query extension.
- - Added GLM_GTX_matrix_query extension.
_________________

2007-03-01:
- - Fixed square matrices division operators.
_________________

2007-02-28:
- - Added GLM_GTX_mat_mn extension.
_________________

2007-02-22:
- - Updated GLM_GTX_color_space extension.
_________________

2007-02-21:
- - Added GLM_GTX_vecx extension.
- - Added GLM_GTX_matx extension.
_________________

2007-02-19:
- - GLM 0.5.1 released.
_________________

2006-02-08:
- - Updated Visual Studio projects.
_________________

2006-02-01:
- - Updated GLM_GTX_compatibility extension.
_________________

2006-01-26:
- - Added GLM_GTX_hyperbolic extension.
- - Added GLM_GTX_spline extension.
- - Fixed unProject and project functions from GLM_GTX_matrix_projection extension.
_________________

2006-01-24:
- - Added GLM_GTX_compatibility extension.
_________________

2006-01-19:
- - Add some undefined write swizzle operators from bvec*
- - Fixed vectors component access operators[] from bvec*
- - Fixed bvec* equal operators with write swizzle operators
- - Fixed various vector constructors
- - Updated swizzle operators, _xvec* and _bvec* share the same code
_________________

2006-01-11:
- - Add some undefined write swizzle operators from xvec*
- - Fixed some write operator considered as read operator from xvec*
- - Fixed vectors component access operators[] from xvec*
- - Fixed not function setup according compilers
_________________

2006-01-06:
- - Added user manual.
- - GLM 0.5.0 released.
_________________

2006-01-05:
- - Updated overloaded functions of matrixCompMult.
- - Added transpose and outerProduct functions in the GLM core.
_________________

2006-12-15:
- - Fixed GLM_GTX_rotate_vector extension.
_________________

2006-12-07:
- - Fixed GLM_GTX_interger extension conformance.
_________________

2006-12-06:
- - Improved "friendly conformance" support.
- - Improved quaternion implementation.
_________________

2006-12-03:
- - Updated setup options.
_________________

2006-11-26:
- - Added new setup options for swizzle operators.
_________________

2006-11-14:
- - Updated GLM_GTX_integer extension.
_________________

2006-11-13:
- - Added GLM_GTX_gpu_shader4 extension.
- - Added extension errors management.
- - Added compilers management.
- - Added conformance management.
_________________

2006-11-02:
- - Added GLM_GTX_rotate_vector extension.
_________________

2006-10-15:
- - Updated product operators to non-squared matrices
_________________

2006-10-01:
- - Updated tmat4x3 and tmat3x4 types
- - Added tmat2x3, tmat3x2, tmat2x4 and tmat4x2
- - Clarified ToDo comments for missing operators with non-squared matrices types
_________________

2006-08-05:
- - Added GLSL 1.2 mat4x3 and mat3x4
- - Added missing declaration of mat* operators
- - Added _xmat* with _xvec* division operators
_________________

2006-08-04:
- - Added GLSL 1.2 non-squared matrices files
_________________

2006-07-17:
- - fastCos and fastSin are defined between -2 pi and 2 pi
_________________

2006-06-18:
- - Added swizzle operators for xvec4
- - Added swizzle operators for bvec4
_________________

2006-06-17:
- - Added swizzle operators for bvec2>
- - Implicit conversion from *ref* to *vec*
- - Added swizzles operators for xvec3
- - Added swizzles operators for bvec3
_________________

2006-05-29:
- - Separated _*ref* types in different files
- - Added _bref* types
- - Updated _xref* types
_________________

2006-05-28:
- - Added operators for tvec2 swizzles operators management
_________________

2006-05-23:
- - GLM 0.4.1 released.
_________________

2006-05-22:
- - Add 4 examples of use with OpenGL under Windows and Linux
_________________

2006-05-17:
- - GLM 0.4.0 released.
_________________

2006-05-16:
- - It's not anymore required to include windows.h before glm.h whether windows.h is required
_________________

2006-05-04:
- - Improved tvec3 conversions
- - Improved tvec2 conversions
- - Added left hand side vec2 swizzle operators
- - Improved bvec4 conversions
- - Improved bvec3 conversions
- - Improved bvec2 conversions
_________________

2006-04-28:
- - Added _xref* structures for swizzle operators implementation
- - Seperated bvec* and xvec* types in different files
- - Updated core functions code
_________________

2006-04-22:
- - Fixed texture coordinate components access
- - Added GLM_GTX_mul extension.
- - Added GLM_GTX_inertia extension.
- - GLM 0.3.2 released.
_________________

2006-04-21:
- - Added right hand side vec2 swizzle operators
- - Improved tvec4 conversions
_________________

2006-04-20:
- - Updated GLM_GTX_quaterion, added log and exp functions
- - Added GLM_GTX_matrix_major_storage extension.
_________________

2006-04-19:
- - Reorganize types code
- - Complete addition and subtraction vertrices operators
_________________

2006-04-18:
- - Complete addition and subtraction matrices operators
- - Optimize increment and decrement operators
_________________

2006-04-17:
- - Fixed tmat4x4 division
_________________

2006-03-30:
- - Added GLM_GTX_outer_product extension.
_________________

2006-03-28:
- - GLM 0.3.1 released.
_________________

2006-03-27:
- - Added Linux support under GCC 4.0 and 4.1.
_________________

2006-03-26:
- - Optimisation of increment and decrement operators.
_________________

2006-03-20:
- - Added MacOS X support under GCC 4.0.
_________________

2006-02-19:
- - Added GLM_GTX_extend extension to wishlist in position 27.
- - Added GLM_GTX_euler_angles extension to wishlist in position 28.
- - Added Doxygen documentation.
- - GLM 0.3.0 released.
_________________

2006-01-30:
- - Optimized GLM_GTX_integer implementation.
_________________

2006-01-27:
- - Deleted explicit conversions from array to type to prevent unespected conversions.
_________________

2006-01-16:
- - Fixed bugs
- - Improved types conversions.
- - Added GLM_GTX_vector_access extension to wishlist in position 25.
- - Added GLM_GTX_random extension to wishlist in position 26.
_________________

2006-01-13:
- - Fixed bugs
_________________

2006-01-10:
- - Updated GLM_GTX_integer extension.
_________________

2006-01-09:
- - Added GLM_GTX_fast_exponential extension to wishlist in position 24.
_________________

2006-01-08:
- - Optimized _xvec* copy.
_________________

2006-01-07:
- - Added GLM_GTX_fast_trigonometry extension to wishlist in position 23.
- - Added factorial function to GLM_GTX_integer extension.
_________________

2006-01-05:
- - Added GLM_GTX_half extension to wishlist in position 21.
- - Optimized normalize function.
- - Global optimisation for debugging time
- - Added GLM_GTX_integer extension to wishlist in position 18.
- - Optimized clamp function.
_________________

2006-01-04:
- - Added GLM_GTX_fast_square_root extension to wishlist in position 19.
- - Added GLM_GTX_inverse_transpose extension to wishlist in position 20.
- - Fixed missing of vec4 * mat4 operator.
_________________

2005-12-23:
- - Reorganization of extensions.
- - Fixed vec2 constructeur bug.
_________________

2005-11-22:
- - Updated GLM_GTX_length2 extension.
- - Renamed GLM_GTX_length2 extension to GLM_GTX_norm.
_________________

2005-11-12:
- - Fixed GLM_GTX_quaterion implémentation bugs.
_________________

2005-11-09:
- - Updated GLM_GTX_projection extension.
_________________

2005-10-30:
- - Added GLM_GTX_transform2 extension to wishlist in position 18.
_________________

2005-09-28:
- - Updated for GCC 4.0.
_________________

2005-08-12:
- - Fixed normalization bug with LookAtGTX.
_________________

2005-07-15:
- - Add array conversion to GLM types.
_________________

2005-07-02:
- - Added GL_GTX_euler_angles extension to wishlist in position 17.
_________________

2005-06-24:
- - Added GLM_GTX_matrix_selection extension to wishlist in position 16.
- - Added GLM_GTX_matrix_selection extension support.
_________________

2005-06-22:
- - Updated GLM_GTX_projection extension to wishlist in position 15.
_________________

2005-06-21:
- - Added GLM_GTX_projection extension to wishlist in position 15.
_________________

2005-06-09:
- - Fixed bug from rotateGTX with quaternion.
- - Fixed matrix vector product.
- - Add vector usage to describe transformations axis.
_________________

2005-05-05:
- - Added GLM_GTX_quaternion extension support
- - GLM 0.2 released.
_________________

2005-05-02:
- - Add GLM_GTX_transform 2D transform support
_________________

2005-05-01:
- - Add GLM_GTX_transform 3D transform support
_________________

2005-04-29:
- - Updated GLM_GTX_transform extension to wishlist in position 2
_________________

2005-04-23:
- - Added GLM_GTX_vector_comp_mult extension to whislist in position 14
- - Added GLM_GTX_vector_comp_mult extension support
_________________

2005-04-22:
- - Added GLM_GTX_color_space extension to whislist in position 13
- - Added GLM_GTX_color_space extension support
- - Added GLM_GTX_double extension support
_________________

2005-04-10:
- - Overload of GLSL functions used by extentions instead of create new functions
_________________

2005-04-08:
- - Added GLM_GTX_optimum_pow extension to whislist in position 11
- - Added GLM_GTX_double extension to wishlist in position 12
_________________

2005-04-03:
- - Updated GLM_GTX_matrix_cross_product extension to wishlist in position 8
- - Added GLM_GTX_matrix_cross_product extension support
- - Added GLM_GTX_projection extension to whislist in position 9
- - Added GLM_GTX_perpendicular extension to wishlist in position 10
- - Added GLM_GTX_projection extension support
- - Added GLM_GTX_perpendicular extension support
- - Changed extensions organisation
_________________

2005-03-27:
- - Added *vec* by *mat* product
- - Updated GLM_GTX_determinant extension to wishlist in position 4
- - Updated GLM_GTX_inverse extension to wishlist in position 5
- - Updated GLM_GTX_length2 extension to wishlist in position 6
- - Updated GLM_GTX_orthonormalize extension to wishlist in position 7
- - Added GLM_GTX_determinant extension support
- - Added GLM_GTX_inverse extension support
- - Added GLM_GTX_length2 extension support
- - Added GLM_GTX_orthonormalize extension support
_________________

2005-03-21:
- - Added bug #7 : Vector constructor non conform
- - Updated issue #13 : Only ARB can allow extensions adding new operators
_________________

2005-03-13:
- - Added GLM_GTX_orthonormalize extension to wishlist in position 7
- - Added GLM_GTX_matrix_cross_product extension to wishlist in position 8
- - Updated issue #10 : Using template functions members
- - Updated *vec* types following issue #10 guidance
_________________

2005-03-06:
- - Fixed bug #2 with '#error'
_________________

2005-03-05:
- - Updated issue #4
_________________

2005-03-04:
- - Updated issue #13
- - Updated issue #8
- - Updated issue #6
- - Updated issue #4
_________________

2005-03-03:
- - Bugs #2 and #5 are now one
- - Updated / operator for vec* types with support of the divisibility of two vectors, and the divisibility term to term
_________________

2005-02-28:
- - Updated GLM_GTX_transpose extension to wishlist in position 8
- - Added GLM_GTX_transpose extension support
- - Fixed mat* types constructor scalar-parameted
_________________

2005-02-27:
- - Fixed mat* types product by a scalar
_________________

2005-02-25:
- - Updated function 'not'
- - Defined identificators following compilers
- - Added GLM_GTX_length2 extension to wishlist in position 6
- - Optimized mat3 type divide operator
_________________

2005-02-21:
- - GLM 0.1 released
_________________

2005-02-18:
- - Updated issue #4
- - Updated issue #6
- - Updated issue #9
- - Updated issue #12
- - Updated issue #13
- - Updated issues ordering
_________________

2005-02-17:
- - Updated vec* types + operator. Can now add a vector and a scalar, term by term
- - Updated vec* types - operator. Can now minus a vector and a scalar, term by term
- - Updated vec* types * operator. Can now multiply a vector and a scalar, term by term
- - Deleted issue #11, which was erroneous
_________________

2005-02-15:
- - Deleted from wishlist extension #6 : refract function is defined by version 1.10.59 from GLSL specs
- - Updated reflect function tests
- - Added fucntion reflect with its tests
- - Using typename 'genType' for functions templates
- - Added bug #5
- - Updated function sqrt
- - Added function log with its tests
- - Added function exp with its tests
- - Added function log2 with its tests
- - Updated cross function
- - Updated bvec* types data implementation
- - Added bug #6
_________________

2005-02-14:
- - Updated issue #13
- - Converted text files into XML
- - Modified files hierarchy
_________________

2005-02-13:
- - Updated clamp function
- - Added function noise1 with its tests
- - Added function noise2 with its tests
- - Added function noise3 with its tests
- - Added function noise4 with its tests
_________________

2005-02-08:
- - Enhanced mat4 type division operator
- - Added function sqrt with its tests
- - Added function inversesqrt with its tests
- - Added function exp2 with its tests
- - Added function log2 with its tests
_________________

2005-02-07:
- - Modified *vec* types constructors implementation, chooses initialisation instead of affectation
- - Added function reflect with its tests
- - Updated tan function
- - Fixed mat4 type * operator
_________________

2005-02-05:
- - Added GLM_GTX_refract extension to wishlist in position 5.
_________________

2005-02-03:
- - Added default constructor for mat* types
_________________

2005-02-02:
- - Added mat2 and vec2 type * operator
- - Added mat3 and vec3 type * operator
- - Added mat4 and vec4 type * operator
_________________

2005-02-01:
- - Added GLM_GTX_transpose extension to wishlist in position 3
- - Added GLM_GTX_determinant extension to wishlist in position 4
- - Added GLM_GTX_inverse extension to wishlist in position 5
- - Added / operator for two mat3 types
- - Enhanced *vec* types conception
- - Enhanced *mat* types conception
_________________

2005-01-31:
- - Updated bug #3
- - Updated issue #10
- - Added function matrixCompMult with its tests
- - Updated mat* type constant access operators
- - Added bug #4 : Conversion problem between two different *vec* types
_________________

2005-01-30:
- - Added bug #1 : Inability to select multiple components
- - Added bug #2 : Some *vec* types conversions are not available
- - Added bug #3 : 'not' is a C++ ISO keyword
- - Added * operator for two mat3 types
- - Added * operator for two mat4 types
- - Updated mat* types
- - Updated GLM_GTX_quaternion extension to wishlist in position 1
- - Updated GLM_GTX_transform extension to wishlist in position 2
_________________

2005-01-27:
- - Added mat2 type
- - Added * operator for two mat2 types
- - Added issue #14
- - Added issue #15
- - Added mat3 type
- - Added mat4 type
_________________

2005-01-26:
- - Added function mix with its tests
- - Added function step with its tests
- - Added function smoothstep with its tests
- - Updated issue #10
- - Updated issue #12
- - Updated issue #8
- - Added type bvec4 forgotten declaration
- - Added function lessThan with its tests
- - Added function lessThanEqual with its tests
- - Added function greaterThan with its tests
- - Added function greaterThanEqual with its tests
- - Added function equal with its tests
- - Added function notEqual with its tests
- - Added function any with its tests
- - Added function all with its tests
- - Added function not with its tests
_________________

2005-01-24:
- - Added function fract with its tests
- - Added function mod with its tests
- - Added function clamp with its tests
_________________

2005-01-23:
- - Added function mod with its tests
- - Added function abs with its tests
- - Added function sign with its tests
- - Added function floor with its tests
- - Added function ceil with its tests
- - Added function min with its tests
- - Added function max with its tests
_________________

2005-01-22:
- - Updated issue #13
- - Added temporary namespace called 'glm'
- - Added function pow with its tests
_________________

2005-01-19:
- - Updated sin function tests
- - Enhanced trigonometrics functions
- - Enhanced geometric functions
_________________

2005-01-18:
- - Added xvec* type constructor taking a single scalar as parameter.
- - Added xvec* into xvec3 type conversion
- - Added xvec* into xvec4 type conversion
- - Added xvec* into bvec2 type conversion
- - Added xvec* into bvec3 type conversion
- - Added xvec* into bvec4 type conversion
- - Added function sin with its tests
- - Added function cos with its tests
- - Added function tan with its tests
- - Added function asin with its tests
- - Added function acos with its tests
- - Added function atan with its tests
- - Added issue #13
_________________

2005-01-17:
- - Added function radians with its tests
- - Added function degrees with its tests
- - Added issue #9
_________________

2005-01-16:
- - Separated *vec* types definition from declaration
- - Added xvec* into xvec2 type conversion
- - Updated issue #11
- - Added issue #12
_________________

2005-01-15:
- - Using 'union' for multiple access to *vec* types components
- - Added issue #11
- - Deleted __*vec1GT following issue #11 guidance
- - Closed issue #2
_________________

2005-01-13:
- - Added function normalize with its tests
- - Added function faceforward with its tests
_________________

2005-01-12:
- - Added function cross with its tests
- - Added a function that can determine *vec* types size, and write beyond GLSL 1.051 specs
- - Added function lenght with its tests
- - Added function distance with its tests
- - Added function dot with its tests
- - Closed issue #1
_________________

2005-01-10:
- - Renamed intern types _vec* into _xvec*
- - Separated _xvec* types data, operators and accesses
- - Added bvec2 type
- - Added __bvec1GT type beyond GLSL 1.051 specs
_________________

2005-01-09:
- - Added types vec2 and ivec2
- - Added types vec3 and ivec3
- - Added types vec4 and ivec4
- - Added types __vec1GT and __ivec1GT, write beyond GLSL 1.051 specs
_________________

- Copyright © 2005-2008 G-Truc Creation
\ No newline at end of file +OpenGL Mathematics : Changelog
OpenGL Mathematics
GLSL + Optional features = OpenGL Mathematics (GLM).
A C++ mathematics library for 3D graphics.


2010-03-17:
+ - Promoted double types
_________________

2010-01-28:
+ - Removed global inclusion.
+ - Removed auto cast setup.
+ - Removed compatibility setup.
+ - Clean up and simplify setup.hpp
+ - Fixed website links
_________________

2010-01-26:
+ - Added missing inline.
+ - Added common vecType for vector based types.
+ - Updated copyright date.
+ - Refactoring of type precision
+ - GLM types are now more generic
+ - Extract vec1 code
+ - Reduced namespaces count
_________________

2010-01-25:
+ - GLM 0.8.4.4 released.
_________________

2010-01-20:
+ - Fixed warnings.
_________________

2009-11-25:
+ - Added texcoord wrapping through GLM_IMG_wrap extension.
_________________

2009-11-20:
+ - Reorganized SVN directory.
_________________

2009-11-16:
+ - GLM 0.8.4.3 released.
_________________

2009-11-12:
+ - Fixed half arithmetic.
_________________

2009-11-11:
+ - Added scalars support for GLM_IMG_multiple.
_________________

2009-11-05:
+ - Fixed setup defines.
_________________

2009-10-27:
+ - Added GLM_IMG_multiple extensions and unit tests.
_________________

2009-10-19:
+ - GLM 0.8.4.2 released.
_________________

2009-10-10:
+ - Fixed half.
_________________

2009-10-05:
+ - GLM 0.8.4.1 released.
_________________

2009-10-02:
+ - Updated documentation.
_________________

2009-09-30:
+ - Updated manual.
+ - Added static assert implementation.
+ - Removed unuse GLM_SWIZZLE_FUNC.
_________________

2009-09-23:
+ - Some progress on fixing GLM for MacOSX comflics.
_________________

2009-09-22:
+ - Fixed GLM_GTX_quaternion extension: cross and intermediate.
_________________

2009-09-17:
+ - Fixed quaternion angle.
_________________

2009-09-16:
+ - Updated documentation.
+ - GLM 0.8.4.0 released.
_________________

2009-09-14:
+ - Added Visual Studio 2010 support.
+ - Fixed build on GCC.
+ - Added GCC 4.4 support.
_________________

2009-09-03:
+ - Added no initilization constructor to vec4.
_________________

2009-09-01:
+ - Added no initilization constructor to mat4.
+ - Updated GLM_GTC_matrix_transform: faster rotate.
_________________

2009-08-29:
+ - Added GLM_GTX_matrix_operation: build diagonal matrix.
+ - Updated GLM_GTC_matrix_transform: faster scaling.
_________________

2009-08-28:
+ - Fixed transpose function for mat4x3.
+ - Optimized translate function for mat4 matrix: ~184 cycles instead of ~592 cycles on Q6600.
_________________

2009-08-24:
+ - Fixed OpenGL dependence.
+ - Added OpenGL 3 dependence.
_________________

2009-08-23:
+ - Fixed parameter definition and definition mismatch.
_________________

2009-08-11:
+ - Fixed GLM_GTC_matrix_projection.
+ - Updated GLM_GTX_transform: Added missing entry points.
+ - GLM 0.8.3.5 released.
_________________

2009-08-10:
+ - Move inverse function to core following GLSL 1.4 specification.
+ - Move determinant function to core following GLSL 1.5 specification.
+ - GLM 0.8.3.4 released.
_________________

2009-07-22:
+ - Fixed GLM_GTX_matrix_query extension: Fixed row_size and col_size() calls.
+ - Fixed GLM_GTX_matrix_access extension: Fixed row_size calls.
_________________

2009-07-03:
+ - Fixed GLM_GTX_string_cast extension: Build on GCC 4.
+ - Fixed GLM_GTC_quaternion extension: rotate function build.
_________________

2009-06-25:
+ - Fixed GLM_GTC_matrix_transform extension: Fixed matrix operation order; like OpenGL instead of like Direct3D.
+ - GLM 0.8.3.3 released.
_________________

2009-06-16:
+ - Fixed GLM_GTX_rotate_vector extension: Fixed rotate function.
_________________

2009-06-09:
+ - Fixed matrix external operators.
_________________

2009-06-04:
+ - Added GLM_GTC_type_precision extension.
+ - GLM 0.8.3.2 released.
_________________

2009-06-02:
+ - Fixed GLM_GTC_matrix_transform: Fixed mat4 inverse function.
_________________

2009-05-22:
+ - Added GLM_GTC_quaternion extension.
+ - Updated GLM_GTC_quaternion extension.
+ - Fixed GLM_GTC_matrix_transform extension.
_________________

2009-05-21:
+ - GLM 0.8.3.1 released.
_________________

2009-05-20:
+ - Updated GLM_GTX_bit extension: Added lowestBit functions.
+ - Fixed old extention inclusion method.
_________________

2009-05-19:
+ - Updated sse mat4 implementation.
_________________

2009-05-18:
+ - Updated GLM_GTX_bit extension: Added bitRevert, bitRotateRight and bitRotateLeft functions.
_________________

2009-05-17:
+ - Added intrinsic like functions for mat4 product and inverse.
_________________

2009-05-15:
+ - Added intrinsic like functions for mat4 and vec4 products.
_________________

2009-05-06:
+ - Fixed GLM_GTX_type_ptr extension.
+ - GLM 0.8.3.0 released.
_________________

2009-05-06:
+ - Fixed GLM_GTC_matrix_projection: glm::project build.
_________________

2009-05-05:
+ - Added new extensions inclusion system.
_________________

2009-05-01:
+ - Fixed GLM_GTX_determinant extension.
+ - Reorganized extensions.
+ - Removed GLM_GTX_vector_comp_mult and GLM_GTX_mat4x3 extensions.
+ - Renamed .h files to .hpp.
_________________

2009-04-30:
+ - Added GLM_GTC_half_float.
_________________

2009-04-29:
+ - Fixed GLM_GTX_perpendicular extension.
+ - Fixed GLM_GTX_matrix_projection extension.
+ - Fixed GLM_GTX_transform2 extension.
_________________

2009-04-27:
+ - Added GLM_GTC_matrix_operation.
+ - Added GLM_GTC_matrix_transform.
+ - Added GLM_GTC_matrix_projection.
+ - Added GLM_GTC_double_float.
_________________

2009-04-20:
+ - Fixed bug 2774738.
+ - Fixed bug 2774015.
_________________

2009-04-01:
+ - GLM 0.8.2.3 released.
_________________

2009-03-30:
+ - Updaded mix function: Makes it more flexible, types wise.
_________________

2009-03-06:
+ - Fixed GLM_GTX_perpendicular and GLM_GTX_projection.
+ - Added GLM_GTX_radial_gradient extensions.
_________________

2009-02-24:
+ - Fixed GCC 4.3 pedantic build.
+ - GLM 0.8.2.2 released.
_________________

2009-02-19:
+ - Removed all deprecated ARB conventions.
_________________

2009-02-18:
+ - Fixed highp_int_t and highp_uint_t with Linux 64.
+ - Fixed GCC 4.3 'extra ;' with pedentic build.
_________________

2009-02-13:
+ - Fixed build.
+ - GLM 0.8.2.1 released.
_________________

2009-02-02:
+ - Fixed build.
+ - Added extensions build test.
_________________

2009-01-21:
+ - GLM 0.8.2 released.
_________________

2009-01-20:
+ - Fixed GLM_GTX_intersect: intersectRayTriangle.
_________________

2009-01-17:
+ - Fixed vectors access operators.
+ - Fixed unresolved with quaternions.
_________________

2009-01-16:
+ - Fixed GLM_GTX_norm: Include issue.
_________________

2009-01-01:
+ - Fixed left value swizzle operators.
_________________

2008-12-03:
+ - Fixed GLM_GTX intersect extension: intersectRayTriangleGTX with GCC.
+ - Typo.
_________________

2008-12-02:
+ - Fixed GLM_GTX inverse_transpose extension.
_________________

2008-11-27:
+ - Updated quaternion implementation.
_________________

2008-11-19:
+ - Added GLM_GTX_raw_data extension.
_________________

2008-11-18:
+ - Updated GLM_GTX_bit extension: Added mask function.
_________________

2008-11-14:
+ - Updated GLM_GTX_bit extension: Added extractField function.
+ - Fixed STATIC_ASSERT with 64bits integers.
_________________

2008-10-30:
+ - GLM 0.8.1 released.
_________________

2008-10-29:
+ - Fixed mix function with boolean parameter.
+ - Fixed value_size issue.
_________________

2008-10-28:
+ - Fixed GLM_GTX_component_wise extension.
+ - Added GLM_GTX_color_space_YCoCg extension.
_________________

2008-10-27:
+ - Added GLM_GTX_comparison extension: Defined comparison operators for vectors.
_________________

2008-10-25:
+ - Added GLM_GTX_log_base extension.
_________________

2008-10-24:
+ - Fixed 64 bits integers with GCC.
+ - Deleted deprecated half number setup options.
+ - Updated GLM_GTX_number_precision: Clean up and added missing type definitions.
+ - Updated GLM_GTX_color_cast: Clean up and fixes.
_________________

2008-10-23:
+ - Updated manuel and documentation.
+ - GLM 0.8.0 final released.
_________________

2008-10-22:
+ - Fixed glm::size_t possible collisions with std::size_t. glm::size_t is now named glm::sizeType.
+ - Updated GLM_VIRTREV_address extension: Added none const fonctions.
+ - Updated GLM_GTX_double_float extension: Typo.
+ - Added new API to use extension.
_________________

2008-10-18:
+ - Added logos in varius resolutions.
_________________

2008-10-17:
+ - Updated website.
+ - Added website builder.
_________________

2008-10-15:
+ - Updated GLM_GTX_number_precision: No more warning with type size tests.
+ - Fixed none consistent size_t.
_________________

2008-10-12:
+ - Updated website.
_________________

2008-10-10:
+ - Fixed build.
+ - Updated manual.
+ - GLM 0.8.0 beta3 released.
_________________

2008-10-09:
+ - Added GLM_GTX_reciprocal extension: Define sec, csc, cot, asec, acsc, acot, sech, csch, coth, asech, acsch and acoth functions.
_________________

2008-10-08:
+ - Updated GLM_GTX_euler_angles extension: Added functions to build rotation matrices.
_________________

2008-10-07:
+ - Fixed GLM_GTX_color_space: Fixed conflits with swizzle operators.
+ - Fixed virtrev.h, didn't build.
+ - Fixed genType build.
+ - Fixed GLM_GTX_compatibility build.
+ - Added GLM_VIRTREV_address: Get the address of internal vector or matrix contents.
+ - Fixed code typo and clean up.
_________________

2008-10-06:
+ - Added genType class. For long term base class for all types though template specialization.
+ - Updated project directory.
+ - Added CMakeFile in test directory.
+ - Fixed code typo and clean up.
+ - Fixed GLM_GTX_string_cast: Missing some matrix definitions, some wrong behaviours with matrices.
_________________

2008-10-05:
+ - Added glm::sizeType type which is used to defined size of all vectors and matrices. Defined as std::size_t.
+ - row_size, col_size and is_matrix are now functions.
+ - Fixed use inline on *mat4 function declaration.
+ - Deleted auto cast from *mat4x3.
+ - Fixed missing ++ -- and - operators to some matrix types.
+ - Fixed typo.
_________________

2008-10-04:
+ - GLM 0.8.0 beta2 released.
_________________

2008-10-03:
+ - value_size and is_vector are now functions.
_________________

2008-10-02:
+ - Added GLM_USE_ANONYMOUS_UNION: To use anonymous union to provide multiple component names access for class valType. Visual C++ only.
+ - Removed noise function from documentation.
_________________

2008-10-01:
+ - Fixed build with GCC.
+ - Updated manual.
_________________

2008-09-30:
+ - Updated GLM_GTX_bit implementation.
+ - Added GLM_USE_ONLY_XYZW to disable multiple component names.
+ - Updated GLM_GTX_euler_angles extension: added yawPitchRoll function.
_________________

2008-09-29:
+ - Fixed half vector build.
+ - Updated GLM_GTX_vector_angle: Added orientedAngleFromRef function.
+ - Deprecated GLM_GTX_mul extension. Features moved in GLM_GTX_verbose_operator.
+ - Updated GLM_GTX_verbose_operator: Added mad function.
_________________

2008-09-28:
+ - Fixed missing inline in tvec3 and tvec4 definisions.
+ - New implementation of hvec3 thought specialisation of tvec3 template.
+ - New implementation of hvec4 thought specialisation of tvec4 template.
+ - Fixed tvec4 operators than where applied just on 3 components.
_________________

2008-09-27:
+ - Added build option for build that support anonymous structure.
+ - Fixed missing inline in tvec2 definision.
+ - New implementation of hvec2 thought specialisation of tvec2 template.
_________________

2008-09-26:
+ - Updated documentation.
+ - GLM 0.8.0 beta1 released.
_________________

2008-09-25:
+ - Fixed static asserts within vector and matrix types.
+ - Updated mix function implementation, support for boolean vectors.
_________________

2008-09-24:
+ - Fixed static asserts.
+ - Added some asserts.
+ - Updated matrices operator[].
_________________

2008-09-23:
+ - Added GLM_VIRTREV_equal_operator: Operators that compare vectors.
+ - Fixed build errors from static asserts.
_________________

2008-09-22:
+ - Fixed build errors with GCC.
+ - Fixed func_trigonometric.h encoding.
_________________

2008-09-21:
+ - Deleted GLM_GTX_INCLUDED.
+ - Fixed build errors.
+ - Fixed GLM_GTX_random: Bad assert definition.
_________________

2008-09-20:
+ - Updated manual.
+ - Updated swizzle operators with swizzle function.
+ - Added modf definition.
_________________

2008-09-17:
+ - Added namespaces to sort type and function in the API documentation.
+ - Deleted some documentations from {__}*GTX types and functions from extensions.
+ - Updated vectors and matrices documentation.
+ - Updated scalars and precisions documentation.
+ - Fixed some vectors and matrices declaration missing in some cases.
+ - Updated overall documentation.
_________________

2008-09-16:
+ - Included all types in type namespace.
_________________

2008-09-15:
+ - Added type namespace in glm namespace for documentation purpose.
_________________

2008-09-14:
+ - Added modf definition for vec2, vec3 and vec4.
+ - Updated static assert to exponential, geometric, matrix, noise, trigonometric and vector relational functions.
+ - Added GLM_GTC_matrix_transformation extensions: API and translate, rotate and scale definisions.
+ - Deprecated GLM_GTX_gpu_shader4, GLM_GTX_hyperbolic, GLM_GTX_flexible_mix, GLM_GTX_round.
+ - Added definition of mix with last parameter being booleans.
+ - Added hint classes.
+ - Updated GLM_GTX_integer, GLM_GTX_unsigned_int, GLM_GTX_half and GLM_GTX_double_float extensions.
_________________

2008-09-13:
+ - Added trait code (class type) to detect bool, float, int and uint numbers.
+ - Updated static assert to common functions.
_________________

2008-09-12:
+ - Updated noise function definitions... Still unsure for staying in GLM 0.8.0.
_________________

2008-09-11:
+ - Updated overall documentation, doxygen documentation.
_________________

2008-09-10:
+ - Updated documentation and implementation of all matrix functions.
+ - Added declaration of main functions for each function group namespace.
+ - Updated documentation and API of all noise functions... Should be deleted becose of bad implementation?
_________________

2008-09-09:
+ - Updated documentation and implementation of all vector relational functions.
+ - Added transpose_type typedef to all matrix types.
+ - Added is_matrix static constantes to all matrix types for static assert usage.
+ - Added is_vector static constantes to all vector types for static assert usage.
_________________

2008-09-08:
+ - Updated documentation and implementation of all geometric functions.
_________________

2008-09-07:
+ - Updated documentation and implementation of all exponential functions.
_________________

2008-09-06:
+ - Added isinf and isnan GLSL 1.3 functions.
+ - Updated common functions code, mostly syntax.
+ - Added trunc, round and roundEven GLSL 1.3 functions.
+ - Added sinh, cosh, tanh, asinh, acosh and atanh GLSL 1.3 functions.
+ - Updated documentation and implementation of all trigonometric functions.
_________________

2008-09-05:
+ - Added bool_type implementation detail to vector types.
_________________

2008-09-04:
+ - Added API and documentation of all common functions.
_________________

2008-09-03:
+ - Updated GLM_GTX_extensions: Define operator* as a cross product. Still in WIP...
_________________

2008-09-02:
+ - Updated *vec2 and *vec3 with precision types missed and documentation.
_________________

2008-09-01:
+ - Fixed 2085925 bug: rotateGTX didn't use it quaternion parameter.
_________________

2008-08-31:
+ - Added test files.
+ - Updated *vec4 with precision types missed and documentation.
_________________

2008-08-30:
+ - Renamed implementation files.
+ - Updated type pre-declarations.
_________________

2008-08-25:
+ - Fixed GLM_GTX_matrix_projection extension: frustum function gave a wrong result.
_________________

2008-08-24:
+ - Updated matrix types functions and extensions according new vectors types.
_________________

2008-08-23:
+ - Added new vector types implementation.
_________________

2008-08-22:
+ - Added support for new GLSL 1.30 precision model.
_________________

2008-08-19:
+ - Added GLSL 1.30.08 unsigned int types support
_________________

2008-08-17:
+ - Added detail::vec1 type.
+ - Added detail::desc for types description and higher templatisation.
_________________

2008-08-11:
+ - Started work on GLM 0.8.x based on GLSL 1.3 specification.
+ - Visual Studio .NET 2003 (7.1) is now deprecated.
+ - GLM_FORCE_HALF_COMPATIBILITY is now deprecated.
+ - GLM_AUTO_CAST is now deprecated.
_________________

2008-08-09:
+ - Updated GLM_GTX_fast_square_root implementation: Updated fastInverseSqrt
_________________

2008-08-08:
+ - Updated documentation.
+ - GLM 0.7.6 released.
_________________

2008-08-06:
+ - gl_svec* (for GLshort) added in GLM_virtrev_gl extension.
+ - Updated detail implementation of vector types.
+ - Make Visual C++ build with Visual C++ extensions disabled.
+ - Rename "not" to "not_" for compatibility.
+ - Fixed GLM_GTX_fast_square_root build.
_________________

2008-07-31:
+ - Fixed GLM_GTX_component_wise extension.
_________________

2008-07-29:
+ - Updated mix functions for optimization purpose.
+ - Fixed mix functions static assert.
+ - Updated test files.
+ - Updated GLM_GTX_statistics_operation.
_________________

2008-07-24:
+ - Fixed GLM_GTX_bit extension: isPowerOfTwoGTX works for signed int too.
+ - Updated GLM_GTX_norm extension: Added distance2, l2norm and lxNorm functions.
+ - Added some boost static assert.
_________________

2008-07-23:
+ - Added GLM_GTX_std_based_type: Types based on C++ conventions.
+ - Added files for extension tests.
_________________

2008-07-22:
+ - Fixed GLM_GTX_fast_square_root: Updated fastDistance.
_________________

2008-07-16:
+ - Fixed GLM_GTX_fast_square_root: Wrong const and updated fastLenght.
+ - Optimized mix core function
_________________

2008-07-14:
+ - Fixed GLM_GTX_epsilon: Wrong function definitions for y, z and w components.
_________________

2008-07-10:
+ - Fixed GLM_GTX_flexible: Flexible with scalar only failed.
+ - Fixed GLM_GTX_quaternion: One rotate overloaded function undefined.
_________________

2008-07-08:
+ - Some fixes on GLM_GTX_intersect extension.
_________________

2008-07-05:
+ - GLM 0.7.5 released.
_________________

2008-07-03:
+ - Updated documentation.
_________________

2008-07-01:
+ - Updated message system.
_________________

2008-06-26:
+ - Added new message system.
_________________

2008-06-13:
+ - Fixed GLM_GTX_normal extension.
_________________

2008-06-07:
+ - Updated GLM_GTX_unsigned_int extension. (New typedef extensions)
_________________

2008-06-06:
+ - Added new precompiler system.
_________________

2008-06-04:
+ - Increase C++ conformance.
_________________

2008-06-01:
+ - Fixed build errors.
+ - GLM 0.7.4 released.
_________________

2008-05-30:
+ - Updated external dependencies system.
+ - Updated manual.
+ - Fixed GLM_GTX_random extension: Fixed build with GCC.
+ - Fixed GLM_GTX_string_cast extension: Fixed build with GCC 3.4 due to GCC anonymuous namespace bug.
_________________

2008-05-29:
+ - Fixed GLM_GTX_transform2 extension: scaleBias didn't built.
_________________

2008-05-26:
+ - Added GLM_VIRTREV_xstream extension: XML output for GLM types.
+ - Added external library system
_________________

2008-05-24:
+ - Updated GLM_GTX_string_cast extension: Support of non-square matrices.
+ - GLM 0.7.3 released.
_________________

2008-05-23:
+ - Fixed mat2 product.
_________________

2008-05-18:
+ - Fixed GLM_GTX_transform2 dependencies.
_________________

2008-05-01:
+ - Added GLM_VIRTREV_gl extension: Vector and matrix integration with OpenGL.
_________________

2008-04-28:
+ - Updated GLM_GTX_number_precision extension: Added uint type.
+ - Added GLM_GTX_string_cast extension: Create formated string from GLM type instances.
+ - Updated GLM_GTX_transform2: added scaleBias matrix build
_________________

2008-04-27:
+ - GLM 0.7.2 released.
_________________

2008-04-26:
+ - Added GLM_AUTO_CAST setup option.
+ - Updated documentation
_________________

2008-04-23:
+ - Updated GLM_GTX_inverse, added affine inverse functions for fast matrix inverts.
+ - Updated overall documentation
+ - Added trait typedef to all GLM data types
_________________

2008-04-22:
+ - Updated GLM_GTX_compatibility documentation.
+ - Fixed GLM_GTX_random, gauss functions didn't build.
_________________

2008-04-13:
+ - Added few SSE code.
+ - Fixed matrix projections.
_________________

2008-04-07:
+ - Added GLM_SWIZZLE_FUNC swizzle option.
_________________

2008-04-06:
+ - Updated GLM_GTX_euler_angles documentation.
_________________

2008-03-26:
+ - Updated documentation.
_________________

2008-03-24:
+ - Fixed GLM_GTX_associated_min_max build on GCC.
+ - Updated GLM_GTX_matrix_projection.
+ - GLM 0.7.1 released.
_________________

2008-03-22:
+ - GLM 0.7.0 released.
_________________

2008-03-20:
+ - Updated manual.
_________________

2008-03-16:
+ - Updated documentation.
+ - Added GLM_GTX_associated_min_max extension.
_________________

2008-03-15:
+ - Fixed not function with GCC.
_________________

2008-03-12:
+ - Fixed interger pow function for the case of a null power.
_________________

2008-02-20:
+ - Fixed mat4x2 and mat4x3 GCC build.
+ - Updated documentation.
+ - Reseted glmsetup.h to default values.
_________________

2008-02-17:
+ - Fixed missing xvec4 constructor with bool argument definition.
+ - Fixed namespace collision in quaternion inverse function.
+ - Fixed swizzle operators involved in operations.
+ - Change license from GNU LGPL to MIT.
_________________

2008-02-16:
+ - Fixed missing xvec4 ++ and -- operator definition.
_________________

2008-01-05:
+ - Move some implementation details into detail namespace.
_________________

2008-01-04:
+ - Fixed cast between matrices of different sizes.
_________________

2008-01-02:
+ - Fixed matNxM type cast to other matNxM type.
_________________

2007-12-15:
+ - Fixed GLM_GTX_matrix_projection extension.
_________________

2007-12-13:
+ - GLM 0.6.4 released.
_________________

2007-12-09:
+ - Fixed swizzle operators.
_________________

2007-11-21:
+ - Fixed GLM_GTX_matrix_selection extension.
_________________

2007-11-14:
+ - Updated GLM_GTX_color_space extension. Added luminosity function.
_________________

2007-11-05:
+ - GLM 0.6.3 released.
_________________

2007-10-31:
+ - Fixed 3DSMax SDK conflict with GLM.
_________________

2007-10-29:
+ - Updated GLM_GTX_quaternion. Added sqrt function.
_________________

2007-10-28:
+ - Updated GLM_GTX_random extension.
+ - Updated GLM_GTX_half extension.
_________________

2007-10-21:
+ - Fixed matrices operator const T*() const.
_________________

2007-10-08:
+ - Fixed GLM_GTX_normalize_dot extension.
+ - GLM 0.6.2 released.
_________________

2007-10-07:
+ - GLM 0.6.1 released.
_________________

2007-10-02:
+ - Added GLM_GTX_normalize_dot extension: Faster way to normalize parameters before a dot product
_________________

2007-09-22:
+ - Fixed namespace error on GLM_GTX_matx extension
_________________

2007-09-21:
+ - Added GLM_GTX_flexible_mix extension: mix function can take different types parameters
_________________

2007-09-16:
+ - Updated documentation.
+ - GLM 0.6.0 released.
_________________

2007-09-15:
+ - Added GLM_SINGLE_COMP_NAME to fixed multiple component names on half types with GCC.
_________________

2007-09-10:
+ - Added #define GLM_GTX_INCLUDED to automatically include all GTX extensions in the language.
_________________

2007-09-09:
+ - Updated extensions documentation.
+ - Updated GLM_GTX_quaternion extension: squad, euler angles conversions
_________________

2007-09-06:
+ - Updated GLM_GTX_compatibility extension: Added isfinite isinf, and isnan.
_________________

2007-08-26:
+ - Updated GLM_GTX_random extension: Gauss distribution, spherical distribution, linear distribution.
_________________

2007-08-21:
+ - Fixed namespace issues with Visual Studio 8.0 SP1.
_________________

2007-08-20:
+ - Updated GLM_GTX_gpu_shader4 extension: Add bit operators.
+ - Updated GLM_GTX_integer extension: Delete some code duplications.
+ - Added GLM_GTX_unsigned_int extension.
_________________

2007-08-19:
+ - Fixed namespace issues with Visual Studio 8.0 SP1.
+ - Added new namespace management for extensions.
+ - Added automatic compiler ditection, no more compiler setup.
_________________

2007-07-31:
+ - Updated GLM_GTX_number_precision extension.
+ - Updated usertype.dat for Visual Studio.
+ - Updated GLM_GTX_random extension.
_________________

2007-06-21:
+ - Added GLM_GTX_color_cast extension.
+ - Updated GLM_GTX_quaternion extension.
_________________

2007-05-22:
+ - Added GLM_GTX_verbose_operator extension.
_________________

2007-05-21:
+ - Added GLM_GTX_component_wise extension.
_________________

2007-05-10:
+ - Added GLM_GTX_number_precision extension.
_________________

2007-04-16:
+ - Updated GLM_GTX_bit extension.
_________________

2007-04-10:
+ - Updated GLM_GTX_bit extension.
_________________

2007-04-04:
+ - Updated GLM_GTX_fast_square_root extension.
+ - Updated GLM_GTX_fast_trigonometry extension.
+ - Updated GLM_GTX_fast_exponential extension.
+ - Added GLM_GTX_mul extension.
+ - Fixed GLM_GTX_epsilon extension.
_________________

2007-04-03:
+ - Added GLM_GTX_mixed_product extension.
+ - Added GLM_GTX_intersect extension.
+ - Updated GLM_GTX_matrix_access extension.
_________________

2007-03-20:
+ - Added bits operators in comment for vec2, vec3 and vec4.
+ - Fixed friendly conformance to GLM_GTX_double.
_________________

2007-03-18:
+ - Fixed size_type errors.
_________________

2007-03-14:
+ - Updated GLM_GTX_quaternion extension.
+ - Added GLM_GTX_bit extension.
+ - Added value_type, size_type and value_size typedefs and value to all types.
_________________

2007-03-09:
+ - Updated GLM_GTX_compatibility extension.
+ - Fixed GLM_GTX_color_space extension.
_________________

2007-03-06:
+ - Added GLM_GTX_polar_coordinates extension.
_________________

2007-03-05:
+ - Added GLM_GTX_vector_query extension.
+ - Added GLM_GTX_matrix_query extension.
_________________

2007-03-01:
+ - Fixed square matrices division operators.
_________________

2007-02-28:
+ - Added GLM_GTX_mat_mn extension.
_________________

2007-02-22:
+ - Updated GLM_GTX_color_space extension.
_________________

2007-02-21:
+ - Added GLM_GTX_vecx extension.
+ - Added GLM_GTX_matx extension.
_________________

2007-02-19:
+ - GLM 0.5.1 released.
_________________

2006-02-08:
+ - Updated Visual Studio projects.
_________________

2006-02-01:
+ - Updated GLM_GTX_compatibility extension.
_________________

2006-01-26:
+ - Added GLM_GTX_hyperbolic extension.
+ - Added GLM_GTX_spline extension.
+ - Fixed unProject and project functions from GLM_GTX_matrix_projection extension.
_________________

2006-01-24:
+ - Added GLM_GTX_compatibility extension.
_________________

2006-01-19:
+ - Add some undefined write swizzle operators from bvec*
+ - Fixed vectors component access operators[] from bvec*
+ - Fixed bvec* equal operators with write swizzle operators
+ - Fixed various vector constructors
+ - Updated swizzle operators, _xvec* and _bvec* share the same code
_________________

2006-01-11:
+ - Add some undefined write swizzle operators from xvec*
+ - Fixed some write operator considered as read operator from xvec*
+ - Fixed vectors component access operators[] from xvec*
+ - Fixed not function setup according compilers
_________________

2006-01-06:
+ - Added user manual.
+ - GLM 0.5.0 released.
_________________

2006-01-05:
+ - Updated overloaded functions of matrixCompMult.
+ - Added transpose and outerProduct functions in the GLM core.
_________________

2006-12-15:
+ - Fixed GLM_GTX_rotate_vector extension.
_________________

2006-12-07:
+ - Fixed GLM_GTX_interger extension conformance.
_________________

2006-12-06:
+ - Improved "friendly conformance" support.
+ - Improved quaternion implementation.
_________________

2006-12-03:
+ - Updated setup options.
_________________

2006-11-26:
+ - Added new setup options for swizzle operators.
_________________

2006-11-14:
+ - Updated GLM_GTX_integer extension.
_________________

2006-11-13:
+ - Added GLM_GTX_gpu_shader4 extension.
+ - Added extension errors management.
+ - Added compilers management.
+ - Added conformance management.
_________________

2006-11-02:
+ - Added GLM_GTX_rotate_vector extension.
_________________

2006-10-15:
+ - Updated product operators to non-squared matrices
_________________

2006-10-01:
+ - Updated tmat4x3 and tmat3x4 types
+ - Added tmat2x3, tmat3x2, tmat2x4 and tmat4x2
+ - Clarified ToDo comments for missing operators with non-squared matrices types
_________________

2006-08-05:
+ - Added GLSL 1.2 mat4x3 and mat3x4
+ - Added missing declaration of mat* operators
+ - Added _xmat* with _xvec* division operators
_________________

2006-08-04:
+ - Added GLSL 1.2 non-squared matrices files
_________________

2006-07-17:
+ - fastCos and fastSin are defined between -2 pi and 2 pi
_________________

2006-06-18:
+ - Added swizzle operators for xvec4
+ - Added swizzle operators for bvec4
_________________

2006-06-17:
+ - Added swizzle operators for bvec2>
+ - Implicit conversion from *ref* to *vec*
+ - Added swizzles operators for xvec3
+ - Added swizzles operators for bvec3
_________________

2006-05-29:
+ - Separated _*ref* types in different files
+ - Added _bref* types
+ - Updated _xref* types
_________________

2006-05-28:
+ - Added operators for tvec2 swizzles operators management
_________________

2006-05-23:
+ - GLM 0.4.1 released.
_________________

2006-05-22:
+ - Add 4 examples of use with OpenGL under Windows and Linux
_________________

2006-05-17:
+ - GLM 0.4.0 released.
_________________

2006-05-16:
+ - It's not anymore required to include windows.h before glm.h whether windows.h is required
_________________

2006-05-04:
+ - Improved tvec3 conversions
+ - Improved tvec2 conversions
+ - Added left hand side vec2 swizzle operators
+ - Improved bvec4 conversions
+ - Improved bvec3 conversions
+ - Improved bvec2 conversions
_________________

2006-04-28:
+ - Added _xref* structures for swizzle operators implementation
+ - Seperated bvec* and xvec* types in different files
+ - Updated core functions code
_________________

2006-04-22:
+ - Fixed texture coordinate components access
+ - Added GLM_GTX_mul extension.
+ - Added GLM_GTX_inertia extension.
+ - GLM 0.3.2 released.
_________________

2006-04-21:
+ - Added right hand side vec2 swizzle operators
+ - Improved tvec4 conversions
_________________

2006-04-20:
+ - Updated GLM_GTX_quaterion, added log and exp functions
+ - Added GLM_GTX_matrix_major_storage extension.
_________________

2006-04-19:
+ - Reorganize types code
+ - Complete addition and subtraction vertrices operators
_________________

2006-04-18:
+ - Complete addition and subtraction matrices operators
+ - Optimize increment and decrement operators
_________________

2006-04-17:
+ - Fixed tmat4x4 division
_________________

2006-03-30:
+ - Added GLM_GTX_outer_product extension.
_________________

2006-03-28:
+ - GLM 0.3.1 released.
_________________

2006-03-27:
+ - Added Linux support under GCC 4.0 and 4.1.
_________________

2006-03-26:
+ - Optimisation of increment and decrement operators.
_________________

2006-03-20:
+ - Added MacOS X support under GCC 4.0.
_________________

2006-02-19:
+ - Added GLM_GTX_extend extension to wishlist in position 27.
+ - Added GLM_GTX_euler_angles extension to wishlist in position 28.
+ - Added Doxygen documentation.
+ - GLM 0.3.0 released.
_________________

2006-01-30:
+ - Optimized GLM_GTX_integer implementation.
_________________

2006-01-27:
+ - Deleted explicit conversions from array to type to prevent unespected conversions.
_________________

2006-01-16:
+ - Fixed bugs
+ - Improved types conversions.
+ - Added GLM_GTX_vector_access extension to wishlist in position 25.
+ - Added GLM_GTX_random extension to wishlist in position 26.
_________________

2006-01-13:
+ - Fixed bugs
_________________

2006-01-10:
+ - Updated GLM_GTX_integer extension.
_________________

2006-01-09:
+ - Added GLM_GTX_fast_exponential extension to wishlist in position 24.
_________________

2006-01-08:
+ - Optimized _xvec* copy.
_________________

2006-01-07:
+ - Added GLM_GTX_fast_trigonometry extension to wishlist in position 23.
+ - Added factorial function to GLM_GTX_integer extension.
_________________

2006-01-05:
+ - Added GLM_GTX_half extension to wishlist in position 21.
+ - Optimized normalize function.
+ - Global optimisation for debugging time
+ - Added GLM_GTX_integer extension to wishlist in position 18.
+ - Optimized clamp function.
_________________

2006-01-04:
+ - Added GLM_GTX_fast_square_root extension to wishlist in position 19.
+ - Added GLM_GTX_inverse_transpose extension to wishlist in position 20.
+ - Fixed missing of vec4 * mat4 operator.
_________________

2005-12-23:
+ - Reorganization of extensions.
+ - Fixed vec2 constructeur bug.
_________________

2005-11-22:
+ - Updated GLM_GTX_length2 extension.
+ - Renamed GLM_GTX_length2 extension to GLM_GTX_norm.
_________________

2005-11-12:
+ - Fixed GLM_GTX_quaterion implémentation bugs.
_________________

2005-11-09:
+ - Updated GLM_GTX_projection extension.
_________________

2005-10-30:
+ - Added GLM_GTX_transform2 extension to wishlist in position 18.
_________________

2005-09-28:
+ - Updated for GCC 4.0.
_________________

2005-08-12:
+ - Fixed normalization bug with LookAtGTX.
_________________

2005-07-15:
+ - Add array conversion to GLM types.
_________________

2005-07-02:
+ - Added GL_GTX_euler_angles extension to wishlist in position 17.
_________________

2005-06-24:
+ - Added GLM_GTX_matrix_selection extension to wishlist in position 16.
+ - Added GLM_GTX_matrix_selection extension support.
_________________

2005-06-22:
+ - Updated GLM_GTX_projection extension to wishlist in position 15.
_________________

2005-06-21:
+ - Added GLM_GTX_projection extension to wishlist in position 15.
_________________

2005-06-09:
+ - Fixed bug from rotateGTX with quaternion.
+ - Fixed matrix vector product.
+ - Add vector usage to describe transformations axis.
_________________

2005-05-05:
+ - Added GLM_GTX_quaternion extension support
+ - GLM 0.2 released.
_________________

2005-05-02:
+ - Add GLM_GTX_transform 2D transform support
_________________

2005-05-01:
+ - Add GLM_GTX_transform 3D transform support
_________________

2005-04-29:
+ - Updated GLM_GTX_transform extension to wishlist in position 2
_________________

2005-04-23:
+ - Added GLM_GTX_vector_comp_mult extension to whislist in position 14
+ - Added GLM_GTX_vector_comp_mult extension support
_________________

2005-04-22:
+ - Added GLM_GTX_color_space extension to whislist in position 13
+ - Added GLM_GTX_color_space extension support
+ - Added GLM_GTX_double extension support
_________________

2005-04-10:
+ - Overload of GLSL functions used by extentions instead of create new functions
_________________

2005-04-08:
+ - Added GLM_GTX_optimum_pow extension to whislist in position 11
+ - Added GLM_GTX_double extension to wishlist in position 12
_________________

2005-04-03:
+ - Updated GLM_GTX_matrix_cross_product extension to wishlist in position 8
+ - Added GLM_GTX_matrix_cross_product extension support
+ - Added GLM_GTX_projection extension to whislist in position 9
+ - Added GLM_GTX_perpendicular extension to wishlist in position 10
+ - Added GLM_GTX_projection extension support
+ - Added GLM_GTX_perpendicular extension support
+ - Changed extensions organisation
_________________

2005-03-27:
+ - Added *vec* by *mat* product
+ - Updated GLM_GTX_determinant extension to wishlist in position 4
+ - Updated GLM_GTX_inverse extension to wishlist in position 5
+ - Updated GLM_GTX_length2 extension to wishlist in position 6
+ - Updated GLM_GTX_orthonormalize extension to wishlist in position 7
+ - Added GLM_GTX_determinant extension support
+ - Added GLM_GTX_inverse extension support
+ - Added GLM_GTX_length2 extension support
+ - Added GLM_GTX_orthonormalize extension support
_________________

2005-03-21:
+ - Added bug #7 : Vector constructor non conform
+ - Updated issue #13 : Only ARB can allow extensions adding new operators
_________________

2005-03-13:
+ - Added GLM_GTX_orthonormalize extension to wishlist in position 7
+ - Added GLM_GTX_matrix_cross_product extension to wishlist in position 8
+ - Updated issue #10 : Using template functions members
+ - Updated *vec* types following issue #10 guidance
_________________

2005-03-06:
+ - Fixed bug #2 with '#error'
_________________

2005-03-05:
+ - Updated issue #4
_________________

2005-03-04:
+ - Updated issue #13
+ - Updated issue #8
+ - Updated issue #6
+ - Updated issue #4
_________________

2005-03-03:
+ - Bugs #2 and #5 are now one
+ - Updated / operator for vec* types with support of the divisibility of two vectors, and the divisibility term to term
_________________

2005-02-28:
+ - Updated GLM_GTX_transpose extension to wishlist in position 8
+ - Added GLM_GTX_transpose extension support
+ - Fixed mat* types constructor scalar-parameted
_________________

2005-02-27:
+ - Fixed mat* types product by a scalar
_________________

2005-02-25:
+ - Updated function 'not'
+ - Defined identificators following compilers
+ - Added GLM_GTX_length2 extension to wishlist in position 6
+ - Optimized mat3 type divide operator
_________________

2005-02-21:
+ - GLM 0.1 released
_________________

2005-02-18:
+ - Updated issue #4
+ - Updated issue #6
+ - Updated issue #9
+ - Updated issue #12
+ - Updated issue #13
+ - Updated issues ordering
_________________

2005-02-17:
+ - Updated vec* types + operator. Can now add a vector and a scalar, term by term
+ - Updated vec* types - operator. Can now minus a vector and a scalar, term by term
+ - Updated vec* types * operator. Can now multiply a vector and a scalar, term by term
+ - Deleted issue #11, which was erroneous
_________________

2005-02-15:
+ - Deleted from wishlist extension #6 : refract function is defined by version 1.10.59 from GLSL specs
+ - Updated reflect function tests
+ - Added fucntion reflect with its tests
+ - Using typename 'genType' for functions templates
+ - Added bug #5
+ - Updated function sqrt
+ - Added function log with its tests
+ - Added function exp with its tests
+ - Added function log2 with its tests
+ - Updated cross function
+ - Updated bvec* types data implementation
+ - Added bug #6
_________________

2005-02-14:
+ - Updated issue #13
+ - Converted text files into XML
+ - Modified files hierarchy
_________________

2005-02-13:
+ - Updated clamp function
+ - Added function noise1 with its tests
+ - Added function noise2 with its tests
+ - Added function noise3 with its tests
+ - Added function noise4 with its tests
_________________

2005-02-08:
+ - Enhanced mat4 type division operator
+ - Added function sqrt with its tests
+ - Added function inversesqrt with its tests
+ - Added function exp2 with its tests
+ - Added function log2 with its tests
_________________

2005-02-07:
+ - Modified *vec* types constructors implementation, chooses initialisation instead of affectation
+ - Added function reflect with its tests
+ - Updated tan function
+ - Fixed mat4 type * operator
_________________

2005-02-05:
+ - Added GLM_GTX_refract extension to wishlist in position 5.
_________________

2005-02-03:
+ - Added default constructor for mat* types
_________________

2005-02-02:
+ - Added mat2 and vec2 type * operator
+ - Added mat3 and vec3 type * operator
+ - Added mat4 and vec4 type * operator
_________________

2005-02-01:
+ - Added GLM_GTX_transpose extension to wishlist in position 3
+ - Added GLM_GTX_determinant extension to wishlist in position 4
+ - Added GLM_GTX_inverse extension to wishlist in position 5
+ - Added / operator for two mat3 types
+ - Enhanced *vec* types conception
+ - Enhanced *mat* types conception
_________________

2005-01-31:
+ - Updated bug #3
+ - Updated issue #10
+ - Added function matrixCompMult with its tests
+ - Updated mat* type constant access operators
+ - Added bug #4 : Conversion problem between two different *vec* types
_________________

2005-01-30:
+ - Added bug #1 : Inability to select multiple components
+ - Added bug #2 : Some *vec* types conversions are not available
+ - Added bug #3 : 'not' is a C++ ISO keyword
+ - Added * operator for two mat3 types
+ - Added * operator for two mat4 types
+ - Updated mat* types
+ - Updated GLM_GTX_quaternion extension to wishlist in position 1
+ - Updated GLM_GTX_transform extension to wishlist in position 2
_________________

2005-01-27:
+ - Added mat2 type
+ - Added * operator for two mat2 types
+ - Added issue #14
+ - Added issue #15
+ - Added mat3 type
+ - Added mat4 type
_________________

2005-01-26:
+ - Added function mix with its tests
+ - Added function step with its tests
+ - Added function smoothstep with its tests
+ - Updated issue #10
+ - Updated issue #12
+ - Updated issue #8
+ - Added type bvec4 forgotten declaration
+ - Added function lessThan with its tests
+ - Added function lessThanEqual with its tests
+ - Added function greaterThan with its tests
+ - Added function greaterThanEqual with its tests
+ - Added function equal with its tests
+ - Added function notEqual with its tests
+ - Added function any with its tests
+ - Added function all with its tests
+ - Added function not with its tests
_________________

2005-01-24:
+ - Added function fract with its tests
+ - Added function mod with its tests
+ - Added function clamp with its tests
_________________

2005-01-23:
+ - Added function mod with its tests
+ - Added function abs with its tests
+ - Added function sign with its tests
+ - Added function floor with its tests
+ - Added function ceil with its tests
+ - Added function min with its tests
+ - Added function max with its tests
_________________

2005-01-22:
+ - Updated issue #13
+ - Added temporary namespace called 'glm'
+ - Added function pow with its tests
_________________

2005-01-19:
+ - Updated sin function tests
+ - Enhanced trigonometrics functions
+ - Enhanced geometric functions
_________________

2005-01-18:
+ - Added xvec* type constructor taking a single scalar as parameter.
+ - Added xvec* into xvec3 type conversion
+ - Added xvec* into xvec4 type conversion
+ - Added xvec* into bvec2 type conversion
+ - Added xvec* into bvec3 type conversion
+ - Added xvec* into bvec4 type conversion
+ - Added function sin with its tests
+ - Added function cos with its tests
+ - Added function tan with its tests
+ - Added function asin with its tests
+ - Added function acos with its tests
+ - Added function atan with its tests
+ - Added issue #13
_________________

2005-01-17:
+ - Added function radians with its tests
+ - Added function degrees with its tests
+ - Added issue #9
_________________

2005-01-16:
+ - Separated *vec* types definition from declaration
+ - Added xvec* into xvec2 type conversion
+ - Updated issue #11
+ - Added issue #12
_________________

2005-01-15:
+ - Using 'union' for multiple access to *vec* types components
+ - Added issue #11
+ - Deleted __*vec1GT following issue #11 guidance
+ - Closed issue #2
_________________

2005-01-13:
+ - Added function normalize with its tests
+ - Added function faceforward with its tests
_________________

2005-01-12:
+ - Added function cross with its tests
+ - Added a function that can determine *vec* types size, and write beyond GLSL 1.051 specs
+ - Added function lenght with its tests
+ - Added function distance with its tests
+ - Added function dot with its tests
+ - Closed issue #1
_________________

2005-01-10:
+ - Renamed intern types _vec* into _xvec*
+ - Separated _xvec* types data, operators and accesses
+ - Added bvec2 type
+ - Added __bvec1GT type beyond GLSL 1.051 specs
_________________

2005-01-09:
+ - Added types vec2 and ivec2
+ - Added types vec3 and ivec3
+ - Added types vec4 and ivec4
+ - Added types __vec1GT and __ivec1GT, write beyond GLSL 1.051 specs
_________________

Copyright © 2005 - 2010 G-Truc Creation
\ No newline at end of file diff --git a/doc/code.html b/doc/code.html index b459675d..9b7a2df1 100644 --- a/doc/code.html +++ b/doc/code.html @@ -1,5 +1,4 @@ -OpenGL Mathematics: Code
OpenGL Mathematics
GLSL + Optional features = OpenGL Mathematics (GLM).
A C++ mathematics library for 3D graphics.


06/05/2009 | Compute face normals
Compute face normals
_________________

06/05/2009 | OpenGL render
Compute face normals
_________________

06/05/2009 | Point light computation
Compute face normals
_________________

- Copyright © 2005-2009 G-Truc Creation
\ No newline at end of file +OpenGL Mathematics: Code
OpenGL Mathematics
GLSL + Optional features = OpenGL Mathematics (GLM).
A C++ mathematics library for 3D graphics.


06/05/2009 | Compute face normals
Compute face normals
_________________

06/05/2009 | OpenGL render
Compute face normals
_________________

06/05/2009 | Point light computation
Compute face normals
_________________

Copyright © 2005 - 2010 G-Truc Creation
\ No newline at end of file diff --git a/doc/download.html b/doc/download.html index 258e92a4..3484b40c 100644 --- a/doc/download.html +++ b/doc/download.html @@ -1,10 +1,15 @@ -OpenGL Mathematics : Downloads
OpenGL Mathematics

GLSL + Optional features = OpenGL Mathematics (GLM).
A C++ mathematics library for 3D graphics.


Current release
14/11/2009: - GLM 0.8.4.3 - (1.1 MB) -
_________________

GLM - zip files
14/11/2009: GLM 0.8.4.3 (1.1 MB) +OpenGL Mathematics : Downloads
OpenGL Mathematics
GLSL + Optional features = OpenGL Mathematics (GLM).
A C++ mathematics library for 3D graphics.


Current release
30/04/2010: + GLM 0.9.B.2 + (1.1 MB) +
_________________

GLM - zip files
30/04/2010: GLM 0.9.B.2 (1.1 MB) +
03/04/2010: GLM 0.9.B.1 (964 KB) +
20/02/2010: GLM 0.9.A.2 (1.3 KB) +
09/02/2010: GLM 0.9.A.1 (952 KB) +
25/01/2010: GLM 0.8.4.4 (1.1 MB) +
14/11/2009: GLM 0.8.4.3 (1.1 MB)
19/10/2009: GLM 0.8.4.2 (1.1 MB)
03/10/2009: GLM 0.8.4.1 (1.1 MB)
16/09/2009: GLM 0.8.4.0 (1.1 MB) @@ -41,7 +46,12 @@
02/19/2006: GLM 0.3.0.0 (945 KB)
05/05/2005: GLM 0.2.0.0 (194 KB)
02/21/2005: GLM 0.1.0.0 (29.2 KB) -
_________________

GLM - 7z files
14/11/2009: GLM 0.8.4.3 (443 KB) +
_________________

GLM - 7z files
30/04/2010: GLM 0.9.B.2 (555 KB) +
03/04/2010: GLM 0.9.B.1 (414 KB) +
20/02/2010: GLM 0.9.A.2 (726 KB) +
09/02/2010: GLM 0.9.A.1 (391 KB) +
25/01/2010: GLM 0.8.4.4 (479 KB) +
14/11/2009: GLM 0.8.4.3 (443 KB)
19/10/2009: GLM 0.8.4.2 (443 KB)
03/10/2009: GLM 0.8.4.1 (443 KB)
16/09/2009: GLM 0.8.4.0 (439 KB) @@ -83,5 +93,4 @@
05-05-2005: Raytrace b1.0 (7z ) (808 KB)
_________________

Humus's Framework
22-10-2008: AmbientApertureLighting (zip) (2.38 MB)
_________________

Philip Rideout's Catmull-Clark Subdivision
24-01-2007: CatmullClark (zip) (605 KB) -
_________________

_________________

- Copyright © 2005-2008 G-Truc Creation
\ No newline at end of file +
_________________

_________________

Copyright © 2005 - 2010 G-Truc Creation
\ No newline at end of file diff --git a/doc/doxyfile b/doc/doxyfile index 0f0fccfd..75a915c3 100644 --- a/doc/doxyfile +++ b/doc/doxyfile @@ -865,7 +865,7 @@ DOCSET_BUNDLE_ID = org.doxygen.Project # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. -GENERATE_HTMLHELP = YES +GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You @@ -1386,7 +1386,7 @@ PERL_PATH = /usr/bin/perl # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. -CLASS_DIAGRAMS = NO +CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see @@ -1408,7 +1408,7 @@ HIDE_UNDOC_RELATIONS = YES # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) -HAVE_DOT = YES +HAVE_DOT = NO # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This diff --git a/doc/goodies.html b/doc/goodies.html index 7ff2c1a6..ec0c8992 100644 --- a/doc/goodies.html +++ b/doc/goodies.html @@ -1,5 +1,4 @@ -OpenGL Mathematics: Goodies
OpenGL Mathematics

GLSL + Optional features = OpenGL Mathematics (GLM).
A C++ mathematics library for 3D graphics.


16/10/2008
GLM Logo

Download: 2560x1600
Download: 1920x1200
Download: 1600x1000
Download: 1280x0800
Download: 1024x0640
_________________

16/10/2008
GLM Font

Download: Font (.otf)
_________________

_________________

- Copyright © 2005-2008 G-Truc Creation
\ No newline at end of file +OpenGL Mathematics: Goodies
OpenGL Mathematics
GLSL + Optional features = OpenGL Mathematics (GLM).
A C++ mathematics library for 3D graphics.


16/10/2008
GLM Logo

Download: 2560x1600
Download: 1920x1200
Download: 1600x1000
Download: 1280x0800
Download: 1024x0640
_________________

16/10/2008
GLM Font

Download: Font (.otf)
_________________

_________________

Copyright © 2005 - 2010 G-Truc Creation
\ No newline at end of file diff --git a/doc/index.html b/doc/index.html index a3e2b885..75d4d4de 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1,133 +1,162 @@ -OpenGL Mathematics: News
OpenGL Mathematics
GLSL + Optional features = OpenGL Mathematics (GLM).
A C++ mathematics library for 3D graphics.


16/11/2009
GLM 0.8.4.3 released
- This version fixed half scalars and half vectors arithmetics. - This is a really slow practice that should be avoid. - Half floating point value should be use only to store GPU data. - GPUs have native support for half values, not x86 CPUs. -

Download: GLM 0.8.4.3 (zip, 1.1 MB)
Download: GLM 0.8.4.3 (7z, 463 KB)
Link: Full changelog
_________________

19/10/2009
GLM 0.8.4.2 released
- This version is a really minor updates, fixing single issue with half float types. -

Download: GLM 0.8.4.2 (zip, 1.1 MB)
Download: GLM 0.8.4.2 (7z, 443 KB)
Link: Full changelog
_________________

05/10/2009
GLM 0.8.4.1 released
- This version fixes few bugs and provides an major update of the manual thanks to Damian Trebilco. -

Download: GLM 0.8.4.1 (zip, 1.1 MB)
Download: GLM 0.8.4.1 (7z, 443 KB)
Link: Full changelog
_________________

16/09/2009
GLM 0.8.4.0 released
- This new version mainly adds support for Visual Studio 2010 and GCC 4.4. It also provides various code optimization, bug fixes and an extension. -

Download: GLM 0.8.4.0 (zip, 1.1 MB)
Download: GLM 0.8.4.0 (7z, 439 KB)
Link: Full changelog
_________________

11/08/2009
GLM 0.8.3.5 released
- Fixed extension bugs introduced by core update. -

Download: GLM 0.8.3.5 (zip, 971 KB)
Download: GLM 0.8.3.5 (7z, 405 KB)
Link: Full changelog
_________________

10/08/2009
GLM 0.8.3.4 released
- Fixed varius bugs. Move determinant fonction to core following GLSL 1.5 specification. -

Download: GLM 0.8.3.4 (zip, 971 KB)
Download: GLM 0.8.3.4 (7z, 405 KB)
Link: Full changelog
_________________

25/06/2009
GLM 0.8.3.3 released
- Fixed varius bugs. -

Download: GLM 0.8.3.3 (zip, 971 KB)
Download: GLM 0.8.3.3 (7z, 405 KB)
Link: Full changelog
_________________

04/06/2009
GLM 0.8.3.2 released
- Add GLM_GTC_quaternion and GLM_GTC_type_precision extensions both subset of GLM_GTX_quaternion and GLM_GTX_number_precision -

Download: GLM 0.8.3.2 (zip, 971 KB)
Download: GLM 0.8.3.2 (7z, 405 KB)
Link: Full changelog
_________________

21/05/2009
GLM 0.8.3.1 released
- The old way to use extensions have been fixed and GLM_GTX_bit extension gets updated with more functions to manipulate bit fields. -

Download: GLM 0.8.3.1 (zip, 954 KB)
Download: GLM 0.8.3.1 (7z, 402 KB)
Link: Full changelog
_________________

06/05/2009
GLM 0.8.3.0 released
- This version brings to main changed: Stable extensions and a new extension system. -

- The first stable GLM extensions are: GLM_GTC_double_float and GLM_GTC_half_float for higher and lower vectors and matrices floating point precision. GLM_GTC_matrix_operation provides determinant and inverse matrix calculation. GLM_GTC_matrix_transform allows to build scale, rotate and translate matrices and GLM_GTC_matrix_projection provides varius functions to build projection matrices. Few stable extensions yet but the number is going to grow with the next release! -

- Both GLM 0.8.2.x extensions use method are deprecated (but still working) and replace by a new one. If you wnat to use GLM_GTC_half_float just include "glm/gtc/half_float.hpp" and it is going to be included in GLM namespace. -

- Finally, quite some file have been renamed, using "hpp" instead of ".h". Old file have been deprecated but are still available so that GLM 0.8.3.0 is fully compatible with GLM 0.8.2.x. -

Download: GLM 0.8.3.0 (zip, 896 KB)
Download: GLM 0.8.3.0 (7z, 359 KB)
Link: Code samples page
Link: Manual
Link: Full changelog
_________________

01/04/2009
GLM 0.8.2.3 released
_________________

13/02/2009
GLM 0.8.2.1 released
- A new release is available and inogurate a patch number. The goal of this patch number is to release faster fixes from bug reports. -

Download: GLM 0.8.2.1 (zip, 963 KB)
Download: GLM 0.8.2.1 (7z, 381 KB)
Link: Manual
Link: Full changelog
_________________

21/01/2009
GLM 0.8.2 released
- This release only fixes bugs. Left sided swizzle operators, quaternion operators, vectors access operators for the main onces. -

Download: GLM 0.8.2 (zip, 963 KB)
Download: GLM 0.8.2 (7z, 381 KB)
Link: Manual
Link: Full changelog
_________________

19/11/2008
GLM current developments
- Some artifacts have been added to the tracker to give a picture of what you could expect for the next releases. -

- If you need something else you can add some artifacts to the tracker. Any comment on added entries is welcome. -

- Furthermore, no more release of GLM 0.7.x will be done. Please upgrade to GLM 0.8.1. -

- Finally, a pack of programmable oriented OpenGL samples using GLM is under development and planed to be release in December. -

Link: Tracker
_________________

30/10/2008
GLM 0.8.1 released
- GLM 0.8.1 is released. This new version mainly fixes 64 bit integers with GCC and various bugs. -

Download: GLM 0.8.1 (zip, 938 KB)
Download: GLM 0.8.1 (7z, 372 KB)
Link: GLM 0.8.1 Manual
Link: Full changelog
_________________

23/10/2008
GLM 0.8.0 final released
- GLM 0.8.0 is released. This new version is now based on GLSL 1.30 specification which provided new functions and precision qualifiers. -

- Beyond this, lot of changes have been done to make GLM easier to use, easier to develop, more reliable, more conform to C++ ISO98 standard and GLSL specifications. -

- It involves that GLM 0.8.x is not backward compatible with GLM 0.7.x... However, an application port from GLM 0.7.x to GLM 0.8.x isn't a huge work and actually for some, it won’t be work at all. -

- On GLM core side, based on GLSL features, vector types can't be automatically cast to pointer anymore for code safety purposes. Vector constructors require a single scalar parameter of the exact number of components. -

- On GLM extension side, the mechanism to use them has changed. The old [__]***GTX way doesn't exist anymore. Have a look on the manual for more information. -

- Have a look on the manual and the changelog for more information. Don't forget to send your feedback and enjoy! -

Download: GLM 0.8.0 (zip, 936 KB)
Download: GLM 0.8.0 (7z, 370 KB)
Link: GLM 0.8.0 Manual
Link: Full changelog
Link: Post a comment
_________________

22/10/2008
A Humus demo to feature GLM 0.8.0
- Ambient aperture lighting Humus demo have been updated to use GLM as math library. -

Download: Updated demo + all sources (zip, 2.38 MB)
Download: Original demo (zip, 1.40 MB)
Link: Post a comment
_________________

18/10/2008
Webside updated
- As you can see the website get a little update to prepare GLM 0.8.0 final release. -

- GLM 0.8.0 final should be release during the week. -

_________________

10/10/2008
GLM 0.8.0 beta 3 released
- This release fixes some bugs and add few features though extensions. The development is now based on CMake to make easier cross platform tests and project management. -

Download: GLM 0.8.0 Beta 3 (zip, 819 KB)
Download: GLM 0.8.0 Beta 3 (7z, 345 KB)
Link: Full changelog
Link: Post a comment
_________________

04/10/2008
GLM 0.8.0 beta 2 released
- This release mainly improves half float vectors support. By default the low precission vectors are based on float numbers not on half numbers -

- It also provides new setup options. GLM_USE_ONLY_XYZW to disable multiple names to access to a single vector component. GLM_USE_ANONYMOUS_UNION to allow multiple component names on half vectors with Visual C++. -

- Various bugs and updates of extensions have been done too. Final release is coming... -

Download: GLM 0.8.0 Beta 2 (zip, 798 KB)
Download: GLM 0.8.0 Beta 2 (7z, 327 KB)
Link: Full changelog
Link: Post a comment
_________________

26/09/2008
GLM 0.8.0 beta 1 released
- GLM have been updated to support GLSL 1.30. API documentation had significant improvements to make easier finding of GLSL functions and types. -

- GLM 0.8.x is NOT backward compatible with GLM 0.7.x. Upgrade to GLM 0.8.x could involve build errors for the following cases: A lot of improvements have been made to increase the conformance with GLSL specification. Lot of GLSL 1.30 features were already exposed in extensions that have been deleted. The extension syntaxe based on ARB convension is no long used. -

- Due to the number of changes GLM 0.8.0 is release as beta first. The final release is schedule for october. -

Download: GLM 0.8.0 Beta 1 (zip, 786 KB)
Download: GLM 0.8.0 Beta 1 (7z, 321 KB)
Link: Full changelog
Link: Post a comment
_________________

08/08/2008
GLM 0.7.6 released
- GLM 0.7.6 provides a better C++ conformance so that you can build GLM with –pedantic G++ parameter or without Visual Studio extensions. To make GLM more reliable, BOOST_STATIC_ASSERT are used according developer wishes. -

Download: GLM 0.7.6 (zip, 907 KB)
Download: GLM 0.7.6 (7z, 387 KB)
Link: Full changelog
Link: Manual
_________________

05/07/2008
GLM 0.7.5 released
- GLM 0.7.5 is available and introduces a new build messsage system to get information of GLM build configuration with Visual Studio. This mechanism is documented in section 6 of GLM manual. Also, GLM can be built with GCC pedantic options. -

Download: GLM 0.7.5 (zip, 852 KB)
Download: GLM 0.7.5 (7z, 366 KB)
Link: Full changelog
Link: Manual
_________________

01/06/2008
GLM 0.7.4 released
- GLM 0.7.4 introduces a new system to manage external dependencies. -

- It allows developing extension using external dependencies like GLEW, Boost, etc. without making required those dependencies for GLM programmer that doesn't need those external dependent extensions. -

- The mechanism is described into the updated manual. -

Download: GLM 0.7.4 (zip, 859 KB)
Download: GLM 0.7.4 (7z, 372 KB)
Link: Full changelog
Link: Manual
_________________

24/05/2008
GLM 0.7.3 released
- GLM 0.7.3 is released. This version fixes few bugs and add few extensions -

Download: GLM 0.7.3 (zip, 1.8 MB)
Download: GLM 0.7.3 (7z, 635 KB)
Link: Full changelog
_________________

27/04/2008
GLM 0.7.2 released
- GLM 0.7.2 is released. The documentation have been completed again and several issues handle with precompiler options. -

- #define GLM_SWIZZLE GLM_SWIZZLE_FUNC allows to use swizzle operators with internal functions. For example, glm::vec3(1, 2, 3).zyx is replaced by glm::vec3(1, 2, 3)._zyx() with this option. -

- #define GLM_FORCE_NO_HALF allows to include all extensions (#include "glm/glmext.h") without any support of half-precision floating-point numbers. -

- #define GLM_AUTO_CAST GLM_DISABLE allows to disable automatic cast (eg: glLoadMatrixf(glm::mat4(1.0))) which could involve unfortunate issues in some cases. -

- More information on these topic are available in GLM manual section 5 "Known issues". -

Download: GLM 0.7.2 (zip, 1.8 MB)
Download: GLM 0.7.2 (7z, 635 KB)
Download: Full changelog
_________________

24/03/2008
GLM 0.7.1 released
- GLM 0.7.1 is available under MIT license. It fixes bugs with GCC. -

Download: GLM 0.7.1 (zip, 1.8 MB)
Download: GLM 0.7.1 (7z, 635 KB)
Download: Full changelog
_________________

22/03/2008
GLM 0.7.0 released
- GLM 0.7.0 is available under MIT license. LGPL lisence have been discard due to an issue of use for console development. This release contains a lot better documentation based on Doxygen. Lot of bugs have been fixed and the documentation completed. Thanks to all people that has contributed thought bug reports and ideas to make this version a lot better! -

Download: GLM 0.7.0 (zip, 1.8 MB)
Download: GLM 0.7.0 (7z, 635 KB)
Download: Full changelog
_________________

10/12/2007
GLM 0.6.4 released
- GLM 0.6.4 is available and fixes some swizzle operator issues. +OpenGL Mathematics: News
OpenGL Mathematics
GLSL + Optional features = OpenGL Mathematics (GLM).
A C++ mathematics library for 3D graphics.


30/04/2010
GLM 0.9 Beta 2 released
+ GLM 0.9 Beta 2 is available and should be the last development release of GLM 0.9. +

+ The code has been moved from a SVN to Git repository which branching efficiency allowed to remove all the experimental code from this release. +

+ Various bug fixes and manual updates have been done too. +

Download: GLM 0.9.B.2 (zip, 1.07 MB)
Download: GLM 0.9.B.2 (7z, 555 KB)
_________________

03/04/2010
GLM 0.9 Beta 1 released
+ A new development version of GLM 0.9 is available. +

+ This version is based on GLSL 4.0 and supports the new common and integer functions. Also a long and frequently asked feature has been implemented: inplicit conversions. + However, the rules defining implicit conversions by GLSL 4.0 are quite weaked and can't really be apply in C++. +

+ Reaching the beta status, this new features close the feature list of GLM 0.9. + Further development releases may happen before the final release. +

Download: GLM 0.9.B.1 (zip, 964 KB)
Download: GLM 0.9.B.1 (7z, 414 KB)
_________________

20/02/2010
GLM 0.9 Alpha 2 released
+ This update fixes some problem of Alpha 1 but also brings some improvements in case of errors when using GLM to provide more relevant messages. +

Download: GLM 0.9.A.2 (zip, 1.3 MB)
Download: GLM 0.9.A.2 (7z, 726 KB)
_________________

09/02/2010
GLM 0.9 Alpha 1 released
+ First step until a major release for GLM with this first alpha of GLM 0.9. +

+ This version brings a large internal redesign to improve the library reliability and optimized some parts. + It removed the deprecated features and API which implies that GLM 0.9 isn't backward compatible. +

+ For most users the build issues when upgrading to GLM 0.9 should be reduced especially if they follow the deprecation policy. +

+ This release is still UNSTABLE and not recommanded for commertial products. +

Download: GLM 0.9.A.1 (zip, 950 KB)
Download: GLM 0.9.A.1 (7z, 391 KB)
Link: Full changelog
_________________

25/01/2010
GLM 0.8.4.4 released
+ This update just removes some warnings +

+ By the way, if you have questions about GLM, a good place for those is the OpenGL.org Toolkits forum. +

Download: GLM 0.8.4.4 (zip, 1.1 MB)
Download: GLM 0.8.4.4 (7z, 479 KB)
Link: Full changelog
_________________

16/11/2009
GLM 0.8.4.3 released
+ This version fixed half scalars and half vectors arithmetics. + This is a really slow practice that should be avoid. + Half floating point value should be use only to store GPU data. + GPUs have native support for half values, not x86 CPUs. +

Download: GLM 0.8.4.3 (zip, 1.1 MB)
Download: GLM 0.8.4.3 (7z, 463 KB)
Link: Full changelog
_________________

19/10/2009
GLM 0.8.4.2 released
+ This version is a really minor updates, fixing single issue with half float types. +

Download: GLM 0.8.4.2 (zip, 1.1 MB)
Download: GLM 0.8.4.2 (7z, 443 KB)
Link: Full changelog
_________________

05/10/2009
GLM 0.8.4.1 released
+ This version fixes few bugs and provides an major update of the manual thanks to Damian Trebilco. +

Download: GLM 0.8.4.1 (zip, 1.1 MB)
Download: GLM 0.8.4.1 (7z, 443 KB)
Link: Full changelog
_________________

16/09/2009
GLM 0.8.4.0 released
+ This new version mainly adds support for Visual Studio 2010 and GCC 4.4. It also provides various code optimization, bug fixes and an extension. +

Download: GLM 0.8.4.0 (zip, 1.1 MB)
Download: GLM 0.8.4.0 (7z, 439 KB)
Link: Full changelog
_________________

11/08/2009
GLM 0.8.3.5 released
+ Fixed extension bugs introduced by core update. +

Download: GLM 0.8.3.5 (zip, 971 KB)
Download: GLM 0.8.3.5 (7z, 405 KB)
Link: Full changelog
_________________

10/08/2009
GLM 0.8.3.4 released
+ Fixed varius bugs. Move determinant fonction to core following GLSL 1.5 specification. +

Download: GLM 0.8.3.4 (zip, 971 KB)
Download: GLM 0.8.3.4 (7z, 405 KB)
Link: Full changelog
_________________

25/06/2009
GLM 0.8.3.3 released
+ Fixed varius bugs. +

Download: GLM 0.8.3.3 (zip, 971 KB)
Download: GLM 0.8.3.3 (7z, 405 KB)
Link: Full changelog
_________________

04/06/2009
GLM 0.8.3.2 released
+ Add GLM_GTC_quaternion and GLM_GTC_type_precision extensions both subset of GLM_GTX_quaternion and GLM_GTX_number_precision +

Download: GLM 0.8.3.2 (zip, 971 KB)
Download: GLM 0.8.3.2 (7z, 405 KB)
Link: Full changelog
_________________

21/05/2009
GLM 0.8.3.1 released
+ The old way to use extensions have been fixed and GLM_GTX_bit extension gets updated with more functions to manipulate bit fields. +

Download: GLM 0.8.3.1 (zip, 954 KB)
Download: GLM 0.8.3.1 (7z, 402 KB)
Link: Full changelog
_________________

06/05/2009
GLM 0.8.3.0 released
+ This version brings to main changed: Stable extensions and a new extension system. +

+ The first stable GLM extensions are: GLM_GTC_double_float and GLM_GTC_half_float for higher and lower vectors and matrices floating point precision. GLM_GTC_matrix_operation provides determinant and inverse matrix calculation. GLM_GTC_matrix_transform allows to build scale, rotate and translate matrices and GLM_GTC_matrix_projection provides varius functions to build projection matrices. Few stable extensions yet but the number is going to grow with the next release! +

+ Both GLM 0.8.2.x extensions use method are deprecated (but still working) and replace by a new one. If you wnat to use GLM_GTC_half_float just include "glm/gtc/half_float.hpp" and it is going to be included in GLM namespace. +

+ Finally, quite some file have been renamed, using "hpp" instead of ".h". Old file have been deprecated but are still available so that GLM 0.8.3.0 is fully compatible with GLM 0.8.2.x. +

Download: GLM 0.8.3.0 (zip, 896 KB)
Download: GLM 0.8.3.0 (7z, 359 KB)
Link: Code samples page
Link: Manual
Link: Full changelog
_________________

01/04/2009
GLM 0.8.2.3 released
_________________

13/02/2009
GLM 0.8.2.1 released
+ A new release is available and inogurate a patch number. The goal of this patch number is to release faster fixes from bug reports. +

Download: GLM 0.8.2.1 (zip, 963 KB)
Download: GLM 0.8.2.1 (7z, 381 KB)
Link: Manual
Link: Full changelog
_________________

21/01/2009
GLM 0.8.2 released
+ This release only fixes bugs. Left sided swizzle operators, quaternion operators, vectors access operators for the main onces. +

Download: GLM 0.8.2 (zip, 963 KB)
Download: GLM 0.8.2 (7z, 381 KB)
Link: Manual
Link: Full changelog
_________________

19/11/2008
GLM current developments
+ Some artifacts have been added to the tracker to give a picture of what you could expect for the next releases. +

+ If you need something else you can add some artifacts to the tracker. Any comment on added entries is welcome. +

+ Furthermore, no more release of GLM 0.7.x will be done. Please upgrade to GLM 0.8.1. +

+ Finally, a pack of programmable oriented OpenGL samples using GLM is under development and planed to be release in December. +

Link: Tracker
_________________

30/10/2008
GLM 0.8.1 released
+ GLM 0.8.1 is released. This new version mainly fixes 64 bit integers with GCC and various bugs. +

Download: GLM 0.8.1 (zip, 938 KB)
Download: GLM 0.8.1 (7z, 372 KB)
Link: GLM 0.8.1 Manual
Link: Full changelog
_________________

23/10/2008
GLM 0.8.0 final released
+ GLM 0.8.0 is released. This new version is now based on GLSL 1.30 specification which provided new functions and precision qualifiers. +

+ Beyond this, lot of changes have been done to make GLM easier to use, easier to develop, more reliable, more conform to C++ ISO98 standard and GLSL specifications. +

+ It involves that GLM 0.8.x is not backward compatible with GLM 0.7.x... However, an application port from GLM 0.7.x to GLM 0.8.x isn't a huge work and actually for some, it won’t be work at all. +

+ On GLM core side, based on GLSL features, vector types can't be automatically cast to pointer anymore for code safety purposes. Vector constructors require a single scalar parameter of the exact number of components. +

+ On GLM extension side, the mechanism to use them has changed. The old [__]***GTX way doesn't exist anymore. Have a look on the manual for more information. +

+ Have a look on the manual and the changelog for more information. Don't forget to send your feedback and enjoy! +

Download: GLM 0.8.0 (zip, 936 KB)
Download: GLM 0.8.0 (7z, 370 KB)
Link: GLM 0.8.0 Manual
Link: Full changelog
Link: Post a comment
_________________

22/10/2008
A Humus demo to feature GLM 0.8.0
+ Ambient aperture lighting Humus demo have been updated to use GLM as math library. +

Download: Updated demo + all sources (zip, 2.38 MB)
Download: Original demo (zip, 1.40 MB)
Link: Post a comment
_________________

18/10/2008
Webside updated
+ As you can see the website get a little update to prepare GLM 0.8.0 final release. +

+ GLM 0.8.0 final should be release during the week. +

_________________

10/10/2008
GLM 0.8.0 beta 3 released
+ This release fixes some bugs and add few features though extensions. The development is now based on CMake to make easier cross platform tests and project management. +

Download: GLM 0.8.0 Beta 3 (zip, 819 KB)
Download: GLM 0.8.0 Beta 3 (7z, 345 KB)
Link: Full changelog
Link: Post a comment
_________________

04/10/2008
GLM 0.8.0 beta 2 released
+ This release mainly improves half float vectors support. By default the low precission vectors are based on float numbers not on half numbers +

+ It also provides new setup options. GLM_USE_ONLY_XYZW to disable multiple names to access to a single vector component. GLM_USE_ANONYMOUS_UNION to allow multiple component names on half vectors with Visual C++. +

+ Various bugs and updates of extensions have been done too. Final release is coming... +

Download: GLM 0.8.0 Beta 2 (zip, 798 KB)
Download: GLM 0.8.0 Beta 2 (7z, 327 KB)
Link: Full changelog
Link: Post a comment
_________________

26/09/2008
GLM 0.8.0 beta 1 released
+ GLM have been updated to support GLSL 1.30. API documentation had significant improvements to make easier finding of GLSL functions and types. +

+ GLM 0.8.x is NOT backward compatible with GLM 0.7.x. Upgrade to GLM 0.8.x could involve build errors for the following cases: A lot of improvements have been made to increase the conformance with GLSL specification. Lot of GLSL 1.30 features were already exposed in extensions that have been deleted. The extension syntaxe based on ARB convension is no long used. +

+ Due to the number of changes GLM 0.8.0 is release as beta first. The final release is schedule for october. +

Download: GLM 0.8.0 Beta 1 (zip, 786 KB)
Download: GLM 0.8.0 Beta 1 (7z, 321 KB)
Link: Full changelog
Link: Post a comment
_________________

08/08/2008
GLM 0.7.6 released
+ GLM 0.7.6 provides a better C++ conformance so that you can build GLM with –pedantic G++ parameter or without Visual Studio extensions. To make GLM more reliable, BOOST_STATIC_ASSERT are used according developer wishes. +

Download: GLM 0.7.6 (zip, 907 KB)
Download: GLM 0.7.6 (7z, 387 KB)
Link: Full changelog
Link: Manual
_________________

05/07/2008
GLM 0.7.5 released
+ GLM 0.7.5 is available and introduces a new build messsage system to get information of GLM build configuration with Visual Studio. This mechanism is documented in section 6 of GLM manual. Also, GLM can be built with GCC pedantic options. +

Download: GLM 0.7.5 (zip, 852 KB)
Download: GLM 0.7.5 (7z, 366 KB)
Link: Full changelog
Link: Manual
_________________

01/06/2008
GLM 0.7.4 released
+ GLM 0.7.4 introduces a new system to manage external dependencies. +

+ It allows developing extension using external dependencies like GLEW, Boost, etc. without making required those dependencies for GLM programmer that doesn't need those external dependent extensions. +

+ The mechanism is described into the updated manual. +

Download: GLM 0.7.4 (zip, 859 KB)
Download: GLM 0.7.4 (7z, 372 KB)
Link: Full changelog
Link: Manual
_________________

24/05/2008
GLM 0.7.3 released
+ GLM 0.7.3 is released. This version fixes few bugs and add few extensions +

Download: GLM 0.7.3 (zip, 1.8 MB)
Download: GLM 0.7.3 (7z, 635 KB)
Link: Full changelog
_________________

27/04/2008
GLM 0.7.2 released
+ GLM 0.7.2 is released. The documentation have been completed again and several issues handle with precompiler options. +

+ #define GLM_SWIZZLE GLM_SWIZZLE_FUNC allows to use swizzle operators with internal functions. For example, glm::vec3(1, 2, 3).zyx is replaced by glm::vec3(1, 2, 3)._zyx() with this option. +

+ #define GLM_FORCE_NO_HALF allows to include all extensions (#include "glm/glmext.h") without any support of half-precision floating-point numbers. +

+ #define GLM_AUTO_CAST GLM_DISABLE allows to disable automatic cast (eg: glLoadMatrixf(glm::mat4(1.0))) which could involve unfortunate issues in some cases. +

+ More information on these topic are available in GLM manual section 5 "Known issues". +

Download: GLM 0.7.2 (zip, 1.8 MB)
Download: GLM 0.7.2 (7z, 635 KB)
Download: Full changelog
_________________

24/03/2008
GLM 0.7.1 released
+ GLM 0.7.1 is available under MIT license. It fixes bugs with GCC. +

Download: GLM 0.7.1 (zip, 1.8 MB)
Download: GLM 0.7.1 (7z, 635 KB)
Download: Full changelog
_________________

22/03/2008
GLM 0.7.0 released
+ GLM 0.7.0 is available under MIT license. LGPL lisence have been discard due to an issue of use for console development. This release contains a lot better documentation based on Doxygen. Lot of bugs have been fixed and the documentation completed. Thanks to all people that has contributed thought bug reports and ideas to make this version a lot better! +

Download: GLM 0.7.0 (zip, 1.8 MB)
Download: GLM 0.7.0 (7z, 635 KB)
Download: Full changelog
_________________

10/12/2007
GLM 0.6.4 released
+ GLM 0.6.4 is available and fixes some swizzle operator issues.

Download: GLM 0.6.4 (zip, 1.7 MB)
Download: GLM 0.6.4 (7z, 612 KB)
Download: Full changelog
_________________

05/11/2007
GLM 0.6.3 released
- GLM 0.6.3 fixes accesses of matrices and a 3DSMax SDK conflict. -

Download: GLM 0.6.3 (zip, 1.8 MB)
Download: GLM 0.6.3 (7z, 633 KB)
Download: Full changelog
_________________

08/10/2007
GLM 0.6.2 released
- GLM 0.6.2 fixes an error on an extension. -

Download: GLM 0.6.2 (zip, 1.8 MB)
Download: GLM 0.6.2 (7z, 632 KB)
Download: Full changelog
_________________

07/10/2007
GLM 0.6.1 released
- GLM 0.6.1 is a minor update that fix an issue on extension namespace and add two more extensions. -

Download: GLM 0.6.1 (zip, 1.8 MB)
Download: GLM 0.6.1 (7z, 632 KB)
Download: Full changelog
_________________

16/09/2007
GLM 0.6.0 released
+ GLM 0.6.3 fixes accesses of matrices and a 3DSMax SDK conflict. +

Download: GLM 0.6.3 (zip, 1.8 MB)
Download: GLM 0.6.3 (7z, 633 KB)
Download: Full changelog
_________________

08/10/2007
GLM 0.6.2 released
+ GLM 0.6.2 fixes an error on an extension. +

Download: GLM 0.6.2 (zip, 1.8 MB)
Download: GLM 0.6.2 (7z, 632 KB)
Download: Full changelog
_________________

07/10/2007
GLM 0.6.1 released
+ GLM 0.6.1 is a minor update that fix an issue on extension namespace and add two more extensions. +

Download: GLM 0.6.1 (zip, 1.8 MB)
Download: GLM 0.6.1 (7z, 632 KB)
Download: Full changelog
_________________

16/09/2007
GLM 0.6.0 released
GLM 0.6.0 is available. For this release, work focus on extensions. A new mecanisum allows to integrate GLM extensions as it is actually done for GLSL extension by vendors. Lot of new extensions have been added.

Download: GLM 0.6.0 (zip, 1.8 MB)
Download: GLM 0.6.0 (7z, 666 KB)
Download: Raytracer v1.0 (exe)
Download: Raytracer v1.0 (zip)
Download: Full changelog
_________________

19/02/2007
GLM 0.5.1 released
This release fixes some issues with swizzle operators.

Download: GLM 0.5.1 (zip, 2.3 MB)
Download: GLM 0.5.1 (7z, 789 KB)
_________________

26/01/2007
Cattmull Clark subdivision sample
A new sample is available. It's an update of Philip Rideout's Catmull Clark subdivision program that uses GLM. Released with pleasant permission of Philip Rideout.

Download: CatmullClark sample (zip, 605 KB)
_________________

06/01/2007
GLM 0.5.0 released
- This release include GLSL 1.2 new feature in the core implementation. Also, it includes swizzle read and write operators and a custom options system to setup GLM. + This release include GLSL 1.2 new feature in the core implementation. Also, it includes swizzle read and write operators and a custom options system to setup GLM.

- It includes some new extensions to extend GLSL features but they remain experimental. The next release should provide the first stable extensions. + It includes some new extensions to extend GLSL features but they remain experimental. The next release should provide the first stable extensions.

- The GLM 0.5.0 packages contain some basic samples and some documentation. The ray tracer sample has been updated to GLM 0.5.0. Except for specific cases, especially with extensions, GLM 0.5 is backward compatible. + The GLM 0.5.0 packages contain some basic samples and some documentation. The ray tracer sample has been updated to GLM 0.5.0. Except for specific cases, especially with extensions, GLM 0.5 is backward compatible.

Now, GLM development is taking advantages of SourceForge.net services: a bug tracker system and the development source code is publicly available on SF.net SVN server.

Download: GLM 0.5.0 (zip, 2.4 MB)
Download: GLM 0.5.0 (7z, 843 KB)
Download: Raytracer b3.0 (exe, 751 KB)
Download: Raytracer b3.0 (zip, 1.1 MB)
_________________

22/05/2006
GLM 0.4.1 released
- A GLM update is available. It simply includes some examples for a sweet start with GLM. + A GLM update is available. It simply includes some examples for a sweet start with GLM.

- The examples show how to use GLM with OpenGL intermediate mode and OpenGL vertex arrays. Also, they show how to use GLM extensions to replace GLU and OpenGL function witch could slightly increase performances by decreasing the number of OpenGL states changes. + The examples show how to use GLM with OpenGL intermediate mode and OpenGL vertex arrays. Also, they show how to use GLM extensions to replace GLU and OpenGL function witch could slightly increase performances by decreasing the number of OpenGL states changes.

Download: GLM 0.4.1 (zip, 1.6 MB)
Download: GLM 0.4.1 (7z, 521 KB)
_________________

17/05/2006
GLM 0.4.0 released
This release introduces first GLSL 1.2 features as planed. Also, various new extensions have been added and updated. Finally, it's not anymore required to include windows.h before glm.h when windows.h is required.

@@ -162,5 +191,4 @@ For now, there isn't detailed documentation, but you can freely have a look on GLSL specifications. Consider any incoherence with GLM as an error. Keep in mind the library is included in the namespace "glm".

This project is multi platform and was successfully tested under Visual C++ 7.1, MinGW 3.4 and GCC 3.4. -

Download: GLM 0.1 User Release
Download: GLM 0.1 Contributor Release
Documentation: GLSL 1.10.59 specifications
_________________

- Copyright © 2005-2009 G-Truc Creation
\ No newline at end of file +

Download: GLM 0.1 User Release
Download: GLM 0.1 Contributor Release
Documentation: GLSL 1.10.59 specifications
_________________

Copyright © 2005 - 2010 G-Truc Creation
\ No newline at end of file diff --git a/doc/issue.html b/doc/issue.html index c8917469..1fec2965 100644 --- a/doc/issue.html +++ b/doc/issue.html @@ -1,13 +1,14 @@ -OpenGL Mathematics : Issues
OpenGL Mathematics
Problématiques

10) Several useful tools are missing in GLSL, is this possible to add them ?
DISCUTION: GLSL is not the ultimate mathematics library, i.e. for matrices operations, specs are very restricted. There aren't any functions to get the determinant, inverse, or a matrix transpose. Moreover, there are a few vector types and no quaternions.
PROPOSAL: What about completing the missing features using the extensions ? It will be developed from GLSL conventions and may add for exemple the extension GLM_GTX_quaternion, defining __quatGT type and conjugateGT function.
PROPOSAL: Extensions may be available through a separate file called glmext.h instead of being directly into the library core file.
PROPOSAL: It would be interesting to suggest GLM extensions implementations directly in GLSL to increase portability. It may hopefully end by submitting extensions to ARB.

- STATUE : Partially resolved, 2005-03-21

9) Should GLM be included into a namespace ?
DISCUTION: The use of a namespace allows to prevenf from any name collision problem with other libraries like STL. GLSL uses a reserved 'namespace' keyword but does not define it. OpenGL uses a C technic for the namespaces management with the 'gl' prefix. What name should we give to this namespace ? 'gl', 'glsl', 'glm' or 'sl' ? What is the best solution ? C-like or C++-like namespaces ?
DISCUTION: Bug #3 says that 'not' is a C++ keyword. C-style namespaces use would resolves this bug but GLSL has been built from C upon a C++ logic.

- STATUE : Unresolved, 2005-02-18

8) Could the OpenGL API be considered ?
DISCUTION: The interaction with OpenGL is not the purpose of GLM. However, GLM should be easily usable with OpenGL and some features could be welcome. i.e., using vec3 type with Vertex3fv function should simplify and optimize the program. Eventually, semantically speaking, vec3 is more accurate and stronger than addressing on a potential 3 floats table.
RESOLUTION: If it is possible to make easy the interoperability between GLM and OpenGL, then this work is recommended if semantic stays correct. GLM must also remain independent towards OpenGL.

- STATUE : Resolved, 2005-03-04

7) How to consider reserved keywords ?
DISCUTION: GLSL specifications include unimplemented reserved keywords list. Their use must return an error. Some of them already exist in C++.
RESOLUTION: GLM can only allow C++ reserved keywords. The others must be undefined so the compiler returns an error.

- STATUE : Partially resolved, 2005-01-26

6) How to manage GLSL qualifiers ?
DISCUTION: GLSL defines six variable qualifiers types : const, varying, uniform, attrib, in, out, inout.
RESOLUTION: 'const' variables are only usable in a local way into a shader. They are available for vertex and fragments shaders. GLSL's 'const' are similar to C++ 'static const', i.e. the variable only exists inside a compilation unit (.o files with GCC).
RESOLUTION: 'varying' variables offer a communication interface between vertex and fragment sahder. 'uniform' and 'attrib' variables are a way of communication between C/C++ program and shaders, so 'varying' are useless in the C++ program; so this qualifier is not allowed.
SUGGESTION: Some programmers are already using 'in', 'ou' and 'inout' qualifiers for semantic purpose. They define them as empty '#define'.
DISCUTION: It seems difficult to keep the same syntax than GLSL for 'uniform' and 'attrib' variables although this notion seems interesting. Why not keeping it only for their semantic properties ?

- STATUE : Partially resolved, 2005-03-04

5) Should integrated variables be considered ?
SUGGESTION: All integrated variables matches with OpenGL state variables. So there are all accessible from the OpenGL API.

- STATUE : Resolved, 2005-01-13

4) Should sampler* types be considered ?
DISCUTION: smapler* types come from GL_ARB_multitexure extension. Values matches with a texture unit.
SUGGESTION: A sampler type would offer an additionnal semantic value.
SUGGESTION: No, this is not the GLM objective.

- STATUE : Resolved, 2005-03-05

3) How to manage specific access to *vec* types components ?
DISCUTION: GLSL allows several components to be accessed at the same time. Moreover, GLSL let the possibility to the user to order components as he wants. To implement such a possibility, 4² * 3 * 2 = 96 fuctions should be added for vec4 type, for example (components number : 4, access types : 3, readonly access and write access : 2).
RESOLUTION: A solution witch reach GLSL conformance have been found. However it need lot of functions. This feature is coming in a futur release.

- STATUE : Unresolved, 2005-01-22

2) How to access to *vec* type components ?
DISCUTION: GLSL allows an access to a component with many different names, that explains the component notion. i.e. the first vec3 component is accessible with .x, .r, .s.
PROPOSAL: A possibility would be creating three functions for each component.
PROPOSAL: Another would be using the keyword 'union'.
RESOLUTION: The first solution allows to keep components values in a private classes table, but in this case, the overloaded operator [] must be used to access values and/or functions per component that is not conform to GLSL specifications. The second respect GLSL rules but components are public. In this case, this is not a real problem so this second solution is kept.

- STATUE : Closed, 2005-01-15

1) How to consider dedicated functions to fragment shaders and ftransform function ?
RESOLUTION: GLSL specifications tell that 'fragment processing functions' are only available for fragment shaders and function ftransform is only available for vertex shaders. The C/C++ program must be considered as a third program type so this functions are not available.

- STATUE : Closed, 2005-01-12

Copyright © 2005-2008 G-Truc Creation
\ No newline at end of file +OpenGL Mathematics : Issues
OpenGL Mathematics
Problématiques

10) Several useful tools are missing in GLSL, is this possible to add them ?
DISCUTION: GLSL is not the ultimate mathematics library, i.e. for matrices operations, specs are very restricted. There aren't any functions to get the determinant, inverse, or a matrix transpose. Moreover, there are a few vector types and no quaternions.
PROPOSAL: What about completing the missing features using the extensions ? It will be developed from GLSL conventions and may add for exemple the extension GLM_GTX_quaternion, defining __quatGT type and conjugateGT function.
PROPOSAL: Extensions may be available through a separate file called glmext.h instead of being directly into the library core file.
PROPOSAL: It would be interesting to suggest GLM extensions implementations directly in GLSL to increase portability. It may hopefully end by submitting extensions to ARB.

+ STATUE : Partially resolved, 2005-03-21

9) Should GLM be included into a namespace ?
DISCUTION: The use of a namespace allows to prevenf from any name collision problem with other libraries like STL. GLSL uses a reserved 'namespace' keyword but does not define it. OpenGL uses a C technic for the namespaces management with the 'gl' prefix. What name should we give to this namespace ? 'gl', 'glsl', 'glm' or 'sl' ? What is the best solution ? C-like or C++-like namespaces ?
DISCUTION: Bug #3 says that 'not' is a C++ keyword. C-style namespaces use would resolves this bug but GLSL has been built from C upon a C++ logic.

+ STATUE : Unresolved, 2005-02-18

8) Could the OpenGL API be considered ?
DISCUTION: The interaction with OpenGL is not the purpose of GLM. However, GLM should be easily usable with OpenGL and some features could be welcome. i.e., using vec3 type with Vertex3fv function should simplify and optimize the program. Eventually, semantically speaking, vec3 is more accurate and stronger than addressing on a potential 3 floats table.
RESOLUTION: If it is possible to make easy the interoperability between GLM and OpenGL, then this work is recommended if semantic stays correct. GLM must also remain independent towards OpenGL.

+ STATUE : Resolved, 2005-03-04

7) How to consider reserved keywords ?
DISCUTION: GLSL specifications include unimplemented reserved keywords list. Their use must return an error. Some of them already exist in C++.
RESOLUTION: GLM can only allow C++ reserved keywords. The others must be undefined so the compiler returns an error.

+ STATUE : Partially resolved, 2005-01-26

6) How to manage GLSL qualifiers ?
DISCUTION: GLSL defines six variable qualifiers types : const, varying, uniform, attrib, in, out, inout.
RESOLUTION: 'const' variables are only usable in a local way into a shader. They are available for vertex and fragments shaders. GLSL's 'const' are similar to C++ 'static const', i.e. the variable only exists inside a compilation unit (.o files with GCC).
RESOLUTION: 'varying' variables offer a communication interface between vertex and fragment sahder. 'uniform' and 'attrib' variables are a way of communication between C/C++ program and shaders, so 'varying' are useless in the C++ program; so this qualifier is not allowed.
SUGGESTION: Some programmers are already using 'in', 'ou' and 'inout' qualifiers for semantic purpose. They define them as empty '#define'.
DISCUTION: It seems difficult to keep the same syntax than GLSL for 'uniform' and 'attrib' variables although this notion seems interesting. Why not keeping it only for their semantic properties ?

+ STATUE : Partially resolved, 2005-03-04

5) Should integrated variables be considered ?
SUGGESTION: All integrated variables matches with OpenGL state variables. So there are all accessible from the OpenGL API.

+ STATUE : Resolved, 2005-01-13

4) Should sampler* types be considered ?
DISCUTION: smapler* types come from GL_ARB_multitexure extension. Values matches with a texture unit.
SUGGESTION: A sampler type would offer an additionnal semantic value.
SUGGESTION: No, this is not the GLM objective.

+ STATUE : Resolved, 2005-03-05

3) How to manage specific access to *vec* types components ?
DISCUTION: GLSL allows several components to be accessed at the same time. Moreover, GLSL let the possibility to the user to order components as he wants. To implement such a possibility, 4² * 3 * 2 = 96 fuctions should be added for vec4 type, for example (components number : 4, access types : 3, readonly access and write access : 2).
RESOLUTION: A solution witch reach GLSL conformance have been found. However it need lot of functions. This feature is coming in a futur release.

+ STATUE : Unresolved, 2005-01-22

2) How to access to *vec* type components ?
DISCUTION: GLSL allows an access to a component with many different names, that explains the component notion. i.e. the first vec3 component is accessible with .x, .r, .s.
PROPOSAL: A possibility would be creating three functions for each component.
PROPOSAL: Another would be using the keyword 'union'.
RESOLUTION: The first solution allows to keep components values in a private classes table, but in this case, the overloaded operator [] must be used to access values and/or functions per component that is not conform to GLSL specifications. The second respect GLSL rules but components are public. In this case, this is not a real problem so this second solution is kept.

+ STATUE : Closed, 2005-01-15

1) How to consider dedicated functions to fragment shaders and ftransform function ?
RESOLUTION: GLSL specifications tell that 'fragment processing functions' are only available for fragment shaders and function ftransform is only available for vertex shaders. The C/C++ program must be considered as a third program type so this functions are not available.

+ STATUE : Closed, 2005-01-12

Copyright © 2005 - 2010 G-Truc Creation
\ No newline at end of file diff --git a/doc/link.html b/doc/link.html index 6bd52f52..d1d18053 100644 --- a/doc/link.html +++ b/doc/link.html @@ -1,8 +1,9 @@ -OpenGL Mathematics : Links
OpenGL Mathematics
Liens
- This page lists all the documents that helped to develop OpenGL Mathematics. -

+OpenGL Mathematics : Links
OpenGL Mathematics
Liens
+ This page lists all the documents that helped to develop OpenGL Mathematics. +

OpenGL's Official site. You would find OpenGL specifications, news and tons of related informations.

This page contains all OpenGL extensions specifications. @@ -12,4 +13,4 @@ This page contains OpenGL Shading Language Specification.

This document lists all the conventions for writing GLSL extensions. These rules are the basics of the GLM extensions system. -

Copyright © 2005-2008 G-Truc Creation
\ No newline at end of file +

Copyright © 2005 - 2010 G-Truc Creation
\ No newline at end of file diff --git a/doc/src/data.xml b/doc/src/data.xml index 57b9b526..17937207 100644 --- a/doc/src/data.xml +++ b/doc/src/data.xml @@ -1525,13 +1525,13 @@ - + GLM 0.9 Beta 2 is available and should be the last development release of GLM 0.9. - + The code has been moved from a SVN to Git repository which branching efficiency allowed to remove all the experimental code from this release. - + Various bug fixes and manual updates have been done too. GLM 0.9.B.2 (zip, 1.07 MB) GLM 0.9.B.2 (7z, 555 KB) diff --git a/doc/src/link.xsl b/doc/src/link.xsl index 7d1ac769..082e51a4 100644 --- a/doc/src/link.xsl +++ b/doc/src/link.xsl @@ -41,14 +41,17 @@ -