From 729462911c8d46162ce02aea3d14be43445a98aa Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Mon, 24 Oct 2011 14:57:12 +0100 Subject: [PATCH 1/3] Document GLM 0.9.2.7 release --- doc/about.html | 4 ++-- doc/code.html | 4 ++-- doc/download.html | 12 +++++++----- doc/goodies.html | 4 ++-- doc/index.html | 40 +++++++++++++++++++++++++++++++++++++--- readme.txt | 2 +- 6 files changed, 51 insertions(+), 15 deletions(-) diff --git a/doc/about.html b/doc/about.html index 2fc28148..dbecd926 100644 --- a/doc/about.html +++ b/doc/about.html @@ -11,8 +11,8 @@ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); -
OpenGL Mathematics
GLSL + Optional features = OpenGL Mathematics (GLM)
A C++ mathematics library for graphics programming


+
OpenGL Mathematics
GLSL + Optional features = OpenGL Mathematics (GLM)
A C++ mathematics library for graphics programming


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

diff --git a/doc/code.html b/doc/code.html index ff7c3b75..896d930e 100644 --- a/doc/code.html +++ b/doc/code.html @@ -11,8 +11,8 @@ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); -
OpenGL Mathematics
GLSL + Optional features = OpenGL Mathematics (GLM)
A C++ mathematics library for graphics programming


Compute a triangle normal:
  • #include <glm/glm.hpp>
  • void computeNormal(triangle & Triangle) + (baPWcyaTd}pf8;tYJNBihLslP-rD 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 T}YE2g^t#xL|*E1 zri0=29pP4~%>=Xd`>optYe_S~tujI23p!a@G6#4+N3g2R|JsXror$#qGU{-ZBl(rmh9dZugjZ<0;?u*;O}>HK^9S><%^jG})mE6uN17)k>zXfa3+wnza?%alwlqE4FA zYNP5NH#p8}OX{-PQE^5}DMP3}gBYig#5xjqusY>Sf7@naYZN(`MS+#hWsNBvb^l-> zXOa$m1PN!n2u0}MA|m+VNU7Z#hBDTo)JSHaLfX$>LYYpuTjV!)lO6`zCt7nlMyaro z6@of20MJGSUKEmVye^gZ$V>N~YG=$@9UPa+M8=a+M95aur}~naTA{ z5>{2Yr)kvRRyfGNRX+la{4PYodNxo;q)HD$E*3Sx2J|$&($nf6xT?&9`dmjxumOD@ zGl`9j1G?U&e`N!3)T(H0W0K|oM(g#VVQU7zU$R7SLRAR^X?v>5l>DcU9UGPiW{B8`WEd_UqQ-Q-^L#6@;;38ej zDei3$X5`!W?)bHDZxcLFHMI#2u_7basZ6j1pt=WJiZ(D!A=H8~w=fL6)@h7YgsGAH z`h~dN5RjAB0lg6|d8TnDD3b?U%ZH7oLX07N7ZbOpcE*wGI3Rfv!~hf18F6FI$Cnc_ zz(Ym~W%NJ~gBO|S9Ex*p{xg9)k>HkbfWv5uw~cZjrchWiDZKcnl&6?_MeDdz(Hbp8 zT_T#Jw%9o@Cy2_qASZ~RNf=Pv$#I~gEn#bUKq<+LHw081j7nO?_>hG2KDqm}Ax)GJ z-ZYE@4MWc6>zCE7pHo5zXussP!BUmQyfdpN?N;w%9^{hD7ZEWkxAr**yrmR+!d_V^ z-X4&DBnzP=JHZy(j{>dQO0=nksJ8@}07M8E1x%Re5FKa~6)@Y9UKxz;RG+$?IRl(< zSqTO*ORh27keWg9CoqTXLkTiiPYx4+1k2#Q{A{&=SduXpki(e<;4YsdWs5JN>LU;G*UI%lD>3!m^xH#aF-zv0Ukyf>_3ZjXlaP%Wkacvp;lSz z^R4>vFiq4o5~E}gG$S(#Xr35EmN-2sb1CFG$&*93Lo_elNdwF9@xbyTV`x+}>F=O< zYBoS5l%Nf)B`gSU4*=q7jP3x-4gp8o5*=OJLkA0Ur8OU{!I3^SYK;KqL2c z9i(Io(1HXopwXa9J4~o$)T5lrGJ|#TG81f@4G`&SQ=_XcZ;h0njhS4@l0>7P5EpCg z3oe;{L5KdaaFyC<|Cf#THX~ z%>IQIN@&X{iQ1FhqmJv&V}mnw)abe7hJeE|JL2X>HktT?T6DDu^pAm`*e{{z^=W8! zafMvo;ON;HWoC_p*LKIcAe{@|reuag0U&^jbqKNk8KAkKMB4%)rVF%iGsfF8gL#y2 zLUci1w&|cHIY)p__2$l~USI4((GomiA%z`i=$8e90Hm_#0FI-+3N-3hP~sKAd|Uyd zZIp+AY2gc42mDOy5IT|uAR)B{3cy`ke>Sm=Whi&_aFU?eAXiHi2pXo8@>vv0(w6PK z8c|=qSAo{KdlOxp5mO;tX~+#>B|3!fw#r4QY}yU5KRNYOlgWu@IM-q-rD`LcC1F;!2trIrNFQqD!K{hc4Ju96n0 z2AzPj&_6b$`5m;X;Tc6C9sj^pK54;YzEA7$P9@RkCK6{v|5Szv%t^@y1%S;IfHvhJ z@VC(X>RI*UTFMDAi+ZJD9d78DMuS1jBQe$$r{PUKvJFODt>+cD-o%wJJ(qkKO@!1@ zKuwc};7K`L!wY~$LV5JJXyUhLl=IPm;}%I8F_mkP?ZVYMyj&;kfcs#=6tE1{AWR8l zuVE5eINA9CW0R-gMi^I+eP+rnaUYJCOJZnMFj%^^RSMf`y4)(RU?b#Ts~^OE%7Mrh z_j=MrF{ClF`jlHe*#v_|pa-9;`tjYzk9K~0f10Ou1Q<4X5hfAujq7oo4E;C)&>(}l(FgZO<53#r;fv9W(bP|^ z9*-vI;!%^0o#0J#|H0>XA0JOo@Zu|+3UAgw+q;
    OpenGL Mathematics
    GLSL + Optional features = OpenGL Mathematics (GLM)
    A C++ mathematics library for graphics programming


    Compute a triangle normal:
    • #include <glm/glm.hpp>
    • void computeNormal(triangle & Triangle)
    • {
    • diff --git a/doc/download.html b/doc/download.html index 518d71ee..f7daf51d 100644 --- a/doc/download.html +++ b/doc/download.html @@ -11,11 +11,12 @@ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); - "&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

      ";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
      ";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0) +{I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
      ").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function() +{G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
      OpenGL Mathematics
      GLSL + Optional features = OpenGL Mathematics (GLM)
      A C++ mathematics library for graphics programming


      Current release
      01/10/2011: - GLM 0.9.2.6 + ","
      OpenGL Mathematics
      GLSL + Optional features = OpenGL Mathematics (GLM)
      A C++ mathematics library for graphics programming


      Current release
      24/10/2011: + GLM 0.9.2.7 (3.4 MB) -
      _________________

      GLM - zip files
      01/10/2011: GLM 0.9.2.6 (3.4 MB) +
      _________________

      GLM - zip files
      24/10/2011: GLM 0.9.2.7 (3.4 MB) +
      01/10/2011: GLM 0.9.2.6 (3.4 MB)
      20/09/2011: GLM 0.9.2.5 (3.4 MB)
      03/09/2011: GLM 0.9.2.4 (3.4 MB)
      08/06/2011: GLM 0.9.2.3 (3.4 MB) @@ -79,7 +80,8 @@
      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
      01/10/2011: GLM 0.9.2.6 (2.1 MB) +
      _________________

      GLM - 7z files
      24/10/2011: GLM 0.9.2.7 (2.1 MB) +
      01/10/2011: GLM 0.9.2.6 (2.1 MB)
      20/09/2011: GLM 0.9.2.5 (2.1 MB)
      03/09/2011: GLM 0.9.2.4 (2.1 MB)
      08/06/2011: GLM 0.9.2.3 (2.1 MB) diff --git a/doc/goodies.html b/doc/goodies.html index 5027b0dc..bda2eeb4 100644 --- a/doc/goodies.html +++ b/doc/goodies.html @@ -11,5 +11,5 @@ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); -
      OpenGL Mathematics
      GLSL + Optional features = OpenGL Mathematics (GLM)
      A C++ mathematics library for graphics programming


      16/10/2008
      GLM Logo

      Download: 2560x1600
      Download: 1920x1200
      Download: 1600x1000
      Download: 1280x0800
      Download: 1024x0640

      _________________

      16/10/2008
      GLM Font

      Download: Font (.otf)

      _________________

      _________________

      Copyright © 2005 - 2011G-Truc Creation
      \ No newline at end of file +
      OpenGL Mathematics
      GLSL + Optional features = OpenGL Mathematics (GLM)
      A C++ mathematics library for graphics programming


      16/10/2008
      GLM Logo

      Download: 2560x1600
      Download: 1920x1200
      Download: 1600x1000
      Download: 1280x0800
      Download: 1024x0640

      _________________

      16/10/2008
      GLM Font

      Download: Font (.otf)

      _________________

      _________________

      Copyright © 2005 - 2011G-Truc Creation
      \ No newline at end of file diff --git a/doc/index.html b/doc/index.html index b366d0f4..df29eee0 100644 --- a/doc/index.html +++ b/doc/index.html @@ -11,8 +11,8 @@ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); - ","
      OpenGL Mathematics
      GLSL + Optional features = OpenGL Mathematics (GLM)
      A C++ mathematics library for graphics programming


      + ","
      OpenGL Mathematics
      GLSL + Optional features = OpenGL Mathematics (GLM)
      A C++ mathematics library for graphics programming


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

      @@ -33,7 +33,41 @@

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


      01/10/2011 - GLM 0.9.2.6 released

      +


      24/10/2011 - GLM 0.9.2.7 released

      + This revision fixes two problems: First, it adds all matrix products for all possible combinations of none-squared matrices. Thanks to Grant James who has provide the code for that. +

      • #include <glm/glm.hpp>
      • void kueken() +
      • + { +
      • + glm::mat3x2 m1; +
      • + glm::mat2x3 n1; +
      • + ... +
      • + glm::mat2x2 P = m1 * n1; // Valid before GLM 0.9.2.7
      • + glm::mat3x2 m2; +
      • + glm::mat4x3 n2; +
      • + ... +
      • + glm::mat4x2 P2 = m2 * n2; // Fixed in GLM 0.9.2.7
      • + glm::mat4x3 m3; +
      • + glm::mat4x4 n3; +
      • + ... +
      • + glm::mat4x3 P3 = m3 * n3; // Fixed in GLM 0.9.2.7
      • + ... +
      • + } +

      + This support is actually pretty useful as soon as we are interested in optimizing the matrix storage. +

      + It also fixes vector contructors which can take multiple parameters that may be swizzle operands. +

      Download: GLM 0.9.2.7 (zip)
      Download: GLM 0.9.2.7 (7z)
      Link: Submit a bug report

      01/10/2011 - GLM 0.9.2.6 released

      Half based vector types have been fixed on GCC 4.4 and below, missing l-value swizzle operations added and a couple of other bugs squeezed down.

      Finally, all the Visual C++ /W4 warnings should have been removed. However, for this to happen, it is required to build with the Visual C++ language extension disabled (/Za). diff --git a/readme.txt b/readme.txt index 70571a3d..a6f3dbf1 100644 --- a/readme.txt +++ b/readme.txt @@ -37,7 +37,7 @@ More informations in GLM manual: http://glm.g-truc.net/glm-0.9.2.pdf ================================================================================ -GLM 0.9.2.7: 2011-1X-XX +GLM 0.9.2.7: 2011-10-24 -------------------------------------------------------------------------------- - Added more swizzling constructors - Added missing none-squared matrix products From 92b010cc87a955ae9acad4187c6d2831ba7d9298 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Mon, 24 Oct 2011 14:58:07 +0100 Subject: [PATCH 2/3] Document GLM 0.9.2.7 release --- doc/src/data.xml | 83 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/doc/src/data.xml b/doc/src/data.xml index f703ca7d..75269441 100644 --- a/doc/src/data.xml +++ b/doc/src/data.xml @@ -3,6 +3,7 @@

      + @@ -69,6 +70,7 @@
      + @@ -162,6 +164,87 @@ + + + This revision fixes two problems: First, it adds all matrix products for all possible combinations of none-squared matrices. Thanks to Grant James who has provide the code for that. + + + + + #include + <glm/glm.hpp> + + + + + + void kueken() + + + { + + + glm::mat3x2 m1; + + + glm::mat2x3 n1; + + + ... + + + glm::mat2x2 P = m1 * n1; // Valid before GLM 0.9.2.7 + + + + + + glm::mat3x2 m2; + + + glm::mat4x3 n2; + + + ... + + + glm::mat4x2 P2 = m2 * n2; // Fixed in GLM 0.9.2.7 + + + + + + glm::mat4x3 m3; + + + glm::mat4x4 n3; + + + ... + + + glm::mat4x3 P3 = m3 * n3; // Fixed in GLM 0.9.2.7 + + + ... + + + } + + + + This support is actually pretty useful as soon as we are interested in optimizing the matrix storage. + + + + It also fixes vector contructors which can take multiple parameters that may be swizzle operands. + + + GLM 0.9.2.7 (zip) + GLM 0.9.2.7 (7z) + Submit a bug report + + Half based vector types have been fixed on GCC 4.4 and below, missing l-value swizzle operations added and a couple of other bugs squeezed down. From 8d2d1121803fc501bb72b6288677649c2ff92f72 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Mon, 24 Oct 2011 15:24:48 +0100 Subject: [PATCH 3/3] Added API doc --- doc/api-0.9.2/a00001.html | 122 + doc/api-0.9.2/a00002.html | 120 + doc/api-0.9.2/a00003.html | 83 + doc/api-0.9.2/a00004.html | 54 + doc/api-0.9.2/a00005.html | 77 + doc/api-0.9.2/a00006.html | 184 + doc/api-0.9.2/a00007.html | 57 + doc/api-0.9.2/a00008.html | 55 + doc/api-0.9.2/a00009.html | 65 + doc/api-0.9.2/a00010.html | 68 + doc/api-0.9.2/a00011.html | 68 + doc/api-0.9.2/a00012.html | 68 + doc/api-0.9.2/a00013.html | 68 + doc/api-0.9.2/a00014.html | 68 + doc/api-0.9.2/a00015.html | 68 + doc/api-0.9.2/a00016.html | 68 + doc/api-0.9.2/a00017.html | 68 + doc/api-0.9.2/a00018.html | 68 + doc/api-0.9.2/a00019.html | 75 + doc/api-0.9.2/a00020.html | 87 + doc/api-0.9.2/a00021.html | 90 + doc/api-0.9.2/a00022.html | 123 + doc/api-0.9.2/a00023_source.html | 392 +++ doc/api-0.9.2/a00024_source.html | 60 + doc/api-0.9.2/a00025_source.html | 1129 +++++++ doc/api-0.9.2/a00026_source.html | 116 + doc/api-0.9.2/a00027_source.html | 122 + doc/api-0.9.2/a00028_source.html | 85 + doc/api-0.9.2/a00029_source.html | 143 + doc/api-0.9.2/a00030_source.html | 105 + doc/api-0.9.2/a00031_source.html | 95 + doc/api-0.9.2/a00032_source.html | 210 ++ doc/api-0.9.2/a00033_source.html | 95 + doc/api-0.9.2/a00034_source.html | 47 + doc/api-0.9.2/a00035_source.html | 95 + doc/api-0.9.2/a00036_source.html | 150 + doc/api-0.9.2/a00037_source.html | 141 + doc/api-0.9.2/a00038_source.html | 85 + doc/api-0.9.2/a00039_source.html | 215 ++ doc/api-0.9.2/a00040_source.html | 107 + doc/api-0.9.2/a00041_source.html | 97 + doc/api-0.9.2/a00042_source.html | 100 + doc/api-0.9.2/a00043_source.html | 199 ++ doc/api-0.9.2/a00044_source.html | 95 + doc/api-0.9.2/a00045_source.html | 114 + doc/api-0.9.2/a00046_source.html | 126 + doc/api-0.9.2/a00047_source.html | 112 + doc/api-0.9.2/a00048_source.html | 87 + doc/api-0.9.2/a00049_source.html | 91 + doc/api-0.9.2/a00050_source.html | 121 + doc/api-0.9.2/a00051_source.html | 217 ++ doc/api-0.9.2/a00052_source.html | 124 + doc/api-0.9.2/a00053_source.html | 95 + doc/api-0.9.2/a00054_source.html | 47 + doc/api-0.9.2/a00055_source.html | 47 + doc/api-0.9.2/a00056_source.html | 366 ++ doc/api-0.9.2/a00057_source.html | 91 + doc/api-0.9.2/a00058_source.html | 65 + doc/api-0.9.2/a00059_source.html | 119 + doc/api-0.9.2/a00060_source.html | 85 + doc/api-0.9.2/a00061_source.html | 88 + doc/api-0.9.2/a00062_source.html | 105 + doc/api-0.9.2/a00063_source.html | 114 + doc/api-0.9.2/a00064_source.html | 104 + doc/api-0.9.2/a00065_source.html | 101 + doc/api-0.9.2/a00066_source.html | 94 + doc/api-0.9.2/a00067_source.html | 73 + doc/api-0.9.2/a00068_source.html | 73 + doc/api-0.9.2/a00069_source.html | 85 + doc/api-0.9.2/a00070_source.html | 1736 ++++++++++ doc/api-0.9.2/a00071_source.html | 102 + doc/api-0.9.2/a00072_source.html | 87 + doc/api-0.9.2/a00073_source.html | 244 ++ doc/api-0.9.2/a00074_source.html | 98 + doc/api-0.9.2/a00075_source.html | 87 + doc/api-0.9.2/a00076_source.html | 139 + doc/api-0.9.2/a00077_source.html | 115 + doc/api-0.9.2/a00078_source.html | 120 + doc/api-0.9.2/a00079_source.html | 170 + doc/api-0.9.2/a00080_source.html | 85 + doc/api-0.9.2/a00081_source.html | 89 + doc/api-0.9.2/a00082_source.html | 96 + doc/api-0.9.2/a00083_source.html | 152 + doc/api-0.9.2/a00084_source.html | 85 + doc/api-0.9.2/a00085_source.html | 93 + doc/api-0.9.2/a00086_source.html | 106 + doc/api-0.9.2/a00087_source.html | 149 + doc/api-0.9.2/a00088_source.html | 96 + doc/api-0.9.2/a00089_source.html | 88 + doc/api-0.9.2/a00090_source.html | 47 + doc/api-0.9.2/a00091_source.html | 96 + doc/api-0.9.2/a00092_source.html | 85 + doc/api-0.9.2/a00093_source.html | 94 + doc/api-0.9.2/a00094_source.html | 242 ++ doc/api-0.9.2/a00095_source.html | 205 ++ doc/api-0.9.2/a00096_source.html | 127 + doc/api-0.9.2/a00097_source.html | 90 + doc/api-0.9.2/a00098_source.html | 113 + doc/api-0.9.2/a00099_source.html | 134 + doc/api-0.9.2/a00100_source.html | 515 +++ doc/api-0.9.2/a00101_source.html | 205 ++ doc/api-0.9.2/a00102_source.html | 334 ++ doc/api-0.9.2/a00103_source.html | 104 + doc/api-0.9.2/a00104_source.html | 107 + doc/api-0.9.2/a00105_source.html | 115 + doc/api-0.9.2/a00106_source.html | 95 + doc/api-0.9.2/a00107_source.html | 397 +++ doc/api-0.9.2/a00108_source.html | 125 + doc/api-0.9.2/a00109_source.html | 140 + doc/api-0.9.2/a00110_source.html | 253 ++ doc/api-0.9.2/a00111_source.html | 106 + doc/api-0.9.2/a00112_source.html | 188 ++ doc/api-0.9.2/a00113_source.html | 120 + doc/api-0.9.2/a00114_source.html | 127 + doc/api-0.9.2/a00115_source.html | 100 + doc/api-0.9.2/a00116_source.html | 294 ++ doc/api-0.9.2/a00117_source.html | 255 ++ doc/api-0.9.2/a00118_source.html | 256 ++ doc/api-0.9.2/a00119_source.html | 263 ++ doc/api-0.9.2/a00120_source.html | 300 ++ doc/api-0.9.2/a00121_source.html | 264 ++ doc/api-0.9.2/a00122_source.html | 271 ++ doc/api-0.9.2/a00123_source.html | 269 ++ doc/api-0.9.2/a00124_source.html | 303 ++ doc/api-0.9.2/a00125_source.html | 254 ++ doc/api-0.9.2/a00126_source.html | 411 +++ doc/api-0.9.2/a00127_source.html | 68 + doc/api-0.9.2/a00128_source.html | 66 + doc/api-0.9.2/a00129_source.html | 202 ++ doc/api-0.9.2/a00130_source.html | 256 ++ doc/api-0.9.2/a00131_source.html | 268 ++ doc/api-0.9.2/a00132_source.html | 290 ++ doc/api-0.9.2/a00133_source.html | 98 + doc/api-0.9.2/a00134_source.html | 91 + doc/api-0.9.2/a00135_source.html | 134 + doc/api-0.9.2/a00136_source.html | 100 + doc/api-0.9.2/a00137_source.html | 103 + doc/api-0.9.2/a00138_source.html | 121 + doc/api-0.9.2/a00139_source.html | 94 + doc/api-0.9.2/a00140_source.html | 47 + doc/api-0.9.2/a00141_source.html | 88 + doc/api-0.9.2/a00142_source.html | 190 ++ doc/api-0.9.2/a00143.html | 62 + doc/api-0.9.2/a00144.html | 66 + doc/api-0.9.2/a00145.html | 72 + doc/api-0.9.2/a00147.html | 80 + doc/api-0.9.2/a00149.html | 86 + doc/api-0.9.2/a00150.html | 84 + doc/api-0.9.2/a00152.html | 74 + doc/api-0.9.2/a00153.html | 97 + doc/api-0.9.2/a00154.html | 91 + doc/api-0.9.2/a00155.html | 129 + doc/api-0.9.2/a00156.html | 349 ++ doc/api-0.9.2/a00158.html | 73 + doc/api-0.9.2/a00159.html | 96 + doc/api-0.9.2/a00160.html | 73 + doc/api-0.9.2/a00161.html | 317 ++ doc/api-0.9.2/a00162.html | 70 + doc/api-0.9.2/a00163.html | 93 + doc/api-0.9.2/a00164.html | 102 + doc/api-0.9.2/a00165.html | 61 + doc/api-0.9.2/a00166.html | 283 ++ doc/api-0.9.2/a00167.html | 158 + doc/api-0.9.2/a00168.html | 124 + doc/api-0.9.2/a00169.html | 83 + doc/api-0.9.2/a00170.html | 89 + doc/api-0.9.2/a00171.html | 67 + doc/api-0.9.2/a00172.html | 198 ++ doc/api-0.9.2/a00173.html | 77 + doc/api-0.9.2/a00174.html | 73 + doc/api-0.9.2/a00175.html | 313 ++ doc/api-0.9.2/a00176.html | 73 + doc/api-0.9.2/a00177.html | 69 + doc/api-0.9.2/a00178.html | 95 + doc/api-0.9.2/a00179.html | 67 + doc/api-0.9.2/a00180.html | 61 + doc/api-0.9.2/a00181.html | 79 + doc/api-0.9.2/a00182.html | 75 + doc/api-0.9.2/a00183.html | 79 + doc/api-0.9.2/a00184.html | 61 + doc/api-0.9.2/a00185.html | 69 + doc/api-0.9.2/a00186.html | 81 + doc/api-0.9.2/a00187.html | 66 + doc/api-0.9.2/a00188.html | 70 + doc/api-0.9.2/a00189.html | 73 + doc/api-0.9.2/a00190.html | 67 + doc/api-0.9.2/a00191.html | 69 + doc/api-0.9.2/a00192.html | 71 + doc/api-0.9.2/a00193.html | 89 + doc/api-0.9.2/a00194.html | 83 + doc/api-0.9.2/a00195.html | 81 + doc/api-0.9.2/a00196.html | 68 + doc/api-0.9.2/a00197.html | 69 + doc/api-0.9.2/a00198.html | 71 + doc/api-0.9.2/a00199.html | 95 + doc/api-0.9.2/a00200.html | 67 + doc/api-0.9.2/a00201.html | 69 + doc/api-0.9.2/a00202.html | 91 + doc/api-0.9.2/a00203.html | 184 + doc/api-0.9.2/a00204.html | 75 + doc/api-0.9.2/a00205.html | 69 + doc/api-0.9.2/a00206.html | 71 + doc/api-0.9.2/a00207.html | 69 + doc/api-0.9.2/a00208.html | 71 + doc/api-0.9.2/a00209.html | 113 + doc/api-0.9.2/a00210.html | 175 + doc/api-0.9.2/a00211.html | 69 + doc/api-0.9.2/a00212.html | 89 + doc/api-0.9.2/a00213.html | 85 + doc/api-0.9.2/a00214.html | 71 + doc/api-0.9.2/a00215.html | 103 + doc/api-0.9.2/a00216.html | 72 + doc/api-0.9.2/a00217.html | 61 + doc/api-0.9.2/a00218.html | 67 + doc/api-0.9.2/a00219.html | 83 + doc/api-0.9.2/a00220.html | 83 + doc/api-0.9.2/a00221.html | 77 + doc/api-0.9.2/a00222.html | 72 + doc/api-0.9.2/a00224.html | 238 ++ doc/api-0.9.2/a00225.html | 71 + doc/api-0.9.2/a00226.html | 72 + doc/api-0.9.2/a00227.html | 79 + doc/api-0.9.2/a00228.html | 75 + doc/api-0.9.2/a00229.html | 71 + doc/api-0.9.2/a00230.html | 60 + doc/api-0.9.2/a00232.html | 61 + doc/api-0.9.2/a00234.html | 58 + doc/api-0.9.2/a00235.html | 795 +++++ doc/api-0.9.2/a00236.html | 1292 +++++++ doc/api-0.9.2/a00237.html | 77 + doc/api-0.9.2/a00238.html | 2974 +++++++++++++++++ doc/api-0.9.2/a00239.html | 62 + doc/api-0.9.2/a00240.html | 374 +++ doc/api-0.9.2/a00241.html | 190 ++ doc/api-0.9.2/a00242.html | 301 ++ doc/api-0.9.2/a00243.html | 95 + doc/api-0.9.2/a00244.html | 645 ++++ doc/api-0.9.2/a00245.html | 521 +++ doc/api-0.9.2/a00246.html | 272 ++ doc/api-0.9.2/a00247.html | 1054 ++++++ doc/api-0.9.2/a00248.html | 108 + doc/api-0.9.2/a00249.html | 70 + doc/api-0.9.2/a00250.html | 353 ++ doc/api-0.9.2/a00251.html | 92 + doc/api-0.9.2/a00252.html | 227 ++ doc/api-0.9.2/a00253.html | 206 ++ doc/api-0.9.2/a00254.html | 142 + doc/api-0.9.2/a00255.html | 301 ++ doc/api-0.9.2/a00256.html | 142 + doc/api-0.9.2/a00257.html | 130 + doc/api-0.9.2/a00258.html | 476 +++ doc/api-0.9.2/a00259.html | 92 + doc/api-0.9.2/a00260.html | 49 + doc/api-0.9.2/a00261.html | 228 ++ doc/api-0.9.2/a00262.html | 174 + doc/api-0.9.2/a00263.html | 218 ++ doc/api-0.9.2/a00264.html | 130 + doc/api-0.9.2/a00265.html | 310 ++ doc/api-0.9.2/a00266.html | 75 + doc/api-0.9.2/a00267.html | 158 + doc/api-0.9.2/a00268.html | 278 ++ doc/api-0.9.2/a00269.html | 86 + doc/api-0.9.2/a00270.html | 98 + doc/api-0.9.2/a00271.html | 414 +++ doc/api-0.9.2/a00272.html | 252 ++ doc/api-0.9.2/a00273.html | 310 ++ doc/api-0.9.2/a00274.html | 56 + doc/api-0.9.2/a00275.html | 118 + doc/api-0.9.2/a00276.html | 470 +++ doc/api-0.9.2/a00277.html | 92 + doc/api-0.9.2/a00278.html | 118 + doc/api-0.9.2/a00279.html | 79 + doc/api-0.9.2/a00280.html | 172 + doc/api-0.9.2/a00281.html | 204 ++ doc/api-0.9.2/a00282.html | 108 + doc/api-0.9.2/a00283.html | 150 + doc/api-0.9.2/a00284.html | 98 + doc/api-0.9.2/a00285.html | 150 + doc/api-0.9.2/a00286.html | 766 +++++ doc/api-0.9.2/a00287.html | 177 + doc/api-0.9.2/a00288.html | 130 + doc/api-0.9.2/a00289.html | 318 ++ doc/api-0.9.2/a00290.html | 386 +++ doc/api-0.9.2/a00291.html | 222 ++ doc/api-0.9.2/a00292.html | 1069 ++++++ doc/api-0.9.2/a00293.html | 204 ++ doc/api-0.9.2/a00294.html | 76 + doc/api-0.9.2/a00295.html | 388 +++ doc/api-0.9.2/a00296.html | 365 ++ doc/api-0.9.2/a00297.html | 160 + doc/api-0.9.2/a00298.html | 186 ++ doc/api-0.9.2/a00299.html | 157 + doc/api-0.9.2/a00300.html | 308 ++ doc/api-0.9.2/a00301.html | 215 ++ doc/api-0.9.2/a00302.html | 117 + doc/api-0.9.2/a00303.html | 53 + doc/api-0.9.2/a00304.html | 48 + doc/api-0.9.2/a00305.html | 43 + doc/api-0.9.2/a00306.html | 156 + doc/api-0.9.2/a00307.html | 124 + doc/api-0.9.2/a00308.html | 220 ++ doc/api-0.9.2/a00310.html | 55 + doc/api-0.9.2/a00311.html | 55 + doc/api-0.9.2/a00312.html | 55 + doc/api-0.9.2/a00313.html | 55 + doc/api-0.9.2/a00314.html | 55 + doc/api-0.9.2/a00315.html | 55 + doc/api-0.9.2/a00316.html | 55 + doc/api-0.9.2/a00317.html | 55 + doc/api-0.9.2/a00318.html | 55 + doc/api-0.9.2/a00319.html | 55 + doc/api-0.9.2/a00320.html | 56 + doc/api-0.9.2/a00321.html | 60 + doc/api-0.9.2/a00322.html | 61 + doc/api-0.9.2/a00323.html | 72 + doc/api-0.9.2/annotated.html | 63 + doc/api-0.9.2/bc_s.png | Bin 0 -> 705 bytes doc/api-0.9.2/classes.html | 51 + doc/api-0.9.2/closed.png | Bin 0 -> 126 bytes doc/api-0.9.2/doxygen.css | 861 +++++ doc/api-0.9.2/doxygen.png | Bin 0 -> 3942 bytes doc/api-0.9.2/files.html | 168 + doc/api-0.9.2/functions.html | 63 + doc/api-0.9.2/functions_func.html | 63 + doc/api-0.9.2/index.html | 59 + doc/api-0.9.2/jquery.js | 54 + doc/api-0.9.2/logo-mini.png | Bin 0 -> 8453 bytes doc/api-0.9.2/modules.html | 126 + doc/api-0.9.2/namespacemembers.html | 171 + doc/api-0.9.2/namespacemembers_0x62.html | 167 + doc/api-0.9.2/namespacemembers_0x63.html | 296 ++ doc/api-0.9.2/namespacemembers_0x64.html | 232 ++ doc/api-0.9.2/namespacemembers_0x65.html | 138 + doc/api-0.9.2/namespacemembers_0x66.html | 530 +++ doc/api-0.9.2/namespacemembers_0x67.html | 98 + doc/api-0.9.2/namespacemembers_0x68.html | 344 ++ doc/api-0.9.2/namespacemembers_0x69.html | 291 ++ doc/api-0.9.2/namespacemembers_0x6c.html | 287 ++ doc/api-0.9.2/namespacemembers_0x6d.html | 365 ++ doc/api-0.9.2/namespacemembers_0x6e.html | 114 + doc/api-0.9.2/namespacemembers_0x6f.html | 105 + doc/api-0.9.2/namespacemembers_0x70.html | 155 + doc/api-0.9.2/namespacemembers_0x71.html | 89 + doc/api-0.9.2/namespacemembers_0x72.html | 139 + doc/api-0.9.2/namespacemembers_0x73.html | 177 + doc/api-0.9.2/namespacemembers_0x74.html | 115 + doc/api-0.9.2/namespacemembers_0x75.html | 281 ++ doc/api-0.9.2/namespacemembers_0x76.html | 104 + doc/api-0.9.2/namespacemembers_0x77.html | 83 + doc/api-0.9.2/namespacemembers_0x79.html | 92 + doc/api-0.9.2/namespacemembers_func.html | 170 + doc/api-0.9.2/namespacemembers_func_0x62.html | 112 + doc/api-0.9.2/namespacemembers_func_0x63.html | 157 + doc/api-0.9.2/namespacemembers_func_0x64.html | 138 + doc/api-0.9.2/namespacemembers_func_0x65.html | 137 + doc/api-0.9.2/namespacemembers_func_0x66.html | 250 ++ doc/api-0.9.2/namespacemembers_func_0x67.html | 97 + doc/api-0.9.2/namespacemembers_func_0x68.html | 94 + doc/api-0.9.2/namespacemembers_func_0x69.html | 142 + doc/api-0.9.2/namespacemembers_func_0x6c.html | 130 + doc/api-0.9.2/namespacemembers_func_0x6d.html | 171 + doc/api-0.9.2/namespacemembers_func_0x6e.html | 113 + doc/api-0.9.2/namespacemembers_func_0x6f.html | 104 + doc/api-0.9.2/namespacemembers_func_0x70.html | 154 + doc/api-0.9.2/namespacemembers_func_0x71.html | 82 + doc/api-0.9.2/namespacemembers_func_0x72.html | 138 + doc/api-0.9.2/namespacemembers_func_0x73.html | 173 + doc/api-0.9.2/namespacemembers_func_0x74.html | 114 + doc/api-0.9.2/namespacemembers_func_0x75.html | 160 + doc/api-0.9.2/namespacemembers_func_0x76.html | 94 + doc/api-0.9.2/namespacemembers_func_0x79.html | 91 + doc/api-0.9.2/namespacemembers_type.html | 125 + doc/api-0.9.2/namespacemembers_type_0x63.html | 209 ++ doc/api-0.9.2/namespacemembers_type_0x64.html | 164 + doc/api-0.9.2/namespacemembers_type_0x66.html | 350 ++ doc/api-0.9.2/namespacemembers_type_0x68.html | 320 ++ doc/api-0.9.2/namespacemembers_type_0x69.html | 218 ++ doc/api-0.9.2/namespacemembers_type_0x6c.html | 227 ++ doc/api-0.9.2/namespacemembers_type_0x6d.html | 263 ++ doc/api-0.9.2/namespacemembers_type_0x71.html | 77 + doc/api-0.9.2/namespacemembers_type_0x73.html | 74 + doc/api-0.9.2/namespacemembers_type_0x75.html | 191 ++ doc/api-0.9.2/namespacemembers_type_0x76.html | 80 + doc/api-0.9.2/namespacemembers_type_0x77.html | 74 + doc/api-0.9.2/namespaces.html | 133 + doc/api-0.9.2/nav_f.png | Bin 0 -> 159 bytes doc/api-0.9.2/nav_h.png | Bin 0 -> 97 bytes doc/api-0.9.2/open.png | Bin 0 -> 118 bytes doc/api-0.9.2/tab_a.png | Bin 0 -> 140 bytes doc/api-0.9.2/tab_b.png | Bin 0 -> 178 bytes doc/api-0.9.2/tab_h.png | Bin 0 -> 192 bytes doc/api-0.9.2/tab_s.png | Bin 0 -> 189 bytes doc/api-0.9.2/tabs.css | 79 + doc/glm-0.9.2.pdf | Bin 363472 -> 359835 bytes 394 files changed, 63639 insertions(+) create mode 100644 doc/api-0.9.2/a00001.html create mode 100644 doc/api-0.9.2/a00002.html create mode 100644 doc/api-0.9.2/a00003.html create mode 100644 doc/api-0.9.2/a00004.html create mode 100644 doc/api-0.9.2/a00005.html create mode 100644 doc/api-0.9.2/a00006.html create mode 100644 doc/api-0.9.2/a00007.html create mode 100644 doc/api-0.9.2/a00008.html create mode 100644 doc/api-0.9.2/a00009.html create mode 100644 doc/api-0.9.2/a00010.html create mode 100644 doc/api-0.9.2/a00011.html create mode 100644 doc/api-0.9.2/a00012.html create mode 100644 doc/api-0.9.2/a00013.html create mode 100644 doc/api-0.9.2/a00014.html create mode 100644 doc/api-0.9.2/a00015.html create mode 100644 doc/api-0.9.2/a00016.html create mode 100644 doc/api-0.9.2/a00017.html create mode 100644 doc/api-0.9.2/a00018.html create mode 100644 doc/api-0.9.2/a00019.html create mode 100644 doc/api-0.9.2/a00020.html create mode 100644 doc/api-0.9.2/a00021.html create mode 100644 doc/api-0.9.2/a00022.html create mode 100644 doc/api-0.9.2/a00023_source.html create mode 100644 doc/api-0.9.2/a00024_source.html create mode 100644 doc/api-0.9.2/a00025_source.html create mode 100644 doc/api-0.9.2/a00026_source.html create mode 100644 doc/api-0.9.2/a00027_source.html create mode 100644 doc/api-0.9.2/a00028_source.html create mode 100644 doc/api-0.9.2/a00029_source.html create mode 100644 doc/api-0.9.2/a00030_source.html create mode 100644 doc/api-0.9.2/a00031_source.html create mode 100644 doc/api-0.9.2/a00032_source.html create mode 100644 doc/api-0.9.2/a00033_source.html create mode 100644 doc/api-0.9.2/a00034_source.html create mode 100644 doc/api-0.9.2/a00035_source.html create mode 100644 doc/api-0.9.2/a00036_source.html create mode 100644 doc/api-0.9.2/a00037_source.html create mode 100644 doc/api-0.9.2/a00038_source.html create mode 100644 doc/api-0.9.2/a00039_source.html create mode 100644 doc/api-0.9.2/a00040_source.html create mode 100644 doc/api-0.9.2/a00041_source.html create mode 100644 doc/api-0.9.2/a00042_source.html create mode 100644 doc/api-0.9.2/a00043_source.html create mode 100644 doc/api-0.9.2/a00044_source.html create mode 100644 doc/api-0.9.2/a00045_source.html create mode 100644 doc/api-0.9.2/a00046_source.html create mode 100644 doc/api-0.9.2/a00047_source.html create mode 100644 doc/api-0.9.2/a00048_source.html create mode 100644 doc/api-0.9.2/a00049_source.html create mode 100644 doc/api-0.9.2/a00050_source.html create mode 100644 doc/api-0.9.2/a00051_source.html create mode 100644 doc/api-0.9.2/a00052_source.html create mode 100644 doc/api-0.9.2/a00053_source.html create mode 100644 doc/api-0.9.2/a00054_source.html create mode 100644 doc/api-0.9.2/a00055_source.html create mode 100644 doc/api-0.9.2/a00056_source.html create mode 100644 doc/api-0.9.2/a00057_source.html create mode 100644 doc/api-0.9.2/a00058_source.html create mode 100644 doc/api-0.9.2/a00059_source.html create mode 100644 doc/api-0.9.2/a00060_source.html create mode 100644 doc/api-0.9.2/a00061_source.html create mode 100644 doc/api-0.9.2/a00062_source.html create mode 100644 doc/api-0.9.2/a00063_source.html create mode 100644 doc/api-0.9.2/a00064_source.html create mode 100644 doc/api-0.9.2/a00065_source.html create mode 100644 doc/api-0.9.2/a00066_source.html create mode 100644 doc/api-0.9.2/a00067_source.html create mode 100644 doc/api-0.9.2/a00068_source.html create mode 100644 doc/api-0.9.2/a00069_source.html create mode 100644 doc/api-0.9.2/a00070_source.html create mode 100644 doc/api-0.9.2/a00071_source.html create mode 100644 doc/api-0.9.2/a00072_source.html create mode 100644 doc/api-0.9.2/a00073_source.html create mode 100644 doc/api-0.9.2/a00074_source.html create mode 100644 doc/api-0.9.2/a00075_source.html create mode 100644 doc/api-0.9.2/a00076_source.html create mode 100644 doc/api-0.9.2/a00077_source.html create mode 100644 doc/api-0.9.2/a00078_source.html create mode 100644 doc/api-0.9.2/a00079_source.html create mode 100644 doc/api-0.9.2/a00080_source.html create mode 100644 doc/api-0.9.2/a00081_source.html create mode 100644 doc/api-0.9.2/a00082_source.html create mode 100644 doc/api-0.9.2/a00083_source.html create mode 100644 doc/api-0.9.2/a00084_source.html create mode 100644 doc/api-0.9.2/a00085_source.html create mode 100644 doc/api-0.9.2/a00086_source.html create mode 100644 doc/api-0.9.2/a00087_source.html create mode 100644 doc/api-0.9.2/a00088_source.html create mode 100644 doc/api-0.9.2/a00089_source.html create mode 100644 doc/api-0.9.2/a00090_source.html create mode 100644 doc/api-0.9.2/a00091_source.html create mode 100644 doc/api-0.9.2/a00092_source.html create mode 100644 doc/api-0.9.2/a00093_source.html create mode 100644 doc/api-0.9.2/a00094_source.html create mode 100644 doc/api-0.9.2/a00095_source.html create mode 100644 doc/api-0.9.2/a00096_source.html create mode 100644 doc/api-0.9.2/a00097_source.html create mode 100644 doc/api-0.9.2/a00098_source.html create mode 100644 doc/api-0.9.2/a00099_source.html create mode 100644 doc/api-0.9.2/a00100_source.html create mode 100644 doc/api-0.9.2/a00101_source.html create mode 100644 doc/api-0.9.2/a00102_source.html create mode 100644 doc/api-0.9.2/a00103_source.html create mode 100644 doc/api-0.9.2/a00104_source.html create mode 100644 doc/api-0.9.2/a00105_source.html create mode 100644 doc/api-0.9.2/a00106_source.html create mode 100644 doc/api-0.9.2/a00107_source.html create mode 100644 doc/api-0.9.2/a00108_source.html create mode 100644 doc/api-0.9.2/a00109_source.html create mode 100644 doc/api-0.9.2/a00110_source.html create mode 100644 doc/api-0.9.2/a00111_source.html create mode 100644 doc/api-0.9.2/a00112_source.html create mode 100644 doc/api-0.9.2/a00113_source.html create mode 100644 doc/api-0.9.2/a00114_source.html create mode 100644 doc/api-0.9.2/a00115_source.html create mode 100644 doc/api-0.9.2/a00116_source.html create mode 100644 doc/api-0.9.2/a00117_source.html create mode 100644 doc/api-0.9.2/a00118_source.html create mode 100644 doc/api-0.9.2/a00119_source.html create mode 100644 doc/api-0.9.2/a00120_source.html create mode 100644 doc/api-0.9.2/a00121_source.html create mode 100644 doc/api-0.9.2/a00122_source.html create mode 100644 doc/api-0.9.2/a00123_source.html create mode 100644 doc/api-0.9.2/a00124_source.html create mode 100644 doc/api-0.9.2/a00125_source.html create mode 100644 doc/api-0.9.2/a00126_source.html create mode 100644 doc/api-0.9.2/a00127_source.html create mode 100644 doc/api-0.9.2/a00128_source.html create mode 100644 doc/api-0.9.2/a00129_source.html create mode 100644 doc/api-0.9.2/a00130_source.html create mode 100644 doc/api-0.9.2/a00131_source.html create mode 100644 doc/api-0.9.2/a00132_source.html create mode 100644 doc/api-0.9.2/a00133_source.html create mode 100644 doc/api-0.9.2/a00134_source.html create mode 100644 doc/api-0.9.2/a00135_source.html create mode 100644 doc/api-0.9.2/a00136_source.html create mode 100644 doc/api-0.9.2/a00137_source.html create mode 100644 doc/api-0.9.2/a00138_source.html create mode 100644 doc/api-0.9.2/a00139_source.html create mode 100644 doc/api-0.9.2/a00140_source.html create mode 100644 doc/api-0.9.2/a00141_source.html create mode 100644 doc/api-0.9.2/a00142_source.html create mode 100644 doc/api-0.9.2/a00143.html create mode 100644 doc/api-0.9.2/a00144.html create mode 100644 doc/api-0.9.2/a00145.html create mode 100644 doc/api-0.9.2/a00147.html create mode 100644 doc/api-0.9.2/a00149.html create mode 100644 doc/api-0.9.2/a00150.html create mode 100644 doc/api-0.9.2/a00152.html create mode 100644 doc/api-0.9.2/a00153.html create mode 100644 doc/api-0.9.2/a00154.html create mode 100644 doc/api-0.9.2/a00155.html create mode 100644 doc/api-0.9.2/a00156.html create mode 100644 doc/api-0.9.2/a00158.html create mode 100644 doc/api-0.9.2/a00159.html create mode 100644 doc/api-0.9.2/a00160.html create mode 100644 doc/api-0.9.2/a00161.html create mode 100644 doc/api-0.9.2/a00162.html create mode 100644 doc/api-0.9.2/a00163.html create mode 100644 doc/api-0.9.2/a00164.html create mode 100644 doc/api-0.9.2/a00165.html create mode 100644 doc/api-0.9.2/a00166.html create mode 100644 doc/api-0.9.2/a00167.html create mode 100644 doc/api-0.9.2/a00168.html create mode 100644 doc/api-0.9.2/a00169.html create mode 100644 doc/api-0.9.2/a00170.html create mode 100644 doc/api-0.9.2/a00171.html create mode 100644 doc/api-0.9.2/a00172.html create mode 100644 doc/api-0.9.2/a00173.html create mode 100644 doc/api-0.9.2/a00174.html create mode 100644 doc/api-0.9.2/a00175.html create mode 100644 doc/api-0.9.2/a00176.html create mode 100644 doc/api-0.9.2/a00177.html create mode 100644 doc/api-0.9.2/a00178.html create mode 100644 doc/api-0.9.2/a00179.html create mode 100644 doc/api-0.9.2/a00180.html create mode 100644 doc/api-0.9.2/a00181.html create mode 100644 doc/api-0.9.2/a00182.html create mode 100644 doc/api-0.9.2/a00183.html create mode 100644 doc/api-0.9.2/a00184.html create mode 100644 doc/api-0.9.2/a00185.html create mode 100644 doc/api-0.9.2/a00186.html create mode 100644 doc/api-0.9.2/a00187.html create mode 100644 doc/api-0.9.2/a00188.html create mode 100644 doc/api-0.9.2/a00189.html create mode 100644 doc/api-0.9.2/a00190.html create mode 100644 doc/api-0.9.2/a00191.html create mode 100644 doc/api-0.9.2/a00192.html create mode 100644 doc/api-0.9.2/a00193.html create mode 100644 doc/api-0.9.2/a00194.html create mode 100644 doc/api-0.9.2/a00195.html create mode 100644 doc/api-0.9.2/a00196.html create mode 100644 doc/api-0.9.2/a00197.html create mode 100644 doc/api-0.9.2/a00198.html create mode 100644 doc/api-0.9.2/a00199.html create mode 100644 doc/api-0.9.2/a00200.html create mode 100644 doc/api-0.9.2/a00201.html create mode 100644 doc/api-0.9.2/a00202.html create mode 100644 doc/api-0.9.2/a00203.html create mode 100644 doc/api-0.9.2/a00204.html create mode 100644 doc/api-0.9.2/a00205.html create mode 100644 doc/api-0.9.2/a00206.html create mode 100644 doc/api-0.9.2/a00207.html create mode 100644 doc/api-0.9.2/a00208.html create mode 100644 doc/api-0.9.2/a00209.html create mode 100644 doc/api-0.9.2/a00210.html create mode 100644 doc/api-0.9.2/a00211.html create mode 100644 doc/api-0.9.2/a00212.html create mode 100644 doc/api-0.9.2/a00213.html create mode 100644 doc/api-0.9.2/a00214.html create mode 100644 doc/api-0.9.2/a00215.html create mode 100644 doc/api-0.9.2/a00216.html create mode 100644 doc/api-0.9.2/a00217.html create mode 100644 doc/api-0.9.2/a00218.html create mode 100644 doc/api-0.9.2/a00219.html create mode 100644 doc/api-0.9.2/a00220.html create mode 100644 doc/api-0.9.2/a00221.html create mode 100644 doc/api-0.9.2/a00222.html create mode 100644 doc/api-0.9.2/a00224.html create mode 100644 doc/api-0.9.2/a00225.html create mode 100644 doc/api-0.9.2/a00226.html create mode 100644 doc/api-0.9.2/a00227.html create mode 100644 doc/api-0.9.2/a00228.html create mode 100644 doc/api-0.9.2/a00229.html create mode 100644 doc/api-0.9.2/a00230.html create mode 100644 doc/api-0.9.2/a00232.html create mode 100644 doc/api-0.9.2/a00234.html create mode 100644 doc/api-0.9.2/a00235.html create mode 100644 doc/api-0.9.2/a00236.html create mode 100644 doc/api-0.9.2/a00237.html create mode 100644 doc/api-0.9.2/a00238.html create mode 100644 doc/api-0.9.2/a00239.html create mode 100644 doc/api-0.9.2/a00240.html create mode 100644 doc/api-0.9.2/a00241.html create mode 100644 doc/api-0.9.2/a00242.html create mode 100644 doc/api-0.9.2/a00243.html create mode 100644 doc/api-0.9.2/a00244.html create mode 100644 doc/api-0.9.2/a00245.html create mode 100644 doc/api-0.9.2/a00246.html create mode 100644 doc/api-0.9.2/a00247.html create mode 100644 doc/api-0.9.2/a00248.html create mode 100644 doc/api-0.9.2/a00249.html create mode 100644 doc/api-0.9.2/a00250.html create mode 100644 doc/api-0.9.2/a00251.html create mode 100644 doc/api-0.9.2/a00252.html create mode 100644 doc/api-0.9.2/a00253.html create mode 100644 doc/api-0.9.2/a00254.html create mode 100644 doc/api-0.9.2/a00255.html create mode 100644 doc/api-0.9.2/a00256.html create mode 100644 doc/api-0.9.2/a00257.html create mode 100644 doc/api-0.9.2/a00258.html create mode 100644 doc/api-0.9.2/a00259.html create mode 100644 doc/api-0.9.2/a00260.html create mode 100644 doc/api-0.9.2/a00261.html create mode 100644 doc/api-0.9.2/a00262.html create mode 100644 doc/api-0.9.2/a00263.html create mode 100644 doc/api-0.9.2/a00264.html create mode 100644 doc/api-0.9.2/a00265.html create mode 100644 doc/api-0.9.2/a00266.html create mode 100644 doc/api-0.9.2/a00267.html create mode 100644 doc/api-0.9.2/a00268.html create mode 100644 doc/api-0.9.2/a00269.html create mode 100644 doc/api-0.9.2/a00270.html create mode 100644 doc/api-0.9.2/a00271.html create mode 100644 doc/api-0.9.2/a00272.html create mode 100644 doc/api-0.9.2/a00273.html create mode 100644 doc/api-0.9.2/a00274.html create mode 100644 doc/api-0.9.2/a00275.html create mode 100644 doc/api-0.9.2/a00276.html create mode 100644 doc/api-0.9.2/a00277.html create mode 100644 doc/api-0.9.2/a00278.html create mode 100644 doc/api-0.9.2/a00279.html create mode 100644 doc/api-0.9.2/a00280.html create mode 100644 doc/api-0.9.2/a00281.html create mode 100644 doc/api-0.9.2/a00282.html create mode 100644 doc/api-0.9.2/a00283.html create mode 100644 doc/api-0.9.2/a00284.html create mode 100644 doc/api-0.9.2/a00285.html create mode 100644 doc/api-0.9.2/a00286.html create mode 100644 doc/api-0.9.2/a00287.html create mode 100644 doc/api-0.9.2/a00288.html create mode 100644 doc/api-0.9.2/a00289.html create mode 100644 doc/api-0.9.2/a00290.html create mode 100644 doc/api-0.9.2/a00291.html create mode 100644 doc/api-0.9.2/a00292.html create mode 100644 doc/api-0.9.2/a00293.html create mode 100644 doc/api-0.9.2/a00294.html create mode 100644 doc/api-0.9.2/a00295.html create mode 100644 doc/api-0.9.2/a00296.html create mode 100644 doc/api-0.9.2/a00297.html create mode 100644 doc/api-0.9.2/a00298.html create mode 100644 doc/api-0.9.2/a00299.html create mode 100644 doc/api-0.9.2/a00300.html create mode 100644 doc/api-0.9.2/a00301.html create mode 100644 doc/api-0.9.2/a00302.html create mode 100644 doc/api-0.9.2/a00303.html create mode 100644 doc/api-0.9.2/a00304.html create mode 100644 doc/api-0.9.2/a00305.html create mode 100644 doc/api-0.9.2/a00306.html create mode 100644 doc/api-0.9.2/a00307.html create mode 100644 doc/api-0.9.2/a00308.html create mode 100644 doc/api-0.9.2/a00310.html create mode 100644 doc/api-0.9.2/a00311.html create mode 100644 doc/api-0.9.2/a00312.html create mode 100644 doc/api-0.9.2/a00313.html create mode 100644 doc/api-0.9.2/a00314.html create mode 100644 doc/api-0.9.2/a00315.html create mode 100644 doc/api-0.9.2/a00316.html create mode 100644 doc/api-0.9.2/a00317.html create mode 100644 doc/api-0.9.2/a00318.html create mode 100644 doc/api-0.9.2/a00319.html create mode 100644 doc/api-0.9.2/a00320.html create mode 100644 doc/api-0.9.2/a00321.html create mode 100644 doc/api-0.9.2/a00322.html create mode 100644 doc/api-0.9.2/a00323.html create mode 100644 doc/api-0.9.2/annotated.html create mode 100644 doc/api-0.9.2/bc_s.png create mode 100644 doc/api-0.9.2/classes.html create mode 100644 doc/api-0.9.2/closed.png create mode 100644 doc/api-0.9.2/doxygen.css create mode 100644 doc/api-0.9.2/doxygen.png create mode 100644 doc/api-0.9.2/files.html create mode 100644 doc/api-0.9.2/functions.html create mode 100644 doc/api-0.9.2/functions_func.html create mode 100644 doc/api-0.9.2/index.html create mode 100644 doc/api-0.9.2/jquery.js create mode 100644 doc/api-0.9.2/logo-mini.png create mode 100644 doc/api-0.9.2/modules.html create mode 100644 doc/api-0.9.2/namespacemembers.html create mode 100644 doc/api-0.9.2/namespacemembers_0x62.html create mode 100644 doc/api-0.9.2/namespacemembers_0x63.html create mode 100644 doc/api-0.9.2/namespacemembers_0x64.html create mode 100644 doc/api-0.9.2/namespacemembers_0x65.html create mode 100644 doc/api-0.9.2/namespacemembers_0x66.html create mode 100644 doc/api-0.9.2/namespacemembers_0x67.html create mode 100644 doc/api-0.9.2/namespacemembers_0x68.html create mode 100644 doc/api-0.9.2/namespacemembers_0x69.html create mode 100644 doc/api-0.9.2/namespacemembers_0x6c.html create mode 100644 doc/api-0.9.2/namespacemembers_0x6d.html create mode 100644 doc/api-0.9.2/namespacemembers_0x6e.html create mode 100644 doc/api-0.9.2/namespacemembers_0x6f.html create mode 100644 doc/api-0.9.2/namespacemembers_0x70.html create mode 100644 doc/api-0.9.2/namespacemembers_0x71.html create mode 100644 doc/api-0.9.2/namespacemembers_0x72.html create mode 100644 doc/api-0.9.2/namespacemembers_0x73.html create mode 100644 doc/api-0.9.2/namespacemembers_0x74.html create mode 100644 doc/api-0.9.2/namespacemembers_0x75.html create mode 100644 doc/api-0.9.2/namespacemembers_0x76.html create mode 100644 doc/api-0.9.2/namespacemembers_0x77.html create mode 100644 doc/api-0.9.2/namespacemembers_0x79.html create mode 100644 doc/api-0.9.2/namespacemembers_func.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x62.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x63.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x64.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x65.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x66.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x67.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x68.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x69.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x6c.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x6d.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x6e.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x6f.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x70.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x71.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x72.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x73.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x74.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x75.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x76.html create mode 100644 doc/api-0.9.2/namespacemembers_func_0x79.html create mode 100644 doc/api-0.9.2/namespacemembers_type.html create mode 100644 doc/api-0.9.2/namespacemembers_type_0x63.html create mode 100644 doc/api-0.9.2/namespacemembers_type_0x64.html create mode 100644 doc/api-0.9.2/namespacemembers_type_0x66.html create mode 100644 doc/api-0.9.2/namespacemembers_type_0x68.html create mode 100644 doc/api-0.9.2/namespacemembers_type_0x69.html create mode 100644 doc/api-0.9.2/namespacemembers_type_0x6c.html create mode 100644 doc/api-0.9.2/namespacemembers_type_0x6d.html create mode 100644 doc/api-0.9.2/namespacemembers_type_0x71.html create mode 100644 doc/api-0.9.2/namespacemembers_type_0x73.html create mode 100644 doc/api-0.9.2/namespacemembers_type_0x75.html create mode 100644 doc/api-0.9.2/namespacemembers_type_0x76.html create mode 100644 doc/api-0.9.2/namespacemembers_type_0x77.html create mode 100644 doc/api-0.9.2/namespaces.html create mode 100644 doc/api-0.9.2/nav_f.png create mode 100644 doc/api-0.9.2/nav_h.png create mode 100644 doc/api-0.9.2/open.png create mode 100644 doc/api-0.9.2/tab_a.png create mode 100644 doc/api-0.9.2/tab_b.png create mode 100644 doc/api-0.9.2/tab_h.png create mode 100644 doc/api-0.9.2/tab_s.png create mode 100644 doc/api-0.9.2/tabs.css diff --git a/doc/api-0.9.2/a00001.html b/doc/api-0.9.2/a00001.html new file mode 100644 index 00000000..d8fed4de --- /dev/null +++ b/doc/api-0.9.2/a00001.html @@ -0,0 +1,122 @@ + + + + +Getting Started + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      +
      Getting Started
      +
      +
      +

      +Compiler Setup

      +

      GLM is a header only library, there is nothing to build to use it which increases its cross platform capabilities.

      +

      To use GLM, a programmer only has to include <glm/glm.hpp>. This provides all the GLSL features implemented by GLM.

      +

      GLM makes heavy usages of C++ templates. This design may significantly increase the compile time for files that use GLM. Precompiled headers are recommended to avoid this issue.

      +

      +Use Sample of GLM

      +
      #include <glm/glm.hpp>
      +
      +int foo()
      +{
      +        glm::vec4 Position = glm::vec4(glm::vec3(0.0), 1.0);
      +        glm::mat4 Model = glm::mat4(1.0);
      +        Model[4] = glm::vec4(1.0, 1.0, 0.0, 1.0);
      +        glm::vec4 Transformed = Model * Position;
      +        return 0;
      +}
      +

      +Library Structure

      +

      GLM is arranged in 2 distinct segments. These are the GLM features based on the GLSL specification and a set of extensions. Some extensions are stable and backward compatible (GTC Extensions (Stable) GTC VIRTREV Extensions VIRTREV) but some are experimental (GTX Extensions (Experimental) GTX) which means that they are not guarantee to be backward compatible from version to version.

      +

      The GLM represents only what GLSL's core provides in terms of types and functions (to the best of GLM's ability to replicate them). All that is needed to use the core is to include <glm/glm.hpp>.

      +

      GTC extensions are functions and types that add onto the core. These are considered reasonably stable, with their APIs not changing much between versions. Each core extension is included with a separated header file include. All of the core extensions are in the "glm/gtc" directory.

      +

      GTX extensions are functions and types that add onto the core. Unlike GTC extensions, their APIs are not considered particularly stable, which is why they are marked "experimental". Like GTC extensions, each experimental extension is included with a separate header file.

      +

      All the extensions can be included at once by default by including <glm/ext.hpp> but this is not recommanded as it will reduce compilation speed for many unused features.

      +

      All of GLM is defined as direct children of the glm namespace, including extensions.

      +

      To use a particular extension, simply include the extension header file. All extension features are added to the glm namespace automatically.

      +
      #include <glm/glm.hpp>
      +#include <glm/gtc/matrix_transform.hpp>
      + 
      +int foo()
      +{
      +        glm::vec4 Position = glm::vec4(glm::vec3(0.0f), 1.0f);
      +        glm::mat4 Model = glm::translate(
      +                glm::mat4(1.0f), glm::vec3(1.0f));
      +        glm::vec4 Transformed = Model * Position;
      +        return 0;
      +}
      +

      +Dependencies

      +

      When <glm/glm.hpp> is included, GLM provides all the GLSL features it implements in C++.

      +

      When an extension is included, all the dependent extensions will be included as well. All the extensions depend on GLM core. (<glm/glm.hpp>)

      +

      There is no dependence with external libraries or external headers like gl.h, gl3.h, glu.h or windows.h. However, if <boost/static_assert.hpp> is included, Boost static assert will be used throughout GLM code to provide compiled time errors.

      +

      +OpenGL Interoperability

      +

      It is often useful to get a vector type as an array of its base type. For example, the OpenGL function glUniform3fv() takes an array instead of 3 individual values. If the vector and matrix types were simple arrays, then one could pass them to the function like so: glUniform3fv(loc, 1, glm::vec3(0)). However, this is not the case; the vector and matrix types are C++ classes, not arrays.

      +

      Instead, GLM provides a mechanism to get the content of a vector or matrix as an array pointer. The GLM_GTC_type_ptr: Memory layout access. extension provides this ability.

      +
      #include <glm/glm.hpp>
      +#include <glm/gtc/type_ptr.hpp>
      + 
      +void BindUniforms(GLuint uniVec, GLuint uniMat)
      +{
      +        glm::vec4 v(0.0f);
      +        glm::mat4 m(1.0f);
      +        ...
      +        glUniform3fv(uniVec, 1, glm::value_ptr(v));
      +        glUniformMatrix4fv(uniMat, 1, GL_FALSE, glm::value_ptr(m));
      +}
      +

      Notice that all matrix types are column-major rather than row-major. Hence the need to pass GL_FALSE to glUniformMatrix4fv.

      +

      Alternatively, the first element of the type can be dereferenced.

      +
      #include <glm/glm.hpp>
      + 
      +void BindUniforms(GLuint uniVec, GLuint uniMat)
      +{
      +        glm::vec4 v(0.0f);
      +        glm::mat4 m(1.0f);
      +        ...
      +        glUniform3fv(uniVec, 1, glm::value_ptr(&v[0]));
      +        glUniformMatrix4fv(uniMat, 1, GL_FALSE, &m[0][0]);
      +}
      +

      This method requires dereferencing the very first basic type of the object, not merely the first element. The [] operator on the matrix type returns a column vector; one must then access the first element of that column vector to get a pointer to the basic type.

      +
      Note:
      This operation could have been built into the base vector and matrix types and performed with a cast operator. However, this has some downsides. Implicit casts can cause unexpected and unwanted behavior.
      +

      +GLM for CUDA

      +

      GLM 0.9.2 introduces CUDA compiler support allowing programmer to use GLM inside a CUDA Kernel. To make GLM compatible with CUDA, GLM_FORCE_CUDA requires to be define before any inclusion of <glm/glm.hpp>.

      +
      #define GLM_FORCE_CUDA
      +#include <glm/glm.hpp>
      +
      + + + diff --git a/doc/api-0.9.2/a00002.html b/doc/api-0.9.2/a00002.html new file mode 100644 index 00000000..d5f56d93 --- /dev/null +++ b/doc/api-0.9.2/a00002.html @@ -0,0 +1,120 @@ + + + + +Advanced Usage + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      +
      Advanced Usage
      +
      +
      +

      +Swizzle Operators

      +

      A common feature of shader languages like GLSL is components swizzling. This involves being able to select which components of a vector are used and in what order. For example, "variable.x", "variable.xxy", "variable.zxyy" are examples of swizzling.

      +
      vec4 A;
      +vec2 B;
      +...
      +B.yx = A.wy;
      +B = A.xx;
      +

      This functionally turns out to be really complicated to implement in C++ using the exact GLSL conventions. GLM provides 2 implementions this feature.

      +

      +Macro implementation

      +

      The first implementation follows the GLSL convensions accurately. It uses macros to achieve this, which might generates name conflicts with system headers or third party libraries. Therefore, it is disabled by default. To enable this implementation, GLM_SWIZZLE must be defined before any inclusion of <glm/glm.hpp>.

      +
      #define GLM_SWIZZLE 
      +#include <glm/glm.hpp>
      +

      This implementation can be partially enabled by defining GLM_SWIZZLE_XYZW, GLM_SWIZZLE_RGBA or GLM_SWIZZLE_STQP. Each macro only enable a set of swizzling operators. For example we can only enable x,y,z,w and s,t,q,p operators using:

      +
      #define GLM_SWIZZLE_XYZW 
      +#define GLM_SWIZZLE_STQP
      +#include <glm/glm.hpp>
      +

      +Extension implementation

      +

      A safer way to do swizzling is to use the <glm/gtc/swizzle.hpp> extension. This extension provides the GLSL functionality, but uses a different syntax for it. Moreover, the swizzle extension also provides dynamic swizzling.

      +

      Static swizzling is resovled at compile-time. The swizzle mask ".xzyy" is as fixed as the type of a particular variable. Dynamic swizzling is resolved at runtime via function calls. Dynamic swizzling is more flexible, since one can choose the swizzle mask at runtime, but it runs slower. This performance issue is enhanced when SIMD instructions are used.

      +
      #include <glm/glm.hpp>
      +#include <glm/gtc/swizzle.hpp>
      + 
      +void foo()
      +{
      +        glm::vec4 ColorRGBA(1.0f, 0.5f, 0.0f, 1.0f);
      +        ...
      +        // Dynamic swizzling (at run time, more flexible)
      +        // l-value:
      +        glm::vec4 ColorBGRA1 = 
      +        glm::swizzle(ColorRGBA, glm::B, glm::G, glm::R, glm::A);
      +        // r-value:
      +        glm::swizzle(ColorRGBA, glm::B, glm::G, glm::R, glm::A) = ColorRGBA;
      +         
      +        // Static swizzling (at build time, faster)
      +        // l-value:
      +        glm::vec4 ColorBGRA2 = 
      +        glm::swizzle<glm::B, glm::G, glm::R, glm::A>(ColorRGBA);
      +        // r-value:
      +        glm::swizzle<glm::B, glm::G, glm::R, glm::A>(ColorRGBA) = ColorRGBA;
      +}
      +

      +Notification System

      +

      GLM includes a notification system which can display some information at build time:

      +
        +
      • Compiler
      • +
      • Build model: 32bits or 64 bits
      • +
      • C++ version
      • +
      • Architecture: x86, SSE, AVX, etc.
      • +
      • Included extensions
      • +
      • etc.
      • +
      +

      This system is disable by default. To enable this system, define GLM_MESSAGES before any inclusion of <glm/glm.hpp>.

      +
      #define GLM_MESSAGES
      +#include <glm/glm.hpp>
      +

      +Force Inline

      +

      GLM's functions are defined in headers, so they are defined with C++'s "inline" delcaration. This does not require the compiler to inline them, however. To force the compiler to inline the function, using whatever capabilities that the compiler provides to do so, GLM_FORCE_INLINE can be defined before any inclusion of <glm/glm.hpp>.

      +
      #define GLM_FORCE_INLINE 
      +#include <glm/glm.hpp>
      +

      +SIMD support

      +

      GLM provides some SIMD optimizations based on compiler intrinsics. These optimizations will be automatically utilized based on the build environment. These optimizations are mainly available through the extensions GLM_GTX_simd_vec4: SIMD vec4 type and functions and GLM_GTX_simd_mat4: SIMD mat4 type and functions.

      +

      A programmer can restrict or force instruction sets used for these optimizations using GLM_FORCE_SSE2 or GLM_FORCE_AVX.

      +

      A programmer can discard the use of intrinsics by defining GLM_FORCE_PURE before any inclusion of <glm/glm.hpp>. If GLM_FORCE_PURE is defined, then including a SIMD extension will generate a build error.

      +
      #define GLM_FORCE_PURE
      +#include <glm/glm.hpp>
      +

      +Compatibility

      +

      Compilers have some language extensions that GLM will automatically take advantage of them when they are enabled. GLM_FORCE_CXX98 can switch off these extensions, forcing GLM to operate on pure C++98.

      +
      #define GLM_FORCE_CXX98 
      +#include <glm/glm.hpp>
      +
      + + + diff --git a/doc/api-0.9.2/a00003.html b/doc/api-0.9.2/a00003.html new file mode 100644 index 00000000..a6d0b5b9 --- /dev/null +++ b/doc/api-0.9.2/a00003.html @@ -0,0 +1,83 @@ + + + + +Deprecated function replacements + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      +
      Deprecated function replacements
      +
      +
      +

      The OpenGL 3.0 specification deprecated some features, and most of these have been removed from the OpenGL 3.1 specfication and beyond. GLM provides some replacement functions. Many of these functions come from the GLM_GTC_matrix_transform: Matrix transform functions. extension.

      +

      +OpenGL function replacements

      +
      +
      glRotate[fd]
      +
      glm::rotate
      +
      glScale[fd]
      +
      glm::scale
      +
      glTranslate[fd]
      +
      glm::translate
      +
      glLoadIdentity
      +
      The default constructor of all matrix types creates an identity matrix.
      +
      glMultMatrix[fd]
      +
      Per the GLSL specification, the multiplication operator is overloaded for all matrix types. Multiplying two matrices together will perform matrix multiplication.
      +
      glLoadTransposeMatrix[fd]
      +
      glm::transpose
      +
      glMultTransposeMatrix
      +
      Combine the last two.
      +
      glFrustum
      +
      glm::frustum
      +
      glOrtho
      +
      glm::ortho
      +
      gluLookAt
      +
      glm::lookAt
      +
      +

      +GLU function replacements

      +
      +
      gluOrtho2D
      +
      glm::ortho
      +
      gluPerspective
      +
      glm::perspective
      +
      gluProject
      +
      glm::project
      +
      gluUnProject
      +
      glm::unProject
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00004.html b/doc/api-0.9.2/a00004.html new file mode 100644 index 00000000..27cadac8 --- /dev/null +++ b/doc/api-0.9.2/a00004.html @@ -0,0 +1,54 @@ + + + + +Differences between GLSL and GLM core + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      +
      Differences between GLSL and GLM core
      +
      +
      +

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

      +
        +
      • +

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

        +

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

        +

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

        +
      • +
      +
      + + + diff --git a/doc/api-0.9.2/a00005.html b/doc/api-0.9.2/a00005.html new file mode 100644 index 00000000..8767e687 --- /dev/null +++ b/doc/api-0.9.2/a00005.html @@ -0,0 +1,77 @@ + + + + +FAQ + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      +
      FAQ
      +
      +
      +

      +Why does GLM follow GLSL specification and conventions?

      +

      Following GLSL conventions is a really strict policy of GLM. GLM has been designed according to the idea that everyone writes their own math library with their own conventions. The idea is that brilliant developers (the OpenGL ARB) worked together and agreed to make GLSL. Following GLSL conventions is a way to find consensus. Moreover, basically when a developer knows GLSL, he knows GLM.

      +

      +Does GLM run GLSL programs?

      +

      No, GLM is a C++ implementation of a subset of GLSL.

      +

      +Does a GLSL compiler build GLM codes?

      +

      No, this is not what GLM intends to do!

      +

      +Should I use GTX extensions?

      +

      GTX Extensions (Experimental) are experimental. In GLM this means that these extensions might change from version to version without restriction. In practice, it doesn't really change except time to time. GTC extensions are stabled, tested and perfectly reliable in time. Many GTX extensions extend GTC extensions and provide a way to explore features and implementations before becoming stable by a promotion as GTC extensions. This is similar to how OpenGL extensions can be EXT or ARB extensions before becoming core functionality.

      +

      In short, if you use a GTX extension, the API is much more likely to change from version to version than if you don't. But you should not feel too uncomfortable about using them.

      +

      +Where can I ask my questions?

      +

      A good place is the OpenGL Toolkits forum on OpenGL.org: http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&Board=10&page=1

      +

      +Where can I find the documentation of extensions?

      +

      The Doxygen generated documentation includes a complete list of all extensions available. Explore this documentation to get a complete view of all GLM capabilities! http://glm.g-truc.net/html/index.html

      +

      +Should I use 'using namespace glm;'?

      +

      This is unwise. Chances are that if 'using namespace glm;' is called, name collisions will happen. GLSL names for functions are fairly generic, so it is entirely likely that there is another function called, for example, sqrt .

      +

      For frequent use of particular types, they can be brough into the global namespace with a 'using' declaration like this:

      +

      /code using glm::mat4;

      +

      mat4 someVariable(3.0f); /endcode

      +

      +Is GLM fast?

      +

      GLM is mainly designed to be convenient; that's why it is written against GLSL specification.

      +

      The 80-20 rule suggests that 80% of a program's performance comes from 20% of its code. Therefore, one should first identify which 20% of the code is impacting the performance.

      +

      In general, if one identifies certain math code to be a performance bottleneck, the only way to solve this is to write specialized code for those particular math needs. So no canned library solution would be suitable.

      +

      That being said, GLM can provides some descent performances alternatives based on approximations or SIMD instructions.

      +
      + + + diff --git a/doc/api-0.9.2/a00006.html b/doc/api-0.9.2/a00006.html new file mode 100644 index 00000000..be6000a0 --- /dev/null +++ b/doc/api-0.9.2/a00006.html @@ -0,0 +1,184 @@ + + + + +Code Samples + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      +
      Code Samples
      +
      +
      +

      This series of samples only shows various GLM functionality.

      +

      +Compute a Triangle's Normal

      +
      #include <glm/glm.hpp> // vec3 normalize cross
      + 
      +glm::vec3 computeNormal(
      +glm::vec3 const & a, 
      +glm::vec3 const & b,
      +glm::vec3 const & c)
      +{
      +        return glm::normalize(glm::cross(c - a, b - a));
      +}
      +

      A potentially faster, but less accurate alternative:

      +
      #include <glm/glm.hpp> // vec3 cross
      +#include <glm/gtx/fast_square_root.hpp> // fastNormalize
      + 
      +glm::vec3 computeNormal(
      +        glm::vec3 const & a, 
      +        glm::vec3 const & b,
      +        glm::vec3 const & c)
      +{
      +        return glm::fastNormalize(glm::cross(c - a, b - a));
      +}
      +

      +Matrix Transform

      +
      #include <glm/glm.hpp> //vec3, vec4, ivec4, mat4
      +#include <glm/gtc/matrix_transform.hpp> //translate, rotate, scale, perspective 
      +#include <glm/gtc/type_ptr.hpp> //value_ptr
      + 
      +void setUniformMVP(
      +                GLuint Location, 
      +                glm::vec3 const & Translate, 
      +                glm::vec3 const & Rotate)
      +{
      +        glm::mat4 Projection =
      +        glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.f);
      +        glm::mat4 ViewTranslate = glm::translate(
      +        glm::mat4(1.0f),
      +        Translate);
      +        glm::mat4 ViewRotateX = glm::rotate(
      +        ViewTranslate,
      +        Rotate.y, glm::vec3(-1.0f, 0.0f, 0.0f));
      +        glm::mat4 View = glm::rotate(
      +        ViewRotateX,
      +        Rotate.x, glm::vec3(0.0f, 1.0f, 0.0f));
      +        glm::mat4 Model = glm::scale(
      +        glm::mat4(1.0f),
      +        glm::vec3(0.5f));
      +        glm::mat4 MVP = Projection * View * Model;
      +        glUniformMatrix4fv(
      +        Location, 1, GL_FALSE, glm::value_ptr(MVP));
      +}
      +

      +Vector Types

      +
      #include <glm/glm.hpp> //vec2
      +#include <glm/gtc/type_precision.hpp> //hvec2, i8vec2, i32vec2
      +std::size_t const VertexCount = 4;
      + 
      +// Float quad geometry
      +std::size_t const PositionSizeF32 = VertexCount * sizeof(glm::vec2);
      +glm::vec2 const PositionDataF32[VertexCount] =
      +{
      +        glm::vec2(-1.0f,-1.0f),
      +        glm::vec2( 1.0f,-1.0f),
      +        glm::vec2( 1.0f, 1.0f),
      +        glm::vec2(-1.0f, 1.0f)
      +};
      +
      +// Half-float quad geometry
      +std::size_t const PositionSizeF16 = VertexCount * sizeof(glm::hvec2);
      +glm::hvec2 const PositionDataF16[VertexCount] =
      +{
      +        glm::hvec2(-1.0f, -1.0f),
      +        glm::hvec2( 1.0f, -1.0f),
      +        glm::hvec2( 1.0f, 1.0f),
      +        glm::hvec2(-1.0f, 1.0f)
      +};
      +
      +// 8 bits signed integer quad geometry
      +std::size_t const PositionSizeI8 = VertexCount * sizeof(glm::i8vec2);
      +glm::i8vec2 const PositionDataI8[VertexCount] =
      +{
      +        glm::i8vec2(-1,-1),
      +        glm::i8vec2( 1,-1),
      +        glm::i8vec2( 1, 1),
      +        glm::i8vec2(-1, 1)
      +};
      +
      +// 32 bits signed integer quad geometry
      +std::size_t const PositionSizeI32 = VertexCount * sizeof(glm::i32vec2);
      +glm::i32vec2 const PositionDataI32[VertexCount] =
      +{
      +        glm::i32vec2 (-1,-1),
      +        glm::i32vec2 ( 1,-1),
      +        glm::i32vec2 ( 1, 1),
      +        glm::i32vec2 (-1, 1)
      +};
      +

      +Lighting

      +
      #include <glm/glm.hpp> // vec3 normalize reflect dot pow
      +#include <glm/gtx/random.hpp> // vecRand3
      + 
      +// vecRand3, generate a random and equiprobable normalized vec3
      + 
      +glm::vec3 lighting(
      +        intersection const & Intersection,
      +        material const & Material,
      +        light const & Light,
      +        glm::vec3 const & View)
      +{
      +        glm::vec3 Color = glm::vec3(0.0f);
      +        glm::vec3 LightVertor = glm::normalize(
      +        Light.position() - Intersection.globalPosition() +
      +        glm::vecRand3(0.0f, Light.inaccuracy());
      +        
      +        if(!shadow(
      +                Intersection.globalPosition(),
      +                Light.position(),
      +                LightVertor))
      +        {
      +                float Diffuse = glm::dot(Intersection.normal(), LightVector);
      +                if(Diffuse <= 0.0f)
      +                return Color;
      +                if(Material.isDiffuse())
      +                Color += Light.color() * Material.diffuse() * Diffuse;
      +                
      +        if(Material.isSpecular())
      +        {
      +                glm::vec3 Reflect = glm::reflect(
      +                -LightVector,
      +                Intersection.normal());
      +                float Dot = glm::dot(Reflect, View);
      +                float Base = Dot > 0.0f ? Dot : 0.0f;
      +                float Specular = glm::pow(Base, Material.exponent());
      +                Color += Material.specular() * Specular;
      +        }
      +        return Color;
      +}
      +
      + + + diff --git a/doc/api-0.9.2/a00007.html b/doc/api-0.9.2/a00007.html new file mode 100644 index 00000000..058b1c4c --- /dev/null +++ b/doc/api-0.9.2/a00007.html @@ -0,0 +1,57 @@ + + + + +Known Issues + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      +
      Known Issues
      +
      +
      +

      +not Function

      +

      The GLSL keyword not is also a keyword in C++. To prevent name collisions, the GLSL not function has been implemented with the name not_.

      +

      +Half Based Types

      +

      GLM supports half float number types through the extension GLM_GTC_half_float. This extension provides the types half, hvec*, hmat*x* and hquat*.

      +

      Unfortunately, C++ 98 specification doesn’t support anonymous unions which limit hvec* vector components access to x, y, z and w.

      +

      However, Visual C++ does support anonymous unions if the language extensions are enabled (/Za to disable them). In this case GLM will automatically enables the support of all component names (x,y,z,w ; r,g,b,a ; s,t,p,q).

      +

      To uniformalize the component access across types, GLM provides the define GLM_FORCE_ONLY_XYZW which will generates errors if component accesses are done using r,g,b,a or s,t,p,q.

      +
      #define GLM_FORCE_ONLY_XYZW 
      +#include <glm/glm.hpp>
      +
      + + + diff --git a/doc/api-0.9.2/a00008.html b/doc/api-0.9.2/a00008.html new file mode 100644 index 00000000..78e92249 --- /dev/null +++ b/doc/api-0.9.2/a00008.html @@ -0,0 +1,55 @@ + + + + +References + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      +
      References
      +
      + + + + diff --git a/doc/api-0.9.2/a00009.html b/doc/api-0.9.2/a00009.html new file mode 100644 index 00000000..27e11739 --- /dev/null +++ b/doc/api-0.9.2/a00009.html @@ -0,0 +1,65 @@ + + + + +thalf Class Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      + +
      + +

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

      + +

      List of all members.

      + +
      +

      Detailed Description

      +

      16-bit floating point type.

      + +

      Definition at line 25 of file type_half.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00010.html b/doc/api-0.9.2/a00010.html new file mode 100644 index 00000000..c7149d4c --- /dev/null +++ b/doc/api-0.9.2/a00010.html @@ -0,0 +1,68 @@ + + + + +tmat2x2< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat2x2< T > Struct Template Reference
      +
      +
      + +

      Template for 2 * 2 matrix of floating-point numbers. + More...

      + +

      List of all members.

      + +
      +

      Detailed Description

      +

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

      + +

      Template for 2 * 2 matrix of floating-point numbers.

      + +

      Definition at line 35 of file type_mat2x2.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00011.html b/doc/api-0.9.2/a00011.html new file mode 100644 index 00000000..d58d16e7 --- /dev/null +++ b/doc/api-0.9.2/a00011.html @@ -0,0 +1,68 @@ + + + + +tmat2x3< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat2x3< T > Struct Template Reference
      +
      +
      + +

      Template for 2 columns and 3 rows matrix of floating-point numbers. + More...

      + +

      List of all members.

      + +
      +

      Detailed Description

      +

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

      + +

      Template for 2 columns and 3 rows matrix of floating-point numbers.

      + +

      Definition at line 35 of file type_mat2x3.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00012.html b/doc/api-0.9.2/a00012.html new file mode 100644 index 00000000..388dff26 --- /dev/null +++ b/doc/api-0.9.2/a00012.html @@ -0,0 +1,68 @@ + + + + +tmat2x4< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat2x4< T > Struct Template Reference
      +
      +
      + +

      Template for 2 columns and 4 rows matrix of floating-point numbers. + More...

      + +

      List of all members.

      + +
      +

      Detailed Description

      +

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

      + +

      Template for 2 columns and 4 rows matrix of floating-point numbers.

      + +

      Definition at line 35 of file type_mat2x4.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00013.html b/doc/api-0.9.2/a00013.html new file mode 100644 index 00000000..6c8c12c2 --- /dev/null +++ b/doc/api-0.9.2/a00013.html @@ -0,0 +1,68 @@ + + + + +tmat3x2< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat3x2< T > Struct Template Reference
      +
      +
      + +

      Template for 3 columns and 2 rows matrix of floating-point numbers. + More...

      + +

      List of all members.

      + +
      +

      Detailed Description

      +

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

      + +

      Template for 3 columns and 2 rows matrix of floating-point numbers.

      + +

      Definition at line 35 of file type_mat3x2.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00014.html b/doc/api-0.9.2/a00014.html new file mode 100644 index 00000000..f0dcc202 --- /dev/null +++ b/doc/api-0.9.2/a00014.html @@ -0,0 +1,68 @@ + + + + +tmat3x3< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat3x3< T > Struct Template Reference
      +
      +
      + +

      Template for 3 * 3 matrix of floating-point numbers. + More...

      + +

      List of all members.

      + +
      +

      Detailed Description

      +

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

      + +

      Template for 3 * 3 matrix of floating-point numbers.

      + +

      Definition at line 35 of file type_mat3x3.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00015.html b/doc/api-0.9.2/a00015.html new file mode 100644 index 00000000..71f76ce6 --- /dev/null +++ b/doc/api-0.9.2/a00015.html @@ -0,0 +1,68 @@ + + + + +tmat3x4< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat3x4< T > Struct Template Reference
      +
      +
      + +

      Template for 3 columns and 4 rows matrix of floating-point numbers. + More...

      + +

      List of all members.

      + +
      +

      Detailed Description

      +

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

      + +

      Template for 3 columns and 4 rows matrix of floating-point numbers.

      + +

      Definition at line 35 of file type_mat3x4.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00016.html b/doc/api-0.9.2/a00016.html new file mode 100644 index 00000000..6cf024e1 --- /dev/null +++ b/doc/api-0.9.2/a00016.html @@ -0,0 +1,68 @@ + + + + +tmat4x2< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat4x2< T > Struct Template Reference
      +
      +
      + +

      Template for 4 columns and 2 rows matrix of floating-point numbers. + More...

      + +

      List of all members.

      + +
      +

      Detailed Description

      +

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

      + +

      Template for 4 columns and 2 rows matrix of floating-point numbers.

      + +

      Definition at line 35 of file type_mat4x2.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00017.html b/doc/api-0.9.2/a00017.html new file mode 100644 index 00000000..bc1a2127 --- /dev/null +++ b/doc/api-0.9.2/a00017.html @@ -0,0 +1,68 @@ + + + + +tmat4x3< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat4x3< T > Struct Template Reference
      +
      +
      + +

      Template for 4 columns and 3 rows matrix of floating-point numbers. + More...

      + +

      List of all members.

      + +
      +

      Detailed Description

      +

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

      + +

      Template for 4 columns and 3 rows matrix of floating-point numbers.

      + +

      Definition at line 35 of file type_mat4x3.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00018.html b/doc/api-0.9.2/a00018.html new file mode 100644 index 00000000..6dcb6755 --- /dev/null +++ b/doc/api-0.9.2/a00018.html @@ -0,0 +1,68 @@ + + + + +tmat4x4< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat4x4< T > Struct Template Reference
      +
      +
      + +

      Template for 4 * 4 matrix of floating-point numbers. + More...

      + +

      List of all members.

      + +
      +

      Detailed Description

      +

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

      + +

      Template for 4 * 4 matrix of floating-point numbers.

      + +

      Definition at line 35 of file type_mat4x4.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00019.html b/doc/api-0.9.2/a00019.html new file mode 100644 index 00000000..8aedbf4a --- /dev/null +++ b/doc/api-0.9.2/a00019.html @@ -0,0 +1,75 @@ + + + + +tquat< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      + +
      + +

      Template for quaternion. + More...

      + +

      List of all members.

      + + + +

      +Public Member Functions

      tquat (tvec3< T > const &eulerAngles)
      +

      Detailed Description

      +

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

      + +

      Template for quaternion.

      +

      From GLM_GTC_quaternion extension.

      + +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00020.html b/doc/api-0.9.2/a00020.html new file mode 100644 index 00000000..45abbde3 --- /dev/null +++ b/doc/api-0.9.2/a00020.html @@ -0,0 +1,87 @@ + + + + +tvec2< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      tvec2< T > Struct Template Reference
      +
      +
      + +

      The basic 2D vector type. + More...

      + +

      List of all members.

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

      +Public Member Functions

      +template<typename U >
      GLM_FUNC_DECL tvec2 (U const &x)
      +template<typename U >
      GLM_FUNC_DECL tvec2 (tvec4< U > const &v)
      +template<typename U >
      GLM_FUNC_DECL tvec2 (tvec3< U > const &v)
      +template<typename U >
      GLM_FUNC_DECL tvec2 (tvec2< U > const &v)
      +template<typename U , typename V >
      GLM_FUNC_DECL tvec2 (U const &x, V const &y)
      +

      Detailed Description

      +

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

      + +

      The basic 2D vector type.

      + +

      Definition at line 31 of file type_vec2.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00021.html b/doc/api-0.9.2/a00021.html new file mode 100644 index 00000000..3021ad59 --- /dev/null +++ b/doc/api-0.9.2/a00021.html @@ -0,0 +1,90 @@ + + + + +tvec3< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      tvec3< T > Struct Template Reference
      +
      +
      + +

      Basic 3D vector type. + More...

      + +

      List of all members.

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

      +Public Member Functions

      +template<typename U >
      GLM_FUNC_DECL tvec3 (tvec3< U > const &v)
      +template<typename U >
      GLM_FUNC_DECL tvec3 (tvec4< U > const &v)
      +template<typename A , typename B >
      GLM_FUNC_DECL tvec3 (A const &s, tvec2< B > const &v)
      +template<typename A , typename B >
      GLM_FUNC_DECL tvec3 (tvec2< A > const &v, B const &s)
      +template<typename U , typename V , typename W >
      GLM_FUNC_DECL tvec3 (U const &x, V const &y, W const &z)
      +template<typename U >
      GLM_FUNC_DECL tvec3 (U const &x)
      +

      Detailed Description

      +

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

      + +

      Basic 3D vector type.

      + +

      Definition at line 31 of file type_vec3.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00022.html b/doc/api-0.9.2/a00022.html new file mode 100644 index 00000000..46aa9c96 --- /dev/null +++ b/doc/api-0.9.2/a00022.html @@ -0,0 +1,123 @@ + + + + +tvec4< T > Struct Template Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      tvec4< T > Struct Template Reference
      +
      +
      + +

      Basic 4D vector type. + More...

      + +

      List of all members.

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

      +Public Member Functions

      +template<typename A , typename B , typename C >
      GLM_FUNC_DECL tvec4 (A const &s1, tref2< B > const &v, C const &s2)
      +template<typename A , typename B >
      GLM_FUNC_DECL tvec4 (tref3< A > const &v, B const &s)
      +template<typename U >
      GLM_FUNC_DECL tvec4 (U const &x)
      +template<typename A , typename B >
      GLM_FUNC_DECL tvec4 (tref2< A > const &v1, tref2< B > const &v2)
      +template<typename A , typename B >
      GLM_FUNC_DECL tvec4 (tref2< A > const &v1, tvec2< B > const &v2)
      +template<typename A , typename B , typename C >
      GLM_FUNC_DECL tvec4 (tvec2< A > const &v, B const &s1, C const &s2)
      +template<typename A , typename B , typename C >
      GLM_FUNC_DECL tvec4 (A const &s1, B const &s2, tref2< C > const &v)
      +template<typename A , typename B , typename C , typename D >
      GLM_FUNC_DECL tvec4 (A const &x, B const &y, C const &z, D const &w)
      +template<typename A , typename B , typename C >
      GLM_FUNC_DECL tvec4 (A const &s1, tvec2< B > const &v, C const &s2)
      +template<typename A , typename B , typename C >
      GLM_FUNC_DECL tvec4 (A const &s1, B const &s2, tvec2< C > const &v)
      +template<typename U >
      GLM_FUNC_DECL tvec4 (tvec4< U > const &v)
      +template<typename A , typename B >
      GLM_FUNC_DECL tvec4 (tvec2< A > const &v1, tvec2< B > const &v2)
      +template<typename A , typename B >
      GLM_FUNC_DECL tvec4 (tvec3< A > const &v, B const &s)
      +template<typename A , typename B , typename C >
      GLM_FUNC_DECL tvec4 (tref2< A > const &v, B const &s1, C const &s2)
      +template<typename A , typename B >
      GLM_FUNC_DECL tvec4 (A const &s, tvec3< B > const &v)
      +template<typename A , typename B >
      GLM_FUNC_DECL tvec4 (tvec2< A > const &v1, tref2< B > const &v2)
      +template<typename A , typename B >
      GLM_FUNC_DECL tvec4 (A const &s, tref3< B > const &v)
      +

      Detailed Description

      +

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

      + +

      Basic 4D vector type.

      + +

      Definition at line 31 of file type_vec4.hpp.

      +
      + + + diff --git a/doc/api-0.9.2/a00023_source.html b/doc/api-0.9.2/a00023_source.html new file mode 100644 index 00000000..80f04c95 --- /dev/null +++ b/doc/api-0.9.2/a00023_source.html @@ -0,0 +1,392 @@ + + + + +_detail.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      _detail.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-07-24
      +00005 // Updated : 2008-08-31
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/_detail.hpp
      +00009 
      +00010 #ifndef glm_core_detail
      +00011 #define glm_core_detail
      +00012 
      +00013 #include "setup.hpp"
      +00014 #include <cassert>
      +00015 
      +00016 namespace glm{
      +00017 namespace detail
      +00018 {
      +00019         class thalf;
      +00020 
      +00021 #if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
      +00022         typedef int64_t                                                         sint64;
      +00023         typedef uint64_t                                                        uint64;
      +00024 #elif(GLM_COMPILER & GLM_COMPILER_VC)
      +00025         typedef signed __int64                                          sint64;
      +00026         typedef unsigned __int64                                        uint64;
      +00027 #elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG))
      +00028         __extension__ typedef signed long long          sint64;
      +00029         __extension__ typedef unsigned long long        uint64;
      +00030 #elif(GLM_COMPILER & GLM_COMPILER_BC)
      +00031         typedef Int64                                                           sint64;
      +00032         typedef Uint64                                                          uint64;
      +00033 #else//unknown compiler
      +00034         typedef signed long     long                                    sint64;
      +00035         typedef unsigned long long                                      uint64;
      +00036 #endif//GLM_COMPILER
      +00037 
      +00038         template<bool C>
      +00039         struct If
      +00040         {
      +00041                 template<typename F, typename T>
      +00042                 static GLM_FUNC_QUALIFIER T apply(F functor, const T& val)
      +00043                 {
      +00044                         return functor(val);
      +00045                 }
      +00046         };
      +00047 
      +00048         template<>
      +00049         struct If<false>
      +00050         {
      +00051                 template<typename F, typename T>
      +00052                 static GLM_FUNC_QUALIFIER T apply(F, const T& val)
      +00053                 {
      +00054                         return val;
      +00055                 }
      +00056         };
      +00057 
      +00058         //template <typename T>
      +00059         //struct traits
      +00060         //{
      +00061         //      static const bool is_signed = false;
      +00062         //      static const bool is_float = false;
      +00063         //      static const bool is_vector = false;
      +00064         //      static const bool is_matrix = false;
      +00065         //      static const bool is_genType = false;
      +00066         //      static const bool is_genIType = false;
      +00067         //      static const bool is_genUType = false;
      +00068         //};
      +00069 
      +00070         //template <>
      +00071         //struct traits<half>
      +00072         //{
      +00073         //      static const bool is_float = true;
      +00074         //      static const bool is_genType = true;
      +00075         //};
      +00076 
      +00077         //template <>
      +00078         //struct traits<float>
      +00079         //{
      +00080         //      static const bool is_float = true;
      +00081         //      static const bool is_genType = true;
      +00082         //};
      +00083 
      +00084         //template <>
      +00085         //struct traits<double>
      +00086         //{
      +00087         //      static const bool is_float = true;
      +00088         //      static const bool is_genType = true;
      +00089         //};
      +00090 
      +00091         //template <typename genType>
      +00092         //struct desc
      +00093         //{
      +00094         //      typedef genType                                                 type;
      +00095         //      typedef genType *                                               pointer;
      +00096         //      typedef genType const*                                  const_pointer;
      +00097         //      typedef genType const *const                    const_pointer_const;
      +00098         //      typedef genType *const                                  pointer_const;
      +00099         //      typedef genType &                                               reference;
      +00100         //      typedef genType const&                                  const_reference;
      +00101         //      typedef genType const&                                  param_type;
      +00102 
      +00103         //      typedef typename genType::value_type    value_type;
      +00104         //      typedef typename genType::size_type             size_type;
      +00105         //      static const typename size_type                 value_size;
      +00106         //};
      +00107 
      +00108         //template <typename genType>
      +00109         //const typename desc<genType>::size_type desc<genType>::value_size = genType::value_size();
      +00110 
      +00111         union uif32
      +00112         {
      +00113                 GLM_FUNC_QUALIFIER uif32() :
      +00114                         i(0)
      +00115                 {}
      +00116 
      +00117                 GLM_FUNC_QUALIFIER uif32(float f) :
      +00118                         f(f)
      +00119                 {}
      +00120 
      +00121                 GLM_FUNC_QUALIFIER uif32(unsigned int i) :
      +00122                         i(i)
      +00123                 {}
      +00124 
      +00125                 float f;
      +00126                 unsigned int i;
      +00127         };
      +00128 
      +00129         union uif64
      +00130         {
      +00131                 GLM_FUNC_QUALIFIER uif64() :
      +00132                         i(0)
      +00133                 {}
      +00134 
      +00135                 GLM_FUNC_QUALIFIER uif64(double f) :
      +00136                         f(f)
      +00137                 {}
      +00138 
      +00139                 GLM_FUNC_QUALIFIER uif64(uint64 i) :
      +00140                         i(i)
      +00141                 {}
      +00142 
      +00143                 double f;
      +00144                 uint64 i;
      +00145         };
      +00146 
      +00147         typedef uif32 uif;
      +00148 
      +00150         // int
      +00151 
      +00152         template <typename T>
      +00153         struct is_int
      +00154         {
      +00155                 enum is_int_enum
      +00156                 {
      +00157                         _YES = 0,
      +00158                         _NO = 1
      +00159                 };
      +00160         };
      +00161 
      +00162 #define GLM_DETAIL_IS_INT(T)    \
      +00163         template <>                                     \
      +00164         struct is_int<T>                        \
      +00165         {                                                       \
      +00166                 enum is_int_enum                \
      +00167                 {                                               \
      +00168                         _YES = 1,                       \
      +00169                         _NO = 0                         \
      +00170                 };                                              \
      +00171         }
      +00172 
      +00174         // uint
      +00175 
      +00176         template <typename T>
      +00177         struct is_uint
      +00178         {
      +00179                 enum is_uint_enum
      +00180                 {
      +00181                         _YES = 0,
      +00182                         _NO = 1
      +00183                 };
      +00184         };
      +00185 
      +00186 #define GLM_DETAIL_IS_UINT(T)   \
      +00187         template <>                                     \
      +00188         struct is_uint<T>                       \
      +00189         {                                                       \
      +00190                 enum is_uint_enum               \
      +00191                 {                                               \
      +00192                         _YES = 1,                       \
      +00193                         _NO = 0                         \
      +00194                 };                                              \
      +00195         }
      +00196 
      +00197         //GLM_DETAIL_IS_UINT(unsigned long long)
      +00198 
      +00200         // float
      +00201 
      +00202         template <typename T>
      +00203         struct is_float
      +00204         {
      +00205                 enum is_float_enum
      +00206                 {
      +00207                         _YES = 0,
      +00208                         _NO = 1
      +00209                 };
      +00210         };
      +00211 
      +00212 #define GLM_DETAIL_IS_FLOAT(T)  \
      +00213         template <>                                     \
      +00214         struct is_float<T>                      \
      +00215         {                                                       \
      +00216                 enum is_float_enum              \
      +00217                 {                                               \
      +00218                         _YES = 1,                       \
      +00219                         _NO = 0                         \
      +00220                 };                                              \
      +00221         }
      +00222 
      +00224         // bool
      +00225 
      +00226         template <typename T>
      +00227         struct is_bool
      +00228         {
      +00229                 enum is_bool_enum
      +00230                 {
      +00231                         _YES = 0,
      +00232                         _NO = 1
      +00233                 };
      +00234         };
      +00235         
      +00236         template <>
      +00237         struct is_bool<bool>
      +00238         {
      +00239                 enum is_bool_enum
      +00240                 {
      +00241                         _YES = 1,
      +00242                         _NO = 0
      +00243                 };
      +00244         };
      +00245         
      +00247         // vector
      +00248 
      +00249         template <typename T>
      +00250         struct is_vector
      +00251         {
      +00252                 enum is_vector_enum
      +00253                 {
      +00254                         _YES = 0,
      +00255                         _NO = 1
      +00256                 };
      +00257         };
      +00258 
      +00259 #       define GLM_DETAIL_IS_VECTOR(TYPE) \
      +00260                 template <typename T> \
      +00261                 struct is_vector<TYPE<T> > \
      +00262                 { \
      +00263                         enum is_vector_enum \
      +00264                         { \
      +00265                                 _YES = 1, \
      +00266                                 _NO = 0 \
      +00267                         }; \
      +00268                 }
      +00269 
      +00271         // matrix
      +00272 
      +00273         template <typename T>
      +00274         struct is_matrix
      +00275         {
      +00276                 enum is_matrix_enum
      +00277                 {
      +00278                         _YES = 0,
      +00279                         _NO = 1
      +00280                 };
      +00281         };
      +00282 
      +00283 #define GLM_DETAIL_IS_MATRIX(T) \
      +00284         template <>                                     \
      +00285         struct is_matrix                        \
      +00286         {                                                       \
      +00287                 enum is_matrix_enum             \
      +00288                 {                                               \
      +00289                         _YES = 1,                       \
      +00290                         _NO = 0                         \
      +00291                 };                                              \
      +00292         }
      +00293 
      +00295         // type
      +00296 
      +00297         template <typename T>
      +00298         struct type
      +00299         {
      +00300                 enum type_enum
      +00301                 {
      +00302                         is_float = is_float<T>::_YES,
      +00303                         is_int = is_int<T>::_YES,
      +00304                         is_uint = is_uint<T>::_YES,
      +00305                         is_bool = is_bool<T>::_YES
      +00306                 };
      +00307         };
      +00308 
      +00310         // type
      +00311 
      +00312         typedef signed char                                                     int8;
      +00313         typedef signed short                                            int16;
      +00314         typedef signed int                                                      int32;
      +00315         typedef detail::sint64                                          int64;
      +00316 
      +00317         typedef unsigned char                                           uint8;
      +00318         typedef unsigned short                                          uint16;
      +00319         typedef unsigned int                                            uint32;
      +00320         typedef detail::uint64                                          uint64;
      +00321 
      +00322         typedef detail::thalf                                           float16;
      +00323         typedef float                                                           float32;
      +00324         typedef double                                                          float64;
      +00325 
      +00326 }//namespace detail
      +00327 }//namespace glm
      +00328 
      +00329 #if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2005))
      +00330 #       define GLM_DEPRECATED __declspec(deprecated)
      +00331 #       define GLM_ALIGN(x) __declspec(align(x)) 
      +00332 #       define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct 
      +00333 #       define GLM_RESTRICT __declspec(restrict)
      +00334 #       define GLM_RESTRICT_VAR __restrict
      +00335 #elif((GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC)) && (GLM_COMPILER >= GLM_COMPILER_GCC31))
      +00336 #       define GLM_DEPRECATED __attribute__((__deprecated__))
      +00337 #       define GLM_ALIGN(x) __attribute__((aligned(x)))
      +00338 #       define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))
      +00339 #       if(GLM_COMPILER >= GLM_COMPILER_GCC33)
      +00340 #               define GLM_RESTRICT __restrict__
      +00341 #               define GLM_RESTRICT_VAR __restrict__
      +00342 #       else
      +00343 #               define GLM_RESTRICT
      +00344 #               define GLM_RESTRICT_VAR
      +00345 #       endif
      +00346 #       define GLM_RESTRICT __restrict__
      +00347 #       define GLM_RESTRICT_VAR __restrict__
      +00348 #else
      +00349 #       define GLM_DEPRECATED
      +00350 #       define GLM_ALIGN
      +00351 #       define GLM_ALIGNED_STRUCT(x) 
      +00352 #       define GLM_RESTRICT
      +00353 #       define GLM_RESTRICT_VAR
      +00354 #endif//GLM_COMPILER
      +00355 
      +00356 #endif//glm_core_detail
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00024_source.html b/doc/api-0.9.2/a00024_source.html new file mode 100644 index 00000000..15da4f11 --- /dev/null +++ b/doc/api-0.9.2/a00024_source.html @@ -0,0 +1,60 @@ + + + + +_fixes.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      _fixes.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2011-02-21
      +00005 // Updated : 2011-02-21
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/_fixes.hpp
      +00009 
      +00011 #ifdef max
      +00012 #undef max
      +00013 #endif
      +00014 
      +00016 #ifdef min
      +00017 #undef min
      +00018 #endif
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00025_source.html b/doc/api-0.9.2/a00025_source.html new file mode 100644 index 00000000..8cfe83d9 --- /dev/null +++ b/doc/api-0.9.2/a00025_source.html @@ -0,0 +1,1129 @@ + + + + +_swizzle.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      _swizzle.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-04-20
      +00005 // Updated : 2008-08-22
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/_swizzle.hpp
      +00009 
      +00010 #ifndef glm_core_swizzle
      +00011 #define glm_core_swizzle
      +00012 
      +00013 namespace glm
      +00014 {
      +00015         enum comp
      +00016         {
      +00017                 X = 0,
      +00018                 R = 0,
      +00019                 S = 0,
      +00020                 Y = 1,
      +00021                 G = 1,
      +00022                 T = 1,
      +00023                 Z = 2,
      +00024                 B = 2,
      +00025                 P = 2,
      +00026                 W = 3,
      +00027                 A = 3,
      +00028                 Q = 3
      +00029         };
      +00030 }//namespace glm
      +00031 
      +00032 #if(defined(GLM_SWIZZLE_XYZW) || defined(GLM_SWIZZLE))
      +00033 
      +00034 #define xx swizzle(glm::X, glm::X)
      +00035 #define yx swizzle(glm::Y, glm::X)
      +00036 #define zx swizzle(glm::Z, glm::X)
      +00037 #define wx swizzle(glm::W, glm::X)
      +00038 #define xy swizzle(glm::X, glm::Y)
      +00039 #define yy swizzle(glm::Y, glm::Y)
      +00040 #define zy swizzle(glm::Z, glm::Y)
      +00041 #define wy swizzle(glm::W, glm::Y)
      +00042 #define xz swizzle(glm::X, glm::Z)
      +00043 #define yz swizzle(glm::Y, glm::Z)
      +00044 #define zz swizzle(glm::Z, glm::Z)
      +00045 #define wz swizzle(glm::W, glm::Z)
      +00046 #define xw swizzle(glm::X, glm::W)
      +00047 #define yw swizzle(glm::Y, glm::W)
      +00048 #define zw swizzle(glm::Z, glm::W)
      +00049 #define ww swizzle(glm::W, glm::W)
      +00050 
      +00051 #endif
      +00052 
      +00053 #if(defined(GLM_SWIZZLE_RGBA) || defined(GLM_SWIZZLE))
      +00054 
      +00055 #define rr swizzle(glm::X, glm::X)
      +00056 #define gr swizzle(glm::Y, glm::X)
      +00057 #define br swizzle(glm::Z, glm::X)
      +00058 #define ar swizzle(glm::W, glm::X)
      +00059 #define rg swizzle(glm::X, glm::Y)
      +00060 #define gg swizzle(glm::Y, glm::Y)
      +00061 #define bg swizzle(glm::Z, glm::Y)
      +00062 #define ag swizzle(glm::W, glm::Y)
      +00063 #define rb swizzle(glm::X, glm::Z)
      +00064 #define gb swizzle(glm::Y, glm::Z)
      +00065 #define bb swizzle(glm::Z, glm::Z)
      +00066 #define ab swizzle(glm::W, glm::Z)
      +00067 #define ra swizzle(glm::X, glm::W)
      +00068 #define ga swizzle(glm::Y, glm::W)
      +00069 #define ba swizzle(glm::Z, glm::W)
      +00070 #define aa swizzle(glm::W, glm::W)
      +00071 
      +00072 #endif
      +00073 
      +00074 #if(defined(GLM_FORCE_SWIZZLE_STPQ) || defined(GLM_SWIZZLE))
      +00075 
      +00076 #define ss swizzle(glm::X, glm::X)
      +00077 #define ts swizzle(glm::Y, glm::X)
      +00078 #define ps swizzle(glm::Z, glm::X)
      +00079 #define qs swizzle(glm::W, glm::X)
      +00080 #define st swizzle(glm::X, glm::Y)
      +00081 #define tt swizzle(glm::Y, glm::Y)
      +00082 #define pt swizzle(glm::Z, glm::Y)
      +00083 #define qt swizzle(glm::W, glm::Y)
      +00084 #define sp swizzle(glm::X, glm::Z)
      +00085 #define tp swizzle(glm::Y, glm::Z)
      +00086 #define pp swizzle(glm::Z, glm::Z)
      +00087 #define qp swizzle(glm::W, glm::Z)
      +00088 #define sq swizzle(glm::X, glm::W)
      +00089 #define tq swizzle(glm::Y, glm::W)
      +00090 #define pq swizzle(glm::Z, glm::W)
      +00091 #define qq swizzle(glm::W, glm::W)
      +00092 
      +00093 #endif
      +00094 
      +00095 #if(defined(GLM_SWIZZLE_XYZW) || defined(GLM_SWIZZLE))
      +00096 
      +00097 #define xxx swizzle(glm::X, glm::X, glm::X)
      +00098 #define yxx swizzle(glm::Y, glm::X, glm::X)
      +00099 #define zxx swizzle(glm::Z, glm::X, glm::X)
      +00100 #define wxx swizzle(glm::W, glm::X, glm::X)
      +00101 #define xyx swizzle(glm::X, glm::Y, glm::X)
      +00102 #define yyx swizzle(glm::Y, glm::Y, glm::X)
      +00103 #define zyx swizzle(glm::Z, glm::Y, glm::X)
      +00104 #define wyx swizzle(glm::W, glm::Y, glm::X)
      +00105 #define xzx swizzle(glm::X, glm::Z, glm::X)
      +00106 #define yzx swizzle(glm::Y, glm::Z, glm::X)
      +00107 #define zzx swizzle(glm::Z, glm::Z, glm::X)
      +00108 #define wzx swizzle(glm::W, glm::Z, glm::X)
      +00109 #define xwx swizzle(glm::X, glm::W, glm::X)
      +00110 #define ywx swizzle(glm::Y, glm::W, glm::X)
      +00111 #define zwx swizzle(glm::Z, glm::W, glm::X)
      +00112 #define wwx swizzle(glm::W, glm::W, glm::X)
      +00113 #define xxy swizzle(glm::X, glm::X, glm::Y)
      +00114 #define yxy swizzle(glm::Y, glm::X, glm::Y)
      +00115 #define zxy swizzle(glm::Z, glm::X, glm::Y)
      +00116 #define wxy swizzle(glm::W, glm::X, glm::Y)
      +00117 #define xyy swizzle(glm::X, glm::Y, glm::Y)
      +00118 #define yyy swizzle(glm::Y, glm::Y, glm::Y)
      +00119 #define zyy swizzle(glm::Z, glm::Y, glm::Y)
      +00120 #define wyy swizzle(glm::W, glm::Y, glm::Y)
      +00121 #define xzy swizzle(glm::X, glm::Z, glm::Y)
      +00122 #define yzy swizzle(glm::Y, glm::Z, glm::Y)
      +00123 #define zzy swizzle(glm::Z, glm::Z, glm::Y)
      +00124 #define wzy swizzle(glm::W, glm::Z, glm::Y)
      +00125 #define xwy swizzle(glm::X, glm::W, glm::Y)
      +00126 #define ywy swizzle(glm::Y, glm::W, glm::Y)
      +00127 #define zwy swizzle(glm::Z, glm::W, glm::Y)
      +00128 #define wwy swizzle(glm::W, glm::W, glm::Y)
      +00129 #define xxz swizzle(glm::X, glm::X, glm::Z)
      +00130 #define yxz swizzle(glm::Y, glm::X, glm::Z)
      +00131 #define zxz swizzle(glm::Z, glm::X, glm::Z)
      +00132 #define wxz swizzle(glm::W, glm::X, glm::Z)
      +00133 #define xyz swizzle(glm::X, glm::Y, glm::Z)
      +00134 #define yyz swizzle(glm::Y, glm::Y, glm::Z)
      +00135 #define zyz swizzle(glm::Z, glm::Y, glm::Z)
      +00136 #define wyz swizzle(glm::W, glm::Y, glm::Z)
      +00137 #define xzz swizzle(glm::X, glm::Z, glm::Z)
      +00138 #define yzz swizzle(glm::Y, glm::Z, glm::Z)
      +00139 #define zzz swizzle(glm::Z, glm::Z, glm::Z)
      +00140 #define wzz swizzle(glm::W, glm::Z, glm::Z)
      +00141 #define xwz swizzle(glm::X, glm::W, glm::Z)
      +00142 #define ywz swizzle(glm::Y, glm::W, glm::Z)
      +00143 #define zwz swizzle(glm::Z, glm::W, glm::Z)
      +00144 #define wwz swizzle(glm::W, glm::W, glm::Z)
      +00145 #define xxw swizzle(glm::X, glm::X, glm::W)
      +00146 #define yxw swizzle(glm::Y, glm::X, glm::W)
      +00147 #define zxw swizzle(glm::Z, glm::X, glm::W)
      +00148 #define wxw swizzle(glm::W, glm::X, glm::W)
      +00149 #define xyw swizzle(glm::X, glm::Y, glm::W)
      +00150 #define yyw swizzle(glm::Y, glm::Y, glm::W)
      +00151 #define zyw swizzle(glm::Z, glm::Y, glm::W)
      +00152 #define wyw swizzle(glm::W, glm::Y, glm::W)
      +00153 #define xzw swizzle(glm::X, glm::Z, glm::W)
      +00154 #define yzw swizzle(glm::Y, glm::Z, glm::W)
      +00155 #define zzw swizzle(glm::Z, glm::Z, glm::W)
      +00156 #define wzw swizzle(glm::W, glm::Z, glm::W)
      +00157 #define xww swizzle(glm::X, glm::W, glm::W)
      +00158 #define yww swizzle(glm::Y, glm::W, glm::W)
      +00159 #define zww swizzle(glm::Z, glm::W, glm::W)
      +00160 #define www swizzle(glm::W, glm::W, glm::W)
      +00161 
      +00162 #endif
      +00163 
      +00164 #if(defined(GLM_SWIZZLE_RGBA) || defined(GLM_SWIZZLE))
      +00165 
      +00166 #define rrr swizzle(glm::X, glm::X, glm::X)
      +00167 #define grr swizzle(glm::Y, glm::X, glm::X)
      +00168 #define brr swizzle(glm::Z, glm::X, glm::X)
      +00169 #define arr swizzle(glm::W, glm::X, glm::X)
      +00170 #define rgr swizzle(glm::X, glm::Y, glm::X)
      +00171 #define ggr swizzle(glm::Y, glm::Y, glm::X)
      +00172 #define bgr swizzle(glm::Z, glm::Y, glm::X)
      +00173 #define agr swizzle(glm::W, glm::Y, glm::X)
      +00174 #define rbr swizzle(glm::X, glm::Z, glm::X)
      +00175 #define gbr swizzle(glm::Y, glm::Z, glm::X)
      +00176 #define bbr swizzle(glm::Z, glm::Z, glm::X)
      +00177 #define abr swizzle(glm::W, glm::Z, glm::X)
      +00178 #define rar swizzle(glm::X, glm::W, glm::X)
      +00179 #define gar swizzle(glm::Y, glm::W, glm::X)
      +00180 #define bar swizzle(glm::Z, glm::W, glm::X)
      +00181 #define aar swizzle(glm::W, glm::W, glm::X)
      +00182 #define rrg swizzle(glm::X, glm::X, glm::Y)
      +00183 #define grg swizzle(glm::Y, glm::X, glm::Y)
      +00184 #define brg swizzle(glm::Z, glm::X, glm::Y)
      +00185 #define arg swizzle(glm::W, glm::X, glm::Y)
      +00186 #define rgg swizzle(glm::X, glm::Y, glm::Y)
      +00187 #define ggg swizzle(glm::Y, glm::Y, glm::Y)
      +00188 #define bgg swizzle(glm::Z, glm::Y, glm::Y)
      +00189 #define agg swizzle(glm::W, glm::Y, glm::Y)
      +00190 #define rbg swizzle(glm::X, glm::Z, glm::Y)
      +00191 #define gbg swizzle(glm::Y, glm::Z, glm::Y)
      +00192 #define bbg swizzle(glm::Z, glm::Z, glm::Y)
      +00193 #define abg swizzle(glm::W, glm::Z, glm::Y)
      +00194 #define rag swizzle(glm::X, glm::W, glm::Y)
      +00195 #define gag swizzle(glm::Y, glm::W, glm::Y)
      +00196 #define bag swizzle(glm::Z, glm::W, glm::Y)
      +00197 #define aag swizzle(glm::W, glm::W, glm::Y)
      +00198 #define rrb swizzle(glm::X, glm::X, glm::Z)
      +00199 #define grb swizzle(glm::Y, glm::X, glm::Z)
      +00200 #define brb swizzle(glm::Z, glm::X, glm::Z)
      +00201 #define arb swizzle(glm::W, glm::X, glm::Z)
      +00202 #define rgb swizzle(glm::X, glm::Y, glm::Z)
      +00203 #define ggb swizzle(glm::Y, glm::Y, glm::Z)
      +00204 #define bgb swizzle(glm::Z, glm::Y, glm::Z)
      +00205 #define agb swizzle(glm::W, glm::Y, glm::Z)
      +00206 #define rbb swizzle(glm::X, glm::Z, glm::Z)
      +00207 #define gbb swizzle(glm::Y, glm::Z, glm::Z)
      +00208 #define bbb swizzle(glm::Z, glm::Z, glm::Z)
      +00209 #define abb swizzle(glm::W, glm::Z, glm::Z)
      +00210 #define rab swizzle(glm::X, glm::W, glm::Z)
      +00211 #define gab swizzle(glm::Y, glm::W, glm::Z)
      +00212 #define bab swizzle(glm::Z, glm::W, glm::Z)
      +00213 #define aab swizzle(glm::W, glm::W, glm::Z)
      +00214 #define rra swizzle(glm::X, glm::X, glm::W)
      +00215 #define gra swizzle(glm::Y, glm::X, glm::W)
      +00216 #define bra swizzle(glm::Z, glm::X, glm::W)
      +00217 #define ara swizzle(glm::W, glm::X, glm::W)
      +00218 #define rga swizzle(glm::X, glm::Y, glm::W)
      +00219 #define gga swizzle(glm::Y, glm::Y, glm::W)
      +00220 #define bga swizzle(glm::Z, glm::Y, glm::W)
      +00221 #define aga swizzle(glm::W, glm::Y, glm::W)
      +00222 #define rba swizzle(glm::X, glm::Z, glm::W)
      +00223 #define gba swizzle(glm::Y, glm::Z, glm::W)
      +00224 #define bba swizzle(glm::Z, glm::Z, glm::W)
      +00225 #define aba swizzle(glm::W, glm::Z, glm::W)
      +00226 #define raa swizzle(glm::X, glm::W, glm::W)
      +00227 #define gaa swizzle(glm::Y, glm::W, glm::W)
      +00228 #define baa swizzle(glm::Z, glm::W, glm::W)
      +00229 #define aaa swizzle(glm::W, glm::W, glm::W)
      +00230 
      +00231 #endif
      +00232 
      +00233 #if(defined(GLM_FORCE_SWIZZLE_STPQ) || defined(GLM_SWIZZLE))
      +00234 
      +00235 #define sss swizzle(glm::X, glm::X, glm::X)
      +00236 #define tss swizzle(glm::Y, glm::X, glm::X)
      +00237 #define pss swizzle(glm::Z, glm::X, glm::X)
      +00238 #define qss swizzle(glm::W, glm::X, glm::X)
      +00239 #define sts swizzle(glm::X, glm::Y, glm::X)
      +00240 #define tts swizzle(glm::Y, glm::Y, glm::X)
      +00241 #define pts swizzle(glm::Z, glm::Y, glm::X)
      +00242 #define qts swizzle(glm::W, glm::Y, glm::X)
      +00243 #define sps swizzle(glm::X, glm::Z, glm::X)
      +00244 #define tps swizzle(glm::Y, glm::Z, glm::X)
      +00245 #define pps swizzle(glm::Z, glm::Z, glm::X)
      +00246 #define qps swizzle(glm::W, glm::Z, glm::X)
      +00247 #define sqs swizzle(glm::X, glm::W, glm::X)
      +00248 #define tqs swizzle(glm::Y, glm::W, glm::X)
      +00249 #define pqs swizzle(glm::Z, glm::W, glm::X)
      +00250 #define qqs swizzle(glm::W, glm::W, glm::X)
      +00251 #define sst swizzle(glm::X, glm::X, glm::Y)
      +00252 #define tst swizzle(glm::Y, glm::X, glm::Y)
      +00253 #define pst swizzle(glm::Z, glm::X, glm::Y)
      +00254 #define qst swizzle(glm::W, glm::X, glm::Y)
      +00255 #define stt swizzle(glm::X, glm::Y, glm::Y)
      +00256 #define ttt swizzle(glm::Y, glm::Y, glm::Y)
      +00257 #define ptt swizzle(glm::Z, glm::Y, glm::Y)
      +00258 #define qtt swizzle(glm::W, glm::Y, glm::Y)
      +00259 #define spt swizzle(glm::X, glm::Z, glm::Y)
      +00260 #define tpt swizzle(glm::Y, glm::Z, glm::Y)
      +00261 #define ppt swizzle(glm::Z, glm::Z, glm::Y)
      +00262 #define qpt swizzle(glm::W, glm::Z, glm::Y)
      +00263 #define sqt swizzle(glm::X, glm::W, glm::Y)
      +00264 #define tqt swizzle(glm::Y, glm::W, glm::Y)
      +00265 #define pqt swizzle(glm::Z, glm::W, glm::Y)
      +00266 #define qqt swizzle(glm::W, glm::W, glm::Y)
      +00267 #define ssp swizzle(glm::X, glm::X, glm::Z)
      +00268 #define tsp swizzle(glm::Y, glm::X, glm::Z)
      +00269 #define psp swizzle(glm::Z, glm::X, glm::Z)
      +00270 #define qsp swizzle(glm::W, glm::X, glm::Z)
      +00271 #define stp swizzle(glm::X, glm::Y, glm::Z)
      +00272 #define ttp swizzle(glm::Y, glm::Y, glm::Z)
      +00273 #define ptp swizzle(glm::Z, glm::Y, glm::Z)
      +00274 #define qtp swizzle(glm::W, glm::Y, glm::Z)
      +00275 #define spp swizzle(glm::X, glm::Z, glm::Z)
      +00276 #define tpp swizzle(glm::Y, glm::Z, glm::Z)
      +00277 #define ppp swizzle(glm::Z, glm::Z, glm::Z)
      +00278 #define qpp swizzle(glm::W, glm::Z, glm::Z)
      +00279 #define sqp swizzle(glm::X, glm::W, glm::Z)
      +00280 #define tqp swizzle(glm::Y, glm::W, glm::Z)
      +00281 #define pqp swizzle(glm::Z, glm::W, glm::Z)
      +00282 #define qqp swizzle(glm::W, glm::W, glm::Z)
      +00283 #define ssq swizzle(glm::X, glm::X, glm::W)
      +00284 #define tsq swizzle(glm::Y, glm::X, glm::W)
      +00285 #define psq swizzle(glm::Z, glm::X, glm::W)
      +00286 #define qsq swizzle(glm::W, glm::X, glm::W)
      +00287 #define stq swizzle(glm::X, glm::Y, glm::W)
      +00288 #define ttq swizzle(glm::Y, glm::Y, glm::W)
      +00289 #define ptq swizzle(glm::Z, glm::Y, glm::W)
      +00290 #define qtq swizzle(glm::W, glm::Y, glm::W)
      +00291 #define spq swizzle(glm::X, glm::Z, glm::W)
      +00292 #define tpq swizzle(glm::Y, glm::Z, glm::W)
      +00293 #define ppq swizzle(glm::Z, glm::Z, glm::W)
      +00294 #define qpq swizzle(glm::W, glm::Z, glm::W)
      +00295 #define sqq swizzle(glm::X, glm::W, glm::W)
      +00296 #define tqq swizzle(glm::Y, glm::W, glm::W)
      +00297 #define pqq swizzle(glm::Z, glm::W, glm::W)
      +00298 #define qqq swizzle(glm::W, glm::W, glm::W)
      +00299 
      +00300 #endif
      +00301 
      +00302 #if(defined(GLM_SWIZZLE_XYZW) || defined(GLM_SWIZZLE))
      +00303 
      +00304 #define xxxx swizzle(glm::X, glm::X, glm::X, glm::X)
      +00305 #define yxxx swizzle(glm::Y, glm::X, glm::X, glm::X)
      +00306 #define zxxx swizzle(glm::Z, glm::X, glm::X, glm::X)
      +00307 #define wxxx swizzle(glm::W, glm::X, glm::X, glm::X)
      +00308 #define xyxx swizzle(glm::X, glm::Y, glm::X, glm::X)
      +00309 #define yyxx swizzle(glm::Y, glm::Y, glm::X, glm::X)
      +00310 #define zyxx swizzle(glm::Z, glm::Y, glm::X, glm::X)
      +00311 #define wyxx swizzle(glm::W, glm::Y, glm::X, glm::X)
      +00312 #define xzxx swizzle(glm::X, glm::Z, glm::X, glm::X)
      +00313 #define yzxx swizzle(glm::Y, glm::Z, glm::X, glm::X)
      +00314 #define zzxx swizzle(glm::Z, glm::Z, glm::X, glm::X)
      +00315 #define wzxx swizzle(glm::W, glm::Z, glm::X, glm::X)
      +00316 #define xwxx swizzle(glm::X, glm::W, glm::X, glm::X)
      +00317 #define ywxx swizzle(glm::Y, glm::W, glm::X, glm::X)
      +00318 #define zwxx swizzle(glm::Z, glm::W, glm::X, glm::X)
      +00319 #define wwxx swizzle(glm::W, glm::W, glm::X, glm::X)
      +00320 #define xxyx swizzle(glm::X, glm::X, glm::Y, glm::X)
      +00321 #define yxyx swizzle(glm::Y, glm::X, glm::Y, glm::X)
      +00322 #define zxyx swizzle(glm::Z, glm::X, glm::Y, glm::X)
      +00323 #define wxyx swizzle(glm::W, glm::X, glm::Y, glm::X)
      +00324 #define xyyx swizzle(glm::X, glm::Y, glm::Y, glm::X)
      +00325 #define yyyx swizzle(glm::Y, glm::Y, glm::Y, glm::X)
      +00326 #define zyyx swizzle(glm::Z, glm::Y, glm::Y, glm::X)
      +00327 #define wyyx swizzle(glm::W, glm::Y, glm::Y, glm::X)
      +00328 #define xzyx swizzle(glm::X, glm::Z, glm::Y, glm::X)
      +00329 #define yzyx swizzle(glm::Y, glm::Z, glm::Y, glm::X)
      +00330 #define zzyx swizzle(glm::Z, glm::Z, glm::Y, glm::X)
      +00331 #define wzyx swizzle(glm::W, glm::Z, glm::Y, glm::X)
      +00332 #define xwyx swizzle(glm::X, glm::W, glm::Y, glm::X)
      +00333 #define ywyx swizzle(glm::Y, glm::W, glm::Y, glm::X)
      +00334 #define zwyx swizzle(glm::Z, glm::W, glm::Y, glm::X)
      +00335 #define wwyx swizzle(glm::W, glm::W, glm::Y, glm::X)
      +00336 #define xxzx swizzle(glm::X, glm::X, glm::Z, glm::X)
      +00337 #define yxzx swizzle(glm::Y, glm::X, glm::Z, glm::X)
      +00338 #define zxzx swizzle(glm::Z, glm::X, glm::Z, glm::X)
      +00339 #define wxzx swizzle(glm::W, glm::X, glm::Z, glm::X)
      +00340 #define xyzx swizzle(glm::X, glm::Y, glm::Z, glm::X)
      +00341 #define yyzx swizzle(glm::Y, glm::Y, glm::Z, glm::X)
      +00342 #define zyzx swizzle(glm::Z, glm::Y, glm::Z, glm::X)
      +00343 #define wyzx swizzle(glm::W, glm::Y, glm::Z, glm::X)
      +00344 #define xzzx swizzle(glm::X, glm::Z, glm::Z, glm::X)
      +00345 #define yzzx swizzle(glm::Y, glm::Z, glm::Z, glm::X)
      +00346 #define zzzx swizzle(glm::Z, glm::Z, glm::Z, glm::X)
      +00347 #define wzzx swizzle(glm::W, glm::Z, glm::Z, glm::X)
      +00348 #define xwzx swizzle(glm::X, glm::W, glm::Z, glm::X)
      +00349 #define ywzx swizzle(glm::Y, glm::W, glm::Z, glm::X)
      +00350 #define zwzx swizzle(glm::Z, glm::W, glm::Z, glm::X)
      +00351 #define wwzx swizzle(glm::W, glm::W, glm::Z, glm::X)
      +00352 #define xxwx swizzle(glm::X, glm::X, glm::W, glm::X)
      +00353 #define yxwx swizzle(glm::Y, glm::X, glm::W, glm::X)
      +00354 #define zxwx swizzle(glm::Z, glm::X, glm::W, glm::X)
      +00355 #define wxwx swizzle(glm::W, glm::X, glm::W, glm::X)
      +00356 #define xywx swizzle(glm::X, glm::Y, glm::W, glm::X)
      +00357 #define yywx swizzle(glm::Y, glm::Y, glm::W, glm::X)
      +00358 #define zywx swizzle(glm::Z, glm::Y, glm::W, glm::X)
      +00359 #define wywx swizzle(glm::W, glm::Y, glm::W, glm::X)
      +00360 #define xzwx swizzle(glm::X, glm::Z, glm::W, glm::X)
      +00361 #define yzwx swizzle(glm::Y, glm::Z, glm::W, glm::X)
      +00362 #define zzwx swizzle(glm::Z, glm::Z, glm::W, glm::X)
      +00363 #define wzwx swizzle(glm::W, glm::Z, glm::W, glm::X)
      +00364 #define xwwx swizzle(glm::X, glm::W, glm::W, glm::X)
      +00365 #define ywwx swizzle(glm::Y, glm::W, glm::W, glm::X)
      +00366 #define zwwx swizzle(glm::Z, glm::W, glm::W, glm::X)
      +00367 #define wwwx swizzle(glm::W, glm::W, glm::W, glm::X)
      +00368 #define xxxy swizzle(glm::X, glm::X, glm::X, glm::Y)
      +00369 #define yxxy swizzle(glm::Y, glm::X, glm::X, glm::Y)
      +00370 #define zxxy swizzle(glm::Z, glm::X, glm::X, glm::Y)
      +00371 #define wxxy swizzle(glm::W, glm::X, glm::X, glm::Y)
      +00372 #define xyxy swizzle(glm::X, glm::Y, glm::X, glm::Y)
      +00373 #define yyxy swizzle(glm::Y, glm::Y, glm::X, glm::Y)
      +00374 #define zyxy swizzle(glm::Z, glm::Y, glm::X, glm::Y)
      +00375 #define wyxy swizzle(glm::W, glm::Y, glm::X, glm::Y)
      +00376 #define xzxy swizzle(glm::X, glm::Z, glm::X, glm::Y)
      +00377 #define yzxy swizzle(glm::Y, glm::Z, glm::X, glm::Y)
      +00378 #define zzxy swizzle(glm::Z, glm::Z, glm::X, glm::Y)
      +00379 #define wzxy swizzle(glm::W, glm::Z, glm::X, glm::Y)
      +00380 #define xwxy swizzle(glm::X, glm::W, glm::X, glm::Y)
      +00381 #define ywxy swizzle(glm::Y, glm::W, glm::X, glm::Y)
      +00382 #define zwxy swizzle(glm::Z, glm::W, glm::X, glm::Y)
      +00383 #define wwxy swizzle(glm::W, glm::W, glm::X, glm::Y)
      +00384 #define xxyy swizzle(glm::X, glm::X, glm::Y, glm::Y)
      +00385 #define yxyy swizzle(glm::Y, glm::X, glm::Y, glm::Y)
      +00386 #define zxyy swizzle(glm::Z, glm::X, glm::Y, glm::Y)
      +00387 #define wxyy swizzle(glm::W, glm::X, glm::Y, glm::Y)
      +00388 #define xyyy swizzle(glm::X, glm::Y, glm::Y, glm::Y)
      +00389 #define yyyy swizzle(glm::Y, glm::Y, glm::Y, glm::Y)
      +00390 #define zyyy swizzle(glm::Z, glm::Y, glm::Y, glm::Y)
      +00391 #define wyyy swizzle(glm::W, glm::Y, glm::Y, glm::Y)
      +00392 #define xzyy swizzle(glm::X, glm::Z, glm::Y, glm::Y)
      +00393 #define yzyy swizzle(glm::Y, glm::Z, glm::Y, glm::Y)
      +00394 #define zzyy swizzle(glm::Z, glm::Z, glm::Y, glm::Y)
      +00395 #define wzyy swizzle(glm::W, glm::Z, glm::Y, glm::Y)
      +00396 #define xwyy swizzle(glm::X, glm::W, glm::Y, glm::Y)
      +00397 #define ywyy swizzle(glm::Y, glm::W, glm::Y, glm::Y)
      +00398 #define zwyy swizzle(glm::Z, glm::W, glm::Y, glm::Y)
      +00399 #define wwyy swizzle(glm::W, glm::W, glm::Y, glm::Y)
      +00400 #define xxzy swizzle(glm::X, glm::X, glm::Z, glm::Y)
      +00401 #define yxzy swizzle(glm::Y, glm::X, glm::Z, glm::Y)
      +00402 #define zxzy swizzle(glm::Z, glm::X, glm::Z, glm::Y)
      +00403 #define wxzy swizzle(glm::W, glm::X, glm::Z, glm::Y)
      +00404 #define xyzy swizzle(glm::X, glm::Y, glm::Z, glm::Y)
      +00405 #define yyzy swizzle(glm::Y, glm::Y, glm::Z, glm::Y)
      +00406 #define zyzy swizzle(glm::Z, glm::Y, glm::Z, glm::Y)
      +00407 #define wyzy swizzle(glm::W, glm::Y, glm::Z, glm::Y)
      +00408 #define xzzy swizzle(glm::X, glm::Z, glm::Z, glm::Y)
      +00409 #define yzzy swizzle(glm::Y, glm::Z, glm::Z, glm::Y)
      +00410 #define zzzy swizzle(glm::Z, glm::Z, glm::Z, glm::Y)
      +00411 #define wzzy swizzle(glm::W, glm::Z, glm::Z, glm::Y)
      +00412 #define xwzy swizzle(glm::X, glm::W, glm::Z, glm::Y)
      +00413 #define ywzy swizzle(glm::Y, glm::W, glm::Z, glm::Y)
      +00414 #define zwzy swizzle(glm::Z, glm::W, glm::Z, glm::Y)
      +00415 #define wwzy swizzle(glm::W, glm::W, glm::Z, glm::Y)
      +00416 #define xxwy swizzle(glm::X, glm::X, glm::W, glm::Y)
      +00417 #define yxwy swizzle(glm::Y, glm::X, glm::W, glm::Y)
      +00418 #define zxwy swizzle(glm::Z, glm::X, glm::W, glm::Y)
      +00419 #define wxwy swizzle(glm::W, glm::X, glm::W, glm::Y)
      +00420 #define xywy swizzle(glm::X, glm::Y, glm::W, glm::Y)
      +00421 #define yywy swizzle(glm::Y, glm::Y, glm::W, glm::Y)
      +00422 #define zywy swizzle(glm::Z, glm::Y, glm::W, glm::Y)
      +00423 #define wywy swizzle(glm::W, glm::Y, glm::W, glm::Y)
      +00424 #define xzwy swizzle(glm::X, glm::Z, glm::W, glm::Y)
      +00425 #define yzwy swizzle(glm::Y, glm::Z, glm::W, glm::Y)
      +00426 #define zzwy swizzle(glm::Z, glm::Z, glm::W, glm::Y)
      +00427 #define wzwy swizzle(glm::W, glm::Z, glm::W, glm::Y)
      +00428 #define xwwy swizzle(glm::X, glm::W, glm::W, glm::Y)
      +00429 #define ywwy swizzle(glm::Y, glm::W, glm::W, glm::Y)
      +00430 #define zwwy swizzle(glm::Z, glm::W, glm::W, glm::Y)
      +00431 #define wwwy swizzle(glm::W, glm::W, glm::W, glm::Y)
      +00432 #define xxxz swizzle(glm::X, glm::X, glm::X, glm::Z)
      +00433 #define yxxz swizzle(glm::Y, glm::X, glm::X, glm::Z)
      +00434 #define zxxz swizzle(glm::Z, glm::X, glm::X, glm::Z)
      +00435 #define wxxz swizzle(glm::W, glm::X, glm::X, glm::Z)
      +00436 #define xyxz swizzle(glm::X, glm::Y, glm::X, glm::Z)
      +00437 #define yyxz swizzle(glm::Y, glm::Y, glm::X, glm::Z)
      +00438 #define zyxz swizzle(glm::Z, glm::Y, glm::X, glm::Z)
      +00439 #define wyxz swizzle(glm::W, glm::Y, glm::X, glm::Z)
      +00440 #define xzxz swizzle(glm::X, glm::Z, glm::X, glm::Z)
      +00441 #define yzxz swizzle(glm::Y, glm::Z, glm::X, glm::Z)
      +00442 #define zzxz swizzle(glm::Z, glm::Z, glm::X, glm::Z)
      +00443 #define wzxz swizzle(glm::W, glm::Z, glm::X, glm::Z)
      +00444 #define xwxz swizzle(glm::X, glm::W, glm::X, glm::Z)
      +00445 #define ywxz swizzle(glm::Y, glm::W, glm::X, glm::Z)
      +00446 #define zwxz swizzle(glm::Z, glm::W, glm::X, glm::Z)
      +00447 #define wwxz swizzle(glm::W, glm::W, glm::X, glm::Z)
      +00448 #define xxyz swizzle(glm::X, glm::X, glm::Y, glm::Z)
      +00449 #define yxyz swizzle(glm::Y, glm::X, glm::Y, glm::Z)
      +00450 #define zxyz swizzle(glm::Z, glm::X, glm::Y, glm::Z)
      +00451 #define wxyz swizzle(glm::W, glm::X, glm::Y, glm::Z)
      +00452 #define xyyz swizzle(glm::X, glm::Y, glm::Y, glm::Z)
      +00453 #define yyyz swizzle(glm::Y, glm::Y, glm::Y, glm::Z)
      +00454 #define zyyz swizzle(glm::Z, glm::Y, glm::Y, glm::Z)
      +00455 #define wyyz swizzle(glm::W, glm::Y, glm::Y, glm::Z)
      +00456 #define xzyz swizzle(glm::X, glm::Z, glm::Y, glm::Z)
      +00457 #define yzyz swizzle(glm::Y, glm::Z, glm::Y, glm::Z)
      +00458 #define zzyz swizzle(glm::Z, glm::Z, glm::Y, glm::Z)
      +00459 #define wzyz swizzle(glm::W, glm::Z, glm::Y, glm::Z)
      +00460 #define xwyz swizzle(glm::X, glm::W, glm::Y, glm::Z)
      +00461 #define ywyz swizzle(glm::Y, glm::W, glm::Y, glm::Z)
      +00462 #define zwyz swizzle(glm::Z, glm::W, glm::Y, glm::Z)
      +00463 #define wwyz swizzle(glm::W, glm::W, glm::Y, glm::Z)
      +00464 #define xxzz swizzle(glm::X, glm::X, glm::Z, glm::Z)
      +00465 #define yxzz swizzle(glm::Y, glm::X, glm::Z, glm::Z)
      +00466 #define zxzz swizzle(glm::Z, glm::X, glm::Z, glm::Z)
      +00467 #define wxzz swizzle(glm::W, glm::X, glm::Z, glm::Z)
      +00468 #define xyzz swizzle(glm::X, glm::Y, glm::Z, glm::Z)
      +00469 #define yyzz swizzle(glm::Y, glm::Y, glm::Z, glm::Z)
      +00470 #define zyzz swizzle(glm::Z, glm::Y, glm::Z, glm::Z)
      +00471 #define wyzz swizzle(glm::W, glm::Y, glm::Z, glm::Z)
      +00472 #define xzzz swizzle(glm::X, glm::Z, glm::Z, glm::Z)
      +00473 #define yzzz swizzle(glm::Y, glm::Z, glm::Z, glm::Z)
      +00474 #define zzzz swizzle(glm::Z, glm::Z, glm::Z, glm::Z)
      +00475 #define wzzz swizzle(glm::W, glm::Z, glm::Z, glm::Z)
      +00476 #define xwzz swizzle(glm::X, glm::W, glm::Z, glm::Z)
      +00477 #define ywzz swizzle(glm::Y, glm::W, glm::Z, glm::Z)
      +00478 #define zwzz swizzle(glm::Z, glm::W, glm::Z, glm::Z)
      +00479 #define wwzz swizzle(glm::W, glm::W, glm::Z, glm::Z)
      +00480 #define xxwz swizzle(glm::X, glm::X, glm::W, glm::Z)
      +00481 #define yxwz swizzle(glm::Y, glm::X, glm::W, glm::Z)
      +00482 #define zxwz swizzle(glm::Z, glm::X, glm::W, glm::Z)
      +00483 #define wxwz swizzle(glm::W, glm::X, glm::W, glm::Z)
      +00484 #define xywz swizzle(glm::X, glm::Y, glm::W, glm::Z)
      +00485 #define yywz swizzle(glm::Y, glm::Y, glm::W, glm::Z)
      +00486 #define zywz swizzle(glm::Z, glm::Y, glm::W, glm::Z)
      +00487 #define wywz swizzle(glm::W, glm::Y, glm::W, glm::Z)
      +00488 #define xzwz swizzle(glm::X, glm::Z, glm::W, glm::Z)
      +00489 #define yzwz swizzle(glm::Y, glm::Z, glm::W, glm::Z)
      +00490 #define zzwz swizzle(glm::Z, glm::Z, glm::W, glm::Z)
      +00491 #define wzwz swizzle(glm::W, glm::Z, glm::W, glm::Z)
      +00492 #define xwwz swizzle(glm::X, glm::W, glm::W, glm::Z)
      +00493 #define ywwz swizzle(glm::Y, glm::W, glm::W, glm::Z)
      +00494 #define zwwz swizzle(glm::Z, glm::W, glm::W, glm::Z)
      +00495 #define wwwz swizzle(glm::W, glm::W, glm::W, glm::Z)
      +00496 #define xxxw swizzle(glm::X, glm::X, glm::X, glm::W)
      +00497 #define yxxw swizzle(glm::Y, glm::X, glm::X, glm::W)
      +00498 #define zxxw swizzle(glm::Z, glm::X, glm::X, glm::W)
      +00499 #define wxxw swizzle(glm::W, glm::X, glm::X, glm::W)
      +00500 #define xyxw swizzle(glm::X, glm::Y, glm::X, glm::W)
      +00501 #define yyxw swizzle(glm::Y, glm::Y, glm::X, glm::W)
      +00502 #define zyxw swizzle(glm::Z, glm::Y, glm::X, glm::W)
      +00503 #define wyxw swizzle(glm::W, glm::Y, glm::X, glm::W)
      +00504 #define xzxw swizzle(glm::X, glm::Z, glm::X, glm::W)
      +00505 #define yzxw swizzle(glm::Y, glm::Z, glm::X, glm::W)
      +00506 #define zzxw swizzle(glm::Z, glm::Z, glm::X, glm::W)
      +00507 #define wzxw swizzle(glm::W, glm::Z, glm::X, glm::W)
      +00508 #define xwxw swizzle(glm::X, glm::W, glm::X, glm::W)
      +00509 #define ywxw swizzle(glm::Y, glm::W, glm::X, glm::W)
      +00510 #define zwxw swizzle(glm::Z, glm::W, glm::X, glm::W)
      +00511 #define wwxw swizzle(glm::W, glm::W, glm::X, glm::W)
      +00512 #define xxyw swizzle(glm::X, glm::X, glm::Y, glm::W)
      +00513 #define yxyw swizzle(glm::Y, glm::X, glm::Y, glm::W)
      +00514 #define zxyw swizzle(glm::Z, glm::X, glm::Y, glm::W)
      +00515 #define wxyw swizzle(glm::W, glm::X, glm::Y, glm::W)
      +00516 #define xyyw swizzle(glm::X, glm::Y, glm::Y, glm::W)
      +00517 #define yyyw swizzle(glm::Y, glm::Y, glm::Y, glm::W)
      +00518 #define zyyw swizzle(glm::Z, glm::Y, glm::Y, glm::W)
      +00519 #define wyyw swizzle(glm::W, glm::Y, glm::Y, glm::W)
      +00520 #define xzyw swizzle(glm::X, glm::Z, glm::Y, glm::W)
      +00521 #define yzyw swizzle(glm::Y, glm::Z, glm::Y, glm::W)
      +00522 #define zzyw swizzle(glm::Z, glm::Z, glm::Y, glm::W)
      +00523 #define wzyw swizzle(glm::W, glm::Z, glm::Y, glm::W)
      +00524 #define xwyw swizzle(glm::X, glm::W, glm::Y, glm::W)
      +00525 #define ywyw swizzle(glm::Y, glm::W, glm::Y, glm::W)
      +00526 #define zwyw swizzle(glm::Z, glm::W, glm::Y, glm::W)
      +00527 #define wwyw swizzle(glm::W, glm::W, glm::Y, glm::W)
      +00528 #define xxzw swizzle(glm::X, glm::X, glm::Z, glm::W)
      +00529 #define yxzw swizzle(glm::Y, glm::X, glm::Z, glm::W)
      +00530 #define zxzw swizzle(glm::Z, glm::X, glm::Z, glm::W)
      +00531 #define wxzw swizzle(glm::W, glm::X, glm::Z, glm::W)
      +00532 #define xyzw swizzle(glm::X, glm::Y, glm::Z, glm::W)
      +00533 #define yyzw swizzle(glm::Y, glm::Y, glm::Z, glm::W)
      +00534 #define zyzw swizzle(glm::Z, glm::Y, glm::Z, glm::W)
      +00535 #define wyzw swizzle(glm::W, glm::Y, glm::Z, glm::W)
      +00536 #define xzzw swizzle(glm::X, glm::Z, glm::Z, glm::W)
      +00537 #define yzzw swizzle(glm::Y, glm::Z, glm::Z, glm::W)
      +00538 #define zzzw swizzle(glm::Z, glm::Z, glm::Z, glm::W)
      +00539 #define wzzw swizzle(glm::W, glm::Z, glm::Z, glm::W)
      +00540 #define xwzw swizzle(glm::X, glm::W, glm::Z, glm::W)
      +00541 #define ywzw swizzle(glm::Y, glm::W, glm::Z, glm::W)
      +00542 #define zwzw swizzle(glm::Z, glm::W, glm::Z, glm::W)
      +00543 #define wwzw swizzle(glm::W, glm::W, glm::Z, glm::W)
      +00544 #define xxww swizzle(glm::X, glm::X, glm::W, glm::W)
      +00545 #define yxww swizzle(glm::Y, glm::X, glm::W, glm::W)
      +00546 #define zxww swizzle(glm::Z, glm::X, glm::W, glm::W)
      +00547 #define wxww swizzle(glm::W, glm::X, glm::W, glm::W)
      +00548 #define xyww swizzle(glm::X, glm::Y, glm::W, glm::W)
      +00549 #define yyww swizzle(glm::Y, glm::Y, glm::W, glm::W)
      +00550 #define zyww swizzle(glm::Z, glm::Y, glm::W, glm::W)
      +00551 #define wyww swizzle(glm::W, glm::Y, glm::W, glm::W)
      +00552 #define xzww swizzle(glm::X, glm::Z, glm::W, glm::W)
      +00553 #define yzww swizzle(glm::Y, glm::Z, glm::W, glm::W)
      +00554 #define zzww swizzle(glm::Z, glm::Z, glm::W, glm::W)
      +00555 #define wzww swizzle(glm::W, glm::Z, glm::W, glm::W)
      +00556 #define xwww swizzle(glm::X, glm::W, glm::W, glm::W)
      +00557 #define ywww swizzle(glm::Y, glm::W, glm::W, glm::W)
      +00558 #define zwww swizzle(glm::Z, glm::W, glm::W, glm::W)
      +00559 #define wwww swizzle(glm::W, glm::W, glm::W, glm::W)
      +00560 
      +00561 #endif
      +00562 
      +00563 #if(defined(GLM_SWIZZLE_RGBA) || defined(GLM_SWIZZLE))
      +00564 
      +00565 #define rrrr swizzle(glm::X, glm::X, glm::X, glm::X)
      +00566 #define grrr swizzle(glm::Y, glm::X, glm::X, glm::X)
      +00567 #define brrr swizzle(glm::Z, glm::X, glm::X, glm::X)
      +00568 #define arrr swizzle(glm::W, glm::X, glm::X, glm::X)
      +00569 #define rgrr swizzle(glm::X, glm::Y, glm::X, glm::X)
      +00570 #define ggrr swizzle(glm::Y, glm::Y, glm::X, glm::X)
      +00571 #define bgrr swizzle(glm::Z, glm::Y, glm::X, glm::X)
      +00572 #define agrr swizzle(glm::W, glm::Y, glm::X, glm::X)
      +00573 #define rbrr swizzle(glm::X, glm::Z, glm::X, glm::X)
      +00574 #define gbrr swizzle(glm::Y, glm::Z, glm::X, glm::X)
      +00575 #define bbrr swizzle(glm::Z, glm::Z, glm::X, glm::X)
      +00576 #define abrr swizzle(glm::W, glm::Z, glm::X, glm::X)
      +00577 #define rarr swizzle(glm::X, glm::W, glm::X, glm::X)
      +00578 #define garr swizzle(glm::Y, glm::W, glm::X, glm::X)
      +00579 #define barr swizzle(glm::Z, glm::W, glm::X, glm::X)
      +00580 #define aarr swizzle(glm::W, glm::W, glm::X, glm::X)
      +00581 #define rrgr swizzle(glm::X, glm::X, glm::Y, glm::X)
      +00582 #define grgr swizzle(glm::Y, glm::X, glm::Y, glm::X)
      +00583 #define brgr swizzle(glm::Z, glm::X, glm::Y, glm::X)
      +00584 #define argr swizzle(glm::W, glm::X, glm::Y, glm::X)
      +00585 #define rggr swizzle(glm::X, glm::Y, glm::Y, glm::X)
      +00586 #define gggr swizzle(glm::Y, glm::Y, glm::Y, glm::X)
      +00587 #define bggr swizzle(glm::Z, glm::Y, glm::Y, glm::X)
      +00588 #define aggr swizzle(glm::W, glm::Y, glm::Y, glm::X)
      +00589 #define rbgr swizzle(glm::X, glm::Z, glm::Y, glm::X)
      +00590 #define gbgr swizzle(glm::Y, glm::Z, glm::Y, glm::X)
      +00591 #define bbgr swizzle(glm::Z, glm::Z, glm::Y, glm::X)
      +00592 #define abgr swizzle(glm::W, glm::Z, glm::Y, glm::X)
      +00593 #define ragr swizzle(glm::X, glm::W, glm::Y, glm::X)
      +00594 #define gagr swizzle(glm::Y, glm::W, glm::Y, glm::X)
      +00595 #define bagr swizzle(glm::Z, glm::W, glm::Y, glm::X)
      +00596 #define aagr swizzle(glm::W, glm::W, glm::Y, glm::X)
      +00597 #define rrbr swizzle(glm::X, glm::X, glm::Z, glm::X)
      +00598 #define grbr swizzle(glm::Y, glm::X, glm::Z, glm::X)
      +00599 #define brbr swizzle(glm::Z, glm::X, glm::Z, glm::X)
      +00600 #define arbr swizzle(glm::W, glm::X, glm::Z, glm::X)
      +00601 #define rgbr swizzle(glm::X, glm::Y, glm::Z, glm::X)
      +00602 #define ggbr swizzle(glm::Y, glm::Y, glm::Z, glm::X)
      +00603 #define bgbr swizzle(glm::Z, glm::Y, glm::Z, glm::X)
      +00604 #define agbr swizzle(glm::W, glm::Y, glm::Z, glm::X)
      +00605 #define rbbr swizzle(glm::X, glm::Z, glm::Z, glm::X)
      +00606 #define gbbr swizzle(glm::Y, glm::Z, glm::Z, glm::X)
      +00607 #define bbbr swizzle(glm::Z, glm::Z, glm::Z, glm::X)
      +00608 #define abbr swizzle(glm::W, glm::Z, glm::Z, glm::X)
      +00609 #define rabr swizzle(glm::X, glm::W, glm::Z, glm::X)
      +00610 #define gabr swizzle(glm::Y, glm::W, glm::Z, glm::X)
      +00611 #define babr swizzle(glm::Z, glm::W, glm::Z, glm::X)
      +00612 #define aabr swizzle(glm::W, glm::W, glm::Z, glm::X)
      +00613 #define rrar swizzle(glm::X, glm::X, glm::W, glm::X)
      +00614 #define grar swizzle(glm::Y, glm::X, glm::W, glm::X)
      +00615 #define brar swizzle(glm::Z, glm::X, glm::W, glm::X)
      +00616 #define arar swizzle(glm::W, glm::X, glm::W, glm::X)
      +00617 #define rgar swizzle(glm::X, glm::Y, glm::W, glm::X)
      +00618 #define ggar swizzle(glm::Y, glm::Y, glm::W, glm::X)
      +00619 #define bgar swizzle(glm::Z, glm::Y, glm::W, glm::X)
      +00620 #define agar swizzle(glm::W, glm::Y, glm::W, glm::X)
      +00621 #define rbar swizzle(glm::X, glm::Z, glm::W, glm::X)
      +00622 #define gbar swizzle(glm::Y, glm::Z, glm::W, glm::X)
      +00623 #define bbar swizzle(glm::Z, glm::Z, glm::W, glm::X)
      +00624 #define abar swizzle(glm::W, glm::Z, glm::W, glm::X)
      +00625 #define raar swizzle(glm::X, glm::W, glm::W, glm::X)
      +00626 #define gaar swizzle(glm::Y, glm::W, glm::W, glm::X)
      +00627 #define baar swizzle(glm::Z, glm::W, glm::W, glm::X)
      +00628 #define aaar swizzle(glm::W, glm::W, glm::W, glm::X)
      +00629 #define rrrg swizzle(glm::X, glm::X, glm::X, glm::Y)
      +00630 #define grrg swizzle(glm::Y, glm::X, glm::X, glm::Y)
      +00631 #define brrg swizzle(glm::Z, glm::X, glm::X, glm::Y)
      +00632 #define arrg swizzle(glm::W, glm::X, glm::X, glm::Y)
      +00633 #define rgrg swizzle(glm::X, glm::Y, glm::X, glm::Y)
      +00634 #define ggrg swizzle(glm::Y, glm::Y, glm::X, glm::Y)
      +00635 #define bgrg swizzle(glm::Z, glm::Y, glm::X, glm::Y)
      +00636 #define agrg swizzle(glm::W, glm::Y, glm::X, glm::Y)
      +00637 #define rbrg swizzle(glm::X, glm::Z, glm::X, glm::Y)
      +00638 #define gbrg swizzle(glm::Y, glm::Z, glm::X, glm::Y)
      +00639 #define bbrg swizzle(glm::Z, glm::Z, glm::X, glm::Y)
      +00640 #define abrg swizzle(glm::W, glm::Z, glm::X, glm::Y)
      +00641 #define rarg swizzle(glm::X, glm::W, glm::X, glm::Y)
      +00642 #define garg swizzle(glm::Y, glm::W, glm::X, glm::Y)
      +00643 #define barg swizzle(glm::Z, glm::W, glm::X, glm::Y)
      +00644 #define aarg swizzle(glm::W, glm::W, glm::X, glm::Y)
      +00645 #define rrgg swizzle(glm::X, glm::X, glm::Y, glm::Y)
      +00646 #define grgg swizzle(glm::Y, glm::X, glm::Y, glm::Y)
      +00647 #define brgg swizzle(glm::Z, glm::X, glm::Y, glm::Y)
      +00648 #define argg swizzle(glm::W, glm::X, glm::Y, glm::Y)
      +00649 #define rggg swizzle(glm::X, glm::Y, glm::Y, glm::Y)
      +00650 #define gggg swizzle(glm::Y, glm::Y, glm::Y, glm::Y)
      +00651 #define bggg swizzle(glm::Z, glm::Y, glm::Y, glm::Y)
      +00652 #define aggg swizzle(glm::W, glm::Y, glm::Y, glm::Y)
      +00653 #define rbgg swizzle(glm::X, glm::Z, glm::Y, glm::Y)
      +00654 #define gbgg swizzle(glm::Y, glm::Z, glm::Y, glm::Y)
      +00655 #define bbgg swizzle(glm::Z, glm::Z, glm::Y, glm::Y)
      +00656 #define abgg swizzle(glm::W, glm::Z, glm::Y, glm::Y)
      +00657 #define ragg swizzle(glm::X, glm::W, glm::Y, glm::Y)
      +00658 #define gagg swizzle(glm::Y, glm::W, glm::Y, glm::Y)
      +00659 #define bagg swizzle(glm::Z, glm::W, glm::Y, glm::Y)
      +00660 #define aagg swizzle(glm::W, glm::W, glm::Y, glm::Y)
      +00661 #define rrbg swizzle(glm::X, glm::X, glm::Z, glm::Y)
      +00662 #define grbg swizzle(glm::Y, glm::X, glm::Z, glm::Y)
      +00663 #define brbg swizzle(glm::Z, glm::X, glm::Z, glm::Y)
      +00664 #define arbg swizzle(glm::W, glm::X, glm::Z, glm::Y)
      +00665 #define rgbg swizzle(glm::X, glm::Y, glm::Z, glm::Y)
      +00666 #define ggbg swizzle(glm::Y, glm::Y, glm::Z, glm::Y)
      +00667 #define bgbg swizzle(glm::Z, glm::Y, glm::Z, glm::Y)
      +00668 #define agbg swizzle(glm::W, glm::Y, glm::Z, glm::Y)
      +00669 #define rbbg swizzle(glm::X, glm::Z, glm::Z, glm::Y)
      +00670 #define gbbg swizzle(glm::Y, glm::Z, glm::Z, glm::Y)
      +00671 #define bbbg swizzle(glm::Z, glm::Z, glm::Z, glm::Y)
      +00672 #define abbg swizzle(glm::W, glm::Z, glm::Z, glm::Y)
      +00673 #define rabg swizzle(glm::X, glm::W, glm::Z, glm::Y)
      +00674 #define gabg swizzle(glm::Y, glm::W, glm::Z, glm::Y)
      +00675 #define babg swizzle(glm::Z, glm::W, glm::Z, glm::Y)
      +00676 #define aabg swizzle(glm::W, glm::W, glm::Z, glm::Y)
      +00677 #define rrag swizzle(glm::X, glm::X, glm::W, glm::Y)
      +00678 #define grag swizzle(glm::Y, glm::X, glm::W, glm::Y)
      +00679 #define brag swizzle(glm::Z, glm::X, glm::W, glm::Y)
      +00680 #define arag swizzle(glm::W, glm::X, glm::W, glm::Y)
      +00681 #define rgag swizzle(glm::X, glm::Y, glm::W, glm::Y)
      +00682 #define ggag swizzle(glm::Y, glm::Y, glm::W, glm::Y)
      +00683 #define bgag swizzle(glm::Z, glm::Y, glm::W, glm::Y)
      +00684 #define agag swizzle(glm::W, glm::Y, glm::W, glm::Y)
      +00685 #define rbag swizzle(glm::X, glm::Z, glm::W, glm::Y)
      +00686 #define gbag swizzle(glm::Y, glm::Z, glm::W, glm::Y)
      +00687 #define bbag swizzle(glm::Z, glm::Z, glm::W, glm::Y)
      +00688 #define abag swizzle(glm::W, glm::Z, glm::W, glm::Y)
      +00689 #define raag swizzle(glm::X, glm::W, glm::W, glm::Y)
      +00690 #define gaag swizzle(glm::Y, glm::W, glm::W, glm::Y)
      +00691 #define baag swizzle(glm::Z, glm::W, glm::W, glm::Y)
      +00692 #define aaag swizzle(glm::W, glm::W, glm::W, glm::Y)
      +00693 #define rrrb swizzle(glm::X, glm::X, glm::X, glm::Z)
      +00694 #define grrb swizzle(glm::Y, glm::X, glm::X, glm::Z)
      +00695 #define brrb swizzle(glm::Z, glm::X, glm::X, glm::Z)
      +00696 #define arrb swizzle(glm::W, glm::X, glm::X, glm::Z)
      +00697 #define rgrb swizzle(glm::X, glm::Y, glm::X, glm::Z)
      +00698 #define ggrb swizzle(glm::Y, glm::Y, glm::X, glm::Z)
      +00699 #define bgrb swizzle(glm::Z, glm::Y, glm::X, glm::Z)
      +00700 #define agrb swizzle(glm::W, glm::Y, glm::X, glm::Z)
      +00701 #define rbrb swizzle(glm::X, glm::Z, glm::X, glm::Z)
      +00702 #define gbrb swizzle(glm::Y, glm::Z, glm::X, glm::Z)
      +00703 #define bbrb swizzle(glm::Z, glm::Z, glm::X, glm::Z)
      +00704 #define abrb swizzle(glm::W, glm::Z, glm::X, glm::Z)
      +00705 #define rarb swizzle(glm::X, glm::W, glm::X, glm::Z)
      +00706 #define garb swizzle(glm::Y, glm::W, glm::X, glm::Z)
      +00707 #define barb swizzle(glm::Z, glm::W, glm::X, glm::Z)
      +00708 #define aarb swizzle(glm::W, glm::W, glm::X, glm::Z)
      +00709 #define rrgb swizzle(glm::X, glm::X, glm::Y, glm::Z)
      +00710 #define grgb swizzle(glm::Y, glm::X, glm::Y, glm::Z)
      +00711 #define brgb swizzle(glm::Z, glm::X, glm::Y, glm::Z)
      +00712 #define argb swizzle(glm::W, glm::X, glm::Y, glm::Z)
      +00713 #define rggb swizzle(glm::X, glm::Y, glm::Y, glm::Z)
      +00714 #define gggb swizzle(glm::Y, glm::Y, glm::Y, glm::Z)
      +00715 #define bggb swizzle(glm::Z, glm::Y, glm::Y, glm::Z)
      +00716 #define aggb swizzle(glm::W, glm::Y, glm::Y, glm::Z)
      +00717 #define rbgb swizzle(glm::X, glm::Z, glm::Y, glm::Z)
      +00718 #define gbgb swizzle(glm::Y, glm::Z, glm::Y, glm::Z)
      +00719 #define bbgb swizzle(glm::Z, glm::Z, glm::Y, glm::Z)
      +00720 #define abgb swizzle(glm::W, glm::Z, glm::Y, glm::Z)
      +00721 #define ragb swizzle(glm::X, glm::W, glm::Y, glm::Z)
      +00722 #define gagb swizzle(glm::Y, glm::W, glm::Y, glm::Z)
      +00723 #define bagb swizzle(glm::Z, glm::W, glm::Y, glm::Z)
      +00724 #define aagb swizzle(glm::W, glm::W, glm::Y, glm::Z)
      +00725 #define rrbb swizzle(glm::X, glm::X, glm::Z, glm::Z)
      +00726 #define grbb swizzle(glm::Y, glm::X, glm::Z, glm::Z)
      +00727 #define brbb swizzle(glm::Z, glm::X, glm::Z, glm::Z)
      +00728 #define arbb swizzle(glm::W, glm::X, glm::Z, glm::Z)
      +00729 #define rgbb swizzle(glm::X, glm::Y, glm::Z, glm::Z)
      +00730 #define ggbb swizzle(glm::Y, glm::Y, glm::Z, glm::Z)
      +00731 #define bgbb swizzle(glm::Z, glm::Y, glm::Z, glm::Z)
      +00732 #define agbb swizzle(glm::W, glm::Y, glm::Z, glm::Z)
      +00733 #define rbbb swizzle(glm::X, glm::Z, glm::Z, glm::Z)
      +00734 #define gbbb swizzle(glm::Y, glm::Z, glm::Z, glm::Z)
      +00735 #define bbbb swizzle(glm::Z, glm::Z, glm::Z, glm::Z)
      +00736 #define abbb swizzle(glm::W, glm::Z, glm::Z, glm::Z)
      +00737 #define rabb swizzle(glm::X, glm::W, glm::Z, glm::Z)
      +00738 #define gabb swizzle(glm::Y, glm::W, glm::Z, glm::Z)
      +00739 #define babb swizzle(glm::Z, glm::W, glm::Z, glm::Z)
      +00740 #define aabb swizzle(glm::W, glm::W, glm::Z, glm::Z)
      +00741 #define rrab swizzle(glm::X, glm::X, glm::W, glm::Z)
      +00742 #define grab swizzle(glm::Y, glm::X, glm::W, glm::Z)
      +00743 #define brab swizzle(glm::Z, glm::X, glm::W, glm::Z)
      +00744 #define arab swizzle(glm::W, glm::X, glm::W, glm::Z)
      +00745 #define rgab swizzle(glm::X, glm::Y, glm::W, glm::Z)
      +00746 #define ggab swizzle(glm::Y, glm::Y, glm::W, glm::Z)
      +00747 #define bgab swizzle(glm::Z, glm::Y, glm::W, glm::Z)
      +00748 #define agab swizzle(glm::W, glm::Y, glm::W, glm::Z)
      +00749 #define rbab swizzle(glm::X, glm::Z, glm::W, glm::Z)
      +00750 #define gbab swizzle(glm::Y, glm::Z, glm::W, glm::Z)
      +00751 #define bbab swizzle(glm::Z, glm::Z, glm::W, glm::Z)
      +00752 #define abab swizzle(glm::W, glm::Z, glm::W, glm::Z)
      +00753 #define raab swizzle(glm::X, glm::W, glm::W, glm::Z)
      +00754 #define gaab swizzle(glm::Y, glm::W, glm::W, glm::Z)
      +00755 #define baab swizzle(glm::Z, glm::W, glm::W, glm::Z)
      +00756 #define aaab swizzle(glm::W, glm::W, glm::W, glm::Z)
      +00757 #define rrra swizzle(glm::X, glm::X, glm::X, glm::W)
      +00758 #define grra swizzle(glm::Y, glm::X, glm::X, glm::W)
      +00759 #define brra swizzle(glm::Z, glm::X, glm::X, glm::W)
      +00760 #define arra swizzle(glm::W, glm::X, glm::X, glm::W)
      +00761 #define rgra swizzle(glm::X, glm::Y, glm::X, glm::W)
      +00762 #define ggra swizzle(glm::Y, glm::Y, glm::X, glm::W)
      +00763 #define bgra swizzle(glm::Z, glm::Y, glm::X, glm::W)
      +00764 #define agra swizzle(glm::W, glm::Y, glm::X, glm::W)
      +00765 #define rbra swizzle(glm::X, glm::Z, glm::X, glm::W)
      +00766 #define gbra swizzle(glm::Y, glm::Z, glm::X, glm::W)
      +00767 #define bbra swizzle(glm::Z, glm::Z, glm::X, glm::W)
      +00768 #define abra swizzle(glm::W, glm::Z, glm::X, glm::W)
      +00769 #define rara swizzle(glm::X, glm::W, glm::X, glm::W)
      +00770 #define gara swizzle(glm::Y, glm::W, glm::X, glm::W)
      +00771 #define bara swizzle(glm::Z, glm::W, glm::X, glm::W)
      +00772 #define aara swizzle(glm::W, glm::W, glm::X, glm::W)
      +00773 #define rrga swizzle(glm::X, glm::X, glm::Y, glm::W)
      +00774 #define grga swizzle(glm::Y, glm::X, glm::Y, glm::W)
      +00775 #define brga swizzle(glm::Z, glm::X, glm::Y, glm::W)
      +00776 #define arga swizzle(glm::W, glm::X, glm::Y, glm::W)
      +00777 #define rgga swizzle(glm::X, glm::Y, glm::Y, glm::W)
      +00778 #define ggga swizzle(glm::Y, glm::Y, glm::Y, glm::W)
      +00779 #define bgga swizzle(glm::Z, glm::Y, glm::Y, glm::W)
      +00780 #define agga swizzle(glm::W, glm::Y, glm::Y, glm::W)
      +00781 #define rbga swizzle(glm::X, glm::Z, glm::Y, glm::W)
      +00782 #define gbga swizzle(glm::Y, glm::Z, glm::Y, glm::W)
      +00783 #define bbga swizzle(glm::Z, glm::Z, glm::Y, glm::W)
      +00784 #define abga swizzle(glm::W, glm::Z, glm::Y, glm::W)
      +00785 #define raga swizzle(glm::X, glm::W, glm::Y, glm::W)
      +00786 #define gaga swizzle(glm::Y, glm::W, glm::Y, glm::W)
      +00787 #define baga swizzle(glm::Z, glm::W, glm::Y, glm::W)
      +00788 #define aaga swizzle(glm::W, glm::W, glm::Y, glm::W)
      +00789 #define rrba swizzle(glm::X, glm::X, glm::Z, glm::W)
      +00790 #define grba swizzle(glm::Y, glm::X, glm::Z, glm::W)
      +00791 #define brba swizzle(glm::Z, glm::X, glm::Z, glm::W)
      +00792 #define arba swizzle(glm::W, glm::X, glm::Z, glm::W)
      +00793 #define rgba swizzle(glm::X, glm::Y, glm::Z, glm::W)
      +00794 #define ggba swizzle(glm::Y, glm::Y, glm::Z, glm::W)
      +00795 #define bgba swizzle(glm::Z, glm::Y, glm::Z, glm::W)
      +00796 #define agba swizzle(glm::W, glm::Y, glm::Z, glm::W)
      +00797 #define rbba swizzle(glm::X, glm::Z, glm::Z, glm::W)
      +00798 #define gbba swizzle(glm::Y, glm::Z, glm::Z, glm::W)
      +00799 #define bbba swizzle(glm::Z, glm::Z, glm::Z, glm::W)
      +00800 #define abba swizzle(glm::W, glm::Z, glm::Z, glm::W)
      +00801 #define raba swizzle(glm::X, glm::W, glm::Z, glm::W)
      +00802 #define gaba swizzle(glm::Y, glm::W, glm::Z, glm::W)
      +00803 #define baba swizzle(glm::Z, glm::W, glm::Z, glm::W)
      +00804 #define aaba swizzle(glm::W, glm::W, glm::Z, glm::W)
      +00805 #define rraa swizzle(glm::X, glm::X, glm::W, glm::W)
      +00806 #define graa swizzle(glm::Y, glm::X, glm::W, glm::W)
      +00807 #define braa swizzle(glm::Z, glm::X, glm::W, glm::W)
      +00808 #define araa swizzle(glm::W, glm::X, glm::W, glm::W)
      +00809 #define rgaa swizzle(glm::X, glm::Y, glm::W, glm::W)
      +00810 #define ggaa swizzle(glm::Y, glm::Y, glm::W, glm::W)
      +00811 #define bgaa swizzle(glm::Z, glm::Y, glm::W, glm::W)
      +00812 #define agaa swizzle(glm::W, glm::Y, glm::W, glm::W)
      +00813 #define rbaa swizzle(glm::X, glm::Z, glm::W, glm::W)
      +00814 #define gbaa swizzle(glm::Y, glm::Z, glm::W, glm::W)
      +00815 #define bbaa swizzle(glm::Z, glm::Z, glm::W, glm::W)
      +00816 #define abaa swizzle(glm::W, glm::Z, glm::W, glm::W)
      +00817 #define raaa swizzle(glm::X, glm::W, glm::W, glm::W)
      +00818 #define gaaa swizzle(glm::Y, glm::W, glm::W, glm::W)
      +00819 #define baaa swizzle(glm::Z, glm::W, glm::W, glm::W)
      +00820 #define aaaa swizzle(glm::W, glm::W, glm::W, glm::W)
      +00821 
      +00822 #endif
      +00823 
      +00824 #if(defined(GLM_FORCE_SWIZZLE_STPQ) || defined(GLM_SWIZZLE))
      +00825 
      +00826 #define ssss swizzle(glm::X, glm::X, glm::X, glm::X)
      +00827 #define tsss swizzle(glm::Y, glm::X, glm::X, glm::X)
      +00828 #define psss swizzle(glm::Z, glm::X, glm::X, glm::X)
      +00829 #define qsss swizzle(glm::W, glm::X, glm::X, glm::X)
      +00830 #define stss swizzle(glm::X, glm::Y, glm::X, glm::X)
      +00831 #define ttss swizzle(glm::Y, glm::Y, glm::X, glm::X)
      +00832 #define ptss swizzle(glm::Z, glm::Y, glm::X, glm::X)
      +00833 #define qtss swizzle(glm::W, glm::Y, glm::X, glm::X)
      +00834 #define spss swizzle(glm::X, glm::Z, glm::X, glm::X)
      +00835 #define tpss swizzle(glm::Y, glm::Z, glm::X, glm::X)
      +00836 #define ppss swizzle(glm::Z, glm::Z, glm::X, glm::X)
      +00837 #define qpss swizzle(glm::W, glm::Z, glm::X, glm::X)
      +00838 #define sqss swizzle(glm::X, glm::W, glm::X, glm::X)
      +00839 #define tqss swizzle(glm::Y, glm::W, glm::X, glm::X)
      +00840 #define pqss swizzle(glm::Z, glm::W, glm::X, glm::X)
      +00841 #define qqss swizzle(glm::W, glm::W, glm::X, glm::X)
      +00842 #define ssts swizzle(glm::X, glm::X, glm::Y, glm::X)
      +00843 #define tsts swizzle(glm::Y, glm::X, glm::Y, glm::X)
      +00844 #define psts swizzle(glm::Z, glm::X, glm::Y, glm::X)
      +00845 #define qsts swizzle(glm::W, glm::X, glm::Y, glm::X)
      +00846 #define stts swizzle(glm::X, glm::Y, glm::Y, glm::X)
      +00847 #define ttts swizzle(glm::Y, glm::Y, glm::Y, glm::X)
      +00848 #define ptts swizzle(glm::Z, glm::Y, glm::Y, glm::X)
      +00849 #define qtts swizzle(glm::W, glm::Y, glm::Y, glm::X)
      +00850 #define spts swizzle(glm::X, glm::Z, glm::Y, glm::X)
      +00851 #define tpts swizzle(glm::Y, glm::Z, glm::Y, glm::X)
      +00852 #define ppts swizzle(glm::Z, glm::Z, glm::Y, glm::X)
      +00853 #define qpts swizzle(glm::W, glm::Z, glm::Y, glm::X)
      +00854 #define sqts swizzle(glm::X, glm::W, glm::Y, glm::X)
      +00855 #define tqts swizzle(glm::Y, glm::W, glm::Y, glm::X)
      +00856 #define pqts swizzle(glm::Z, glm::W, glm::Y, glm::X)
      +00857 #define qqts swizzle(glm::W, glm::W, glm::Y, glm::X)
      +00858 #define ssps swizzle(glm::X, glm::X, glm::Z, glm::X)
      +00859 #define tsps swizzle(glm::Y, glm::X, glm::Z, glm::X)
      +00860 #define psps swizzle(glm::Z, glm::X, glm::Z, glm::X)
      +00861 #define qsps swizzle(glm::W, glm::X, glm::Z, glm::X)
      +00862 #define stps swizzle(glm::X, glm::Y, glm::Z, glm::X)
      +00863 #define ttps swizzle(glm::Y, glm::Y, glm::Z, glm::X)
      +00864 #define ptps swizzle(glm::Z, glm::Y, glm::Z, glm::X)
      +00865 #define qtps swizzle(glm::W, glm::Y, glm::Z, glm::X)
      +00866 #define spps swizzle(glm::X, glm::Z, glm::Z, glm::X)
      +00867 #define tpps swizzle(glm::Y, glm::Z, glm::Z, glm::X)
      +00868 #define ppps swizzle(glm::Z, glm::Z, glm::Z, glm::X)
      +00869 #define qpps swizzle(glm::W, glm::Z, glm::Z, glm::X)
      +00870 #define sqps swizzle(glm::X, glm::W, glm::Z, glm::X)
      +00871 #define tqps swizzle(glm::Y, glm::W, glm::Z, glm::X)
      +00872 #define pqps swizzle(glm::Z, glm::W, glm::Z, glm::X)
      +00873 #define qqps swizzle(glm::W, glm::W, glm::Z, glm::X)
      +00874 #define ssqs swizzle(glm::X, glm::X, glm::W, glm::X)
      +00875 #define tsqs swizzle(glm::Y, glm::X, glm::W, glm::X)
      +00876 #define psqs swizzle(glm::Z, glm::X, glm::W, glm::X)
      +00877 #define qsqs swizzle(glm::W, glm::X, glm::W, glm::X)
      +00878 #define stqs swizzle(glm::X, glm::Y, glm::W, glm::X)
      +00879 #define ttqs swizzle(glm::Y, glm::Y, glm::W, glm::X)
      +00880 #define ptqs swizzle(glm::Z, glm::Y, glm::W, glm::X)
      +00881 #define qtqs swizzle(glm::W, glm::Y, glm::W, glm::X)
      +00882 #define spqs swizzle(glm::X, glm::Z, glm::W, glm::X)
      +00883 #define tpqs swizzle(glm::Y, glm::Z, glm::W, glm::X)
      +00884 #define ppqs swizzle(glm::Z, glm::Z, glm::W, glm::X)
      +00885 #define qpqs swizzle(glm::W, glm::Z, glm::W, glm::X)
      +00886 #define sqqs swizzle(glm::X, glm::W, glm::W, glm::X)
      +00887 #define tqqs swizzle(glm::Y, glm::W, glm::W, glm::X)
      +00888 #define pqqs swizzle(glm::Z, glm::W, glm::W, glm::X)
      +00889 #define qqqs swizzle(glm::W, glm::W, glm::W, glm::X)
      +00890 #define ssst swizzle(glm::X, glm::X, glm::X, glm::Y)
      +00891 #define tsst swizzle(glm::Y, glm::X, glm::X, glm::Y)
      +00892 #define psst swizzle(glm::Z, glm::X, glm::X, glm::Y)
      +00893 #define qsst swizzle(glm::W, glm::X, glm::X, glm::Y)
      +00894 #define stst swizzle(glm::X, glm::Y, glm::X, glm::Y)
      +00895 #define ttst swizzle(glm::Y, glm::Y, glm::X, glm::Y)
      +00896 #define ptst swizzle(glm::Z, glm::Y, glm::X, glm::Y)
      +00897 #define qtst swizzle(glm::W, glm::Y, glm::X, glm::Y)
      +00898 #define spst swizzle(glm::X, glm::Z, glm::X, glm::Y)
      +00899 #define tpst swizzle(glm::Y, glm::Z, glm::X, glm::Y)
      +00900 #define ppst swizzle(glm::Z, glm::Z, glm::X, glm::Y)
      +00901 #define qpst swizzle(glm::W, glm::Z, glm::X, glm::Y)
      +00902 #define sqst swizzle(glm::X, glm::W, glm::X, glm::Y)
      +00903 #define tqst swizzle(glm::Y, glm::W, glm::X, glm::Y)
      +00904 #define pqst swizzle(glm::Z, glm::W, glm::X, glm::Y)
      +00905 #define qqst swizzle(glm::W, glm::W, glm::X, glm::Y)
      +00906 #define sstt swizzle(glm::X, glm::X, glm::Y, glm::Y)
      +00907 #define tstt swizzle(glm::Y, glm::X, glm::Y, glm::Y)
      +00908 #define pstt swizzle(glm::Z, glm::X, glm::Y, glm::Y)
      +00909 #define qstt swizzle(glm::W, glm::X, glm::Y, glm::Y)
      +00910 #define sttt swizzle(glm::X, glm::Y, glm::Y, glm::Y)
      +00911 #define tttt swizzle(glm::Y, glm::Y, glm::Y, glm::Y)
      +00912 #define pttt swizzle(glm::Z, glm::Y, glm::Y, glm::Y)
      +00913 #define qttt swizzle(glm::W, glm::Y, glm::Y, glm::Y)
      +00914 #define sptt swizzle(glm::X, glm::Z, glm::Y, glm::Y)
      +00915 #define tptt swizzle(glm::Y, glm::Z, glm::Y, glm::Y)
      +00916 #define pptt swizzle(glm::Z, glm::Z, glm::Y, glm::Y)
      +00917 #define qptt swizzle(glm::W, glm::Z, glm::Y, glm::Y)
      +00918 #define sqtt swizzle(glm::X, glm::W, glm::Y, glm::Y)
      +00919 #define tqtt swizzle(glm::Y, glm::W, glm::Y, glm::Y)
      +00920 #define pqtt swizzle(glm::Z, glm::W, glm::Y, glm::Y)
      +00921 #define qqtt swizzle(glm::W, glm::W, glm::Y, glm::Y)
      +00922 #define sspt swizzle(glm::X, glm::X, glm::Z, glm::Y)
      +00923 #define tspt swizzle(glm::Y, glm::X, glm::Z, glm::Y)
      +00924 #define pspt swizzle(glm::Z, glm::X, glm::Z, glm::Y)
      +00925 #define qspt swizzle(glm::W, glm::X, glm::Z, glm::Y)
      +00926 #define stpt swizzle(glm::X, glm::Y, glm::Z, glm::Y)
      +00927 #define ttpt swizzle(glm::Y, glm::Y, glm::Z, glm::Y)
      +00928 #define ptpt swizzle(glm::Z, glm::Y, glm::Z, glm::Y)
      +00929 #define qtpt swizzle(glm::W, glm::Y, glm::Z, glm::Y)
      +00930 #define sppt swizzle(glm::X, glm::Z, glm::Z, glm::Y)
      +00931 #define tppt swizzle(glm::Y, glm::Z, glm::Z, glm::Y)
      +00932 #define pppt swizzle(glm::Z, glm::Z, glm::Z, glm::Y)
      +00933 #define qppt swizzle(glm::W, glm::Z, glm::Z, glm::Y)
      +00934 #define sqpt swizzle(glm::X, glm::W, glm::Z, glm::Y)
      +00935 #define tqpt swizzle(glm::Y, glm::W, glm::Z, glm::Y)
      +00936 #define pqpt swizzle(glm::Z, glm::W, glm::Z, glm::Y)
      +00937 #define qqpt swizzle(glm::W, glm::W, glm::Z, glm::Y)
      +00938 #define ssqt swizzle(glm::X, glm::X, glm::W, glm::Y)
      +00939 #define tsqt swizzle(glm::Y, glm::X, glm::W, glm::Y)
      +00940 #define psqt swizzle(glm::Z, glm::X, glm::W, glm::Y)
      +00941 #define qsqt swizzle(glm::W, glm::X, glm::W, glm::Y)
      +00942 #define stqt swizzle(glm::X, glm::Y, glm::W, glm::Y)
      +00943 #define ttqt swizzle(glm::Y, glm::Y, glm::W, glm::Y)
      +00944 #define ptqt swizzle(glm::Z, glm::Y, glm::W, glm::Y)
      +00945 #define qtqt swizzle(glm::W, glm::Y, glm::W, glm::Y)
      +00946 #define spqt swizzle(glm::X, glm::Z, glm::W, glm::Y)
      +00947 #define tpqt swizzle(glm::Y, glm::Z, glm::W, glm::Y)
      +00948 #define ppqt swizzle(glm::Z, glm::Z, glm::W, glm::Y)
      +00949 #define qpqt swizzle(glm::W, glm::Z, glm::W, glm::Y)
      +00950 #define sqqt swizzle(glm::X, glm::W, glm::W, glm::Y)
      +00951 #define tqqt swizzle(glm::Y, glm::W, glm::W, glm::Y)
      +00952 #define pqqt swizzle(glm::Z, glm::W, glm::W, glm::Y)
      +00953 #define qqqt swizzle(glm::W, glm::W, glm::W, glm::Y)
      +00954 #define sssp swizzle(glm::X, glm::X, glm::X, glm::Z)
      +00955 #define tssp swizzle(glm::Y, glm::X, glm::X, glm::Z)
      +00956 #define pssp swizzle(glm::Z, glm::X, glm::X, glm::Z)
      +00957 #define qssp swizzle(glm::W, glm::X, glm::X, glm::Z)
      +00958 #define stsp swizzle(glm::X, glm::Y, glm::X, glm::Z)
      +00959 #define ttsp swizzle(glm::Y, glm::Y, glm::X, glm::Z)
      +00960 #define ptsp swizzle(glm::Z, glm::Y, glm::X, glm::Z)
      +00961 #define qtsp swizzle(glm::W, glm::Y, glm::X, glm::Z)
      +00962 #define spsp swizzle(glm::X, glm::Z, glm::X, glm::Z)
      +00963 #define tpsp swizzle(glm::Y, glm::Z, glm::X, glm::Z)
      +00964 #define ppsp swizzle(glm::Z, glm::Z, glm::X, glm::Z)
      +00965 #define qpsp swizzle(glm::W, glm::Z, glm::X, glm::Z)
      +00966 #define sqsp swizzle(glm::X, glm::W, glm::X, glm::Z)
      +00967 #define tqsp swizzle(glm::Y, glm::W, glm::X, glm::Z)
      +00968 #define pqsp swizzle(glm::Z, glm::W, glm::X, glm::Z)
      +00969 #define qqsp swizzle(glm::W, glm::W, glm::X, glm::Z)
      +00970 #define sstp swizzle(glm::X, glm::X, glm::Y, glm::Z)
      +00971 #define tstp swizzle(glm::Y, glm::X, glm::Y, glm::Z)
      +00972 #define pstp swizzle(glm::Z, glm::X, glm::Y, glm::Z)
      +00973 #define qstp swizzle(glm::W, glm::X, glm::Y, glm::Z)
      +00974 #define sttp swizzle(glm::X, glm::Y, glm::Y, glm::Z)
      +00975 #define tttp swizzle(glm::Y, glm::Y, glm::Y, glm::Z)
      +00976 #define pttp swizzle(glm::Z, glm::Y, glm::Y, glm::Z)
      +00977 #define qttp swizzle(glm::W, glm::Y, glm::Y, glm::Z)
      +00978 #define sptp swizzle(glm::X, glm::Z, glm::Y, glm::Z)
      +00979 #define tptp swizzle(glm::Y, glm::Z, glm::Y, glm::Z)
      +00980 #define pptp swizzle(glm::Z, glm::Z, glm::Y, glm::Z)
      +00981 #define qptp swizzle(glm::W, glm::Z, glm::Y, glm::Z)
      +00982 #define sqtp swizzle(glm::X, glm::W, glm::Y, glm::Z)
      +00983 #define tqtp swizzle(glm::Y, glm::W, glm::Y, glm::Z)
      +00984 #define pqtp swizzle(glm::Z, glm::W, glm::Y, glm::Z)
      +00985 #define qqtp swizzle(glm::W, glm::W, glm::Y, glm::Z)
      +00986 #define sspp swizzle(glm::X, glm::X, glm::Z, glm::Z)
      +00987 #define tspp swizzle(glm::Y, glm::X, glm::Z, glm::Z)
      +00988 #define pspp swizzle(glm::Z, glm::X, glm::Z, glm::Z)
      +00989 #define qspp swizzle(glm::W, glm::X, glm::Z, glm::Z)
      +00990 #define stpp swizzle(glm::X, glm::Y, glm::Z, glm::Z)
      +00991 #define ttpp swizzle(glm::Y, glm::Y, glm::Z, glm::Z)
      +00992 #define ptpp swizzle(glm::Z, glm::Y, glm::Z, glm::Z)
      +00993 #define qtpp swizzle(glm::W, glm::Y, glm::Z, glm::Z)
      +00994 #define sppp swizzle(glm::X, glm::Z, glm::Z, glm::Z)
      +00995 #define tppp swizzle(glm::Y, glm::Z, glm::Z, glm::Z)
      +00996 #define pppp swizzle(glm::Z, glm::Z, glm::Z, glm::Z)
      +00997 #define qppp swizzle(glm::W, glm::Z, glm::Z, glm::Z)
      +00998 #define sqpp swizzle(glm::X, glm::W, glm::Z, glm::Z)
      +00999 #define tqpp swizzle(glm::Y, glm::W, glm::Z, glm::Z)
      +01000 #define pqpp swizzle(glm::Z, glm::W, glm::Z, glm::Z)
      +01001 #define qqpp swizzle(glm::W, glm::W, glm::Z, glm::Z)
      +01002 #define ssqp swizzle(glm::X, glm::X, glm::W, glm::Z)
      +01003 #define tsqp swizzle(glm::Y, glm::X, glm::W, glm::Z)
      +01004 #define psqp swizzle(glm::Z, glm::X, glm::W, glm::Z)
      +01005 #define qsqp swizzle(glm::W, glm::X, glm::W, glm::Z)
      +01006 #define stqp swizzle(glm::X, glm::Y, glm::W, glm::Z)
      +01007 #define ttqp swizzle(glm::Y, glm::Y, glm::W, glm::Z)
      +01008 #define ptqp swizzle(glm::Z, glm::Y, glm::W, glm::Z)
      +01009 #define qtqp swizzle(glm::W, glm::Y, glm::W, glm::Z)
      +01010 #define spqp swizzle(glm::X, glm::Z, glm::W, glm::Z)
      +01011 #define tpqp swizzle(glm::Y, glm::Z, glm::W, glm::Z)
      +01012 #define ppqp swizzle(glm::Z, glm::Z, glm::W, glm::Z)
      +01013 #define qpqp swizzle(glm::W, glm::Z, glm::W, glm::Z)
      +01014 #define sqqp swizzle(glm::X, glm::W, glm::W, glm::Z)
      +01015 #define tqqp swizzle(glm::Y, glm::W, glm::W, glm::Z)
      +01016 #define pqqp swizzle(glm::Z, glm::W, glm::W, glm::Z)
      +01017 #define qqqp swizzle(glm::W, glm::W, glm::W, glm::Z)
      +01018 #define sssq swizzle(glm::X, glm::X, glm::X, glm::W)
      +01019 #define tssq swizzle(glm::Y, glm::X, glm::X, glm::W)
      +01020 #define pssq swizzle(glm::Z, glm::X, glm::X, glm::W)
      +01021 #define qssq swizzle(glm::W, glm::X, glm::X, glm::W)
      +01022 #define stsq swizzle(glm::X, glm::Y, glm::X, glm::W)
      +01023 #define ttsq swizzle(glm::Y, glm::Y, glm::X, glm::W)
      +01024 #define ptsq swizzle(glm::Z, glm::Y, glm::X, glm::W)
      +01025 #define qtsq swizzle(glm::W, glm::Y, glm::X, glm::W)
      +01026 #define spsq swizzle(glm::X, glm::Z, glm::X, glm::W)
      +01027 #define tpsq swizzle(glm::Y, glm::Z, glm::X, glm::W)
      +01028 #define ppsq swizzle(glm::Z, glm::Z, glm::X, glm::W)
      +01029 #define qpsq swizzle(glm::W, glm::Z, glm::X, glm::W)
      +01030 #define sqsq swizzle(glm::X, glm::W, glm::X, glm::W)
      +01031 #define tqsq swizzle(glm::Y, glm::W, glm::X, glm::W)
      +01032 #define pqsq swizzle(glm::Z, glm::W, glm::X, glm::W)
      +01033 #define qqsq swizzle(glm::W, glm::W, glm::X, glm::W)
      +01034 #define sstq swizzle(glm::X, glm::X, glm::Y, glm::W)
      +01035 #define tstq swizzle(glm::Y, glm::X, glm::Y, glm::W)
      +01036 #define pstq swizzle(glm::Z, glm::X, glm::Y, glm::W)
      +01037 #define qstq swizzle(glm::W, glm::X, glm::Y, glm::W)
      +01038 #define sttq swizzle(glm::X, glm::Y, glm::Y, glm::W)
      +01039 #define tttq swizzle(glm::Y, glm::Y, glm::Y, glm::W)
      +01040 #define pttq swizzle(glm::Z, glm::Y, glm::Y, glm::W)
      +01041 #define qttq swizzle(glm::W, glm::Y, glm::Y, glm::W)
      +01042 #define sptq swizzle(glm::X, glm::Z, glm::Y, glm::W)
      +01043 #define tptq swizzle(glm::Y, glm::Z, glm::Y, glm::W)
      +01044 #define pptq swizzle(glm::Z, glm::Z, glm::Y, glm::W)
      +01045 #define qptq swizzle(glm::W, glm::Z, glm::Y, glm::W)
      +01046 #define sqtq swizzle(glm::X, glm::W, glm::Y, glm::W)
      +01047 #define tqtq swizzle(glm::Y, glm::W, glm::Y, glm::W)
      +01048 #define pqtq swizzle(glm::Z, glm::W, glm::Y, glm::W)
      +01049 #define qqtq swizzle(glm::W, glm::W, glm::Y, glm::W)
      +01050 #define sspq swizzle(glm::X, glm::X, glm::Z, glm::W)
      +01051 #define tspq swizzle(glm::Y, glm::X, glm::Z, glm::W)
      +01052 #define pspq swizzle(glm::Z, glm::X, glm::Z, glm::W)
      +01053 #define qspq swizzle(glm::W, glm::X, glm::Z, glm::W)
      +01054 #define stpq swizzle(glm::X, glm::Y, glm::Z, glm::W)
      +01055 #define ttpq swizzle(glm::Y, glm::Y, glm::Z, glm::W)
      +01056 #define ptpq swizzle(glm::Z, glm::Y, glm::Z, glm::W)
      +01057 #define qtpq swizzle(glm::W, glm::Y, glm::Z, glm::W)
      +01058 #define sppq swizzle(glm::X, glm::Z, glm::Z, glm::W)
      +01059 #define tppq swizzle(glm::Y, glm::Z, glm::Z, glm::W)
      +01060 #define pppq swizzle(glm::Z, glm::Z, glm::Z, glm::W)
      +01061 #define qppq swizzle(glm::W, glm::Z, glm::Z, glm::W)
      +01062 #define sqpq swizzle(glm::X, glm::W, glm::Z, glm::W)
      +01063 #define tqpq swizzle(glm::Y, glm::W, glm::Z, glm::W)
      +01064 #define pqpq swizzle(glm::Z, glm::W, glm::Z, glm::W)
      +01065 #define qqpq swizzle(glm::W, glm::W, glm::Z, glm::W)
      +01066 #define ssqq swizzle(glm::X, glm::X, glm::W, glm::W)
      +01067 #define tsqq swizzle(glm::Y, glm::X, glm::W, glm::W)
      +01068 #define psqq swizzle(glm::Z, glm::X, glm::W, glm::W)
      +01069 #define qsqq swizzle(glm::W, glm::X, glm::W, glm::W)
      +01070 #define stqq swizzle(glm::X, glm::Y, glm::W, glm::W)
      +01071 #define ttqq swizzle(glm::Y, glm::Y, glm::W, glm::W)
      +01072 #define ptqq swizzle(glm::Z, glm::Y, glm::W, glm::W)
      +01073 #define qtqq swizzle(glm::W, glm::Y, glm::W, glm::W)
      +01074 #define spqq swizzle(glm::X, glm::Z, glm::W, glm::W)
      +01075 #define tpqq swizzle(glm::Y, glm::Z, glm::W, glm::W)
      +01076 #define ppqq swizzle(glm::Z, glm::Z, glm::W, glm::W)
      +01077 #define qpqq swizzle(glm::W, glm::Z, glm::W, glm::W)
      +01078 #define sqqq swizzle(glm::X, glm::W, glm::W, glm::W)
      +01079 #define tqqq swizzle(glm::Y, glm::W, glm::W, glm::W)
      +01080 #define pqqq swizzle(glm::Z, glm::W, glm::W, glm::W)
      +01081 #define qqqq swizzle(glm::W, glm::W, glm::W, glm::W)
      +01082 
      +01083 #endif
      +01084 
      +01085 #endif//glm_core_swizzle
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00026_source.html b/doc/api-0.9.2/a00026_source.html new file mode 100644 index 00000000..d0b29a18 --- /dev/null +++ b/doc/api-0.9.2/a00026_source.html @@ -0,0 +1,116 @@ + + + + +associated_min_max.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      associated_min_max.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-03-10
      +00005 // Updated : 2008-03-15
      +00006 // Licence : This source is under MIT License
      +00007 // File    : gtx_associated_min_max.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_extented_min_max
      +00013 
      +00014 #ifndef glm_gtx_associated_min_max
      +00015 #define glm_gtx_associated_min_max
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 
      +00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00021 #       pragma message("GLM: GLM_GTX_associated_min_max extension included")
      +00022 #endif
      +00023 
      +00024 namespace glm{
      +00025 namespace gtx{
      +00026 namespace associated_min_max 
      +00027 {
      +00030 
      +00032         template<typename genTypeT, typename genTypeU>
      +00033         genTypeU associatedMin(
      +00034                 const genTypeT& x, const genTypeU& a, 
      +00035                 const genTypeT& y, const genTypeU& b);
      +00036 
      +00038         template<typename genTypeT, typename genTypeU>
      +00039         genTypeU associatedMin(
      +00040                 const genTypeT& x, const genTypeU& a, 
      +00041                 const genTypeT& y, const genTypeU& b, 
      +00042                 const genTypeT& z, const genTypeU& c);
      +00043 
      +00045         template<typename genTypeT, typename genTypeU>
      +00046         genTypeU associatedMin(
      +00047                 const genTypeT& x, const genTypeU& a, 
      +00048                 const genTypeT& y, const genTypeU& b, 
      +00049                 const genTypeT& z, const genTypeU& c, 
      +00050                 const genTypeT& w, const genTypeU& d);
      +00051 
      +00053         template<typename genTypeT, typename genTypeU>
      +00054         genTypeU associatedMax(
      +00055                 const genTypeT& x, const genTypeU& a, 
      +00056                 const genTypeT& y, const genTypeU& b);
      +00057 
      +00059         template<typename genTypeT, typename genTypeU>
      +00060         genTypeU associatedMax(
      +00061                 const genTypeT& x, const genTypeU& a, 
      +00062                 const genTypeT& y, const genTypeU& b, 
      +00063                 const genTypeT& z, const genTypeU& c);
      +00064 
      +00066         template<typename genTypeT, typename genTypeU>
      +00067         genTypeU associatedMax(
      +00068                 const genTypeT& x, const genTypeU& a, 
      +00069                 const genTypeT& y, const genTypeU& b, 
      +00070                 const genTypeT& z, const genTypeU& c, 
      +00071                 const genTypeT& w, const genTypeU& d);
      +00072 
      +00074 } //namespace associated_min_max
      +00075 } //namespace gtx
      +00076 } //namespace glm
      +00077 
      +00078 #include "associated_min_max.inl"
      +00079 
      +00080 namespace glm{using namespace gtx::associated_min_max;}
      +00081 
      +00082 #endif//glm_gtx_associated_min_max
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00027_source.html b/doc/api-0.9.2/a00027_source.html new file mode 100644 index 00000000..d2e0fc99 --- /dev/null +++ b/doc/api-0.9.2/a00027_source.html @@ -0,0 +1,122 @@ + + + + +bit.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      bit.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-03-14
      +00005 // Updated : 2008-11-14
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/bit.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTC_half_float
      +00013 
      +00014 #ifndef glm_gtx_bit
      +00015 #define glm_gtx_bit
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 #include "../gtc/half_float.hpp"
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00022 #       pragma message("GLM: GLM_GTX_bit extension included")
      +00023 #endif
      +00024 
      +00025 namespace glm{
      +00026 namespace gtx{
      +00027 namespace bit 
      +00028 {
      +00029         using namespace gtc::half_float;
      +00030 
      +00033 
      +00036         template <typename genIType>
      +00037         genIType mask(genIType const & count);
      +00038 
      +00042         template <typename genIUType, typename sizeType>
      +00043         genIUType extractField(
      +00044                 genIUType const & v, 
      +00045                 sizeType const & first, 
      +00046                 sizeType const & count);
      +00047 
      +00050         template <typename genType> 
      +00051         int lowestBit(genType const & value);
      +00052 
      +00055         template <typename genType> 
      +00056         int highestBit(genType const & value);
      +00057 
      +00060         template <typename genType> 
      +00061         genType highestBitValue(genType const & value);
      +00062 
      +00065         template <typename genType> 
      +00066         bool isPowerOfTwo(genType const & value);
      +00067 
      +00070         template <typename genType> 
      +00071         genType powerOfTwoAbove(genType const & value);
      +00072 
      +00075         template <typename genType> 
      +00076         genType powerOfTwoBelow(genType const & value);
      +00077 
      +00080         template <typename genType> 
      +00081         genType powerOfTwoNearest(genType const & value);
      +00082 
      +00085         template <typename genType> 
      +00086         genType bitRevert(genType const & value);
      +00087 
      +00090         template <typename genType>
      +00091         genType bitRotateRight(genType const & In, std::size_t Shift);
      +00092 
      +00095         template <typename genType>
      +00096         genType bitRotateLeft(genType const & In, std::size_t Shift);
      +00097 
      +00099 }//namespace bit
      +00100 }//namespace gtx
      +00101 }//namespace glm
      +00102 
      +00103 #include "bit.inl"
      +00104 
      +00105 namespace glm{using namespace gtx::bit;}
      +00106 
      +00107 #endif//glm_gtx_bit
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00028_source.html b/doc/api-0.9.2/a00028_source.html new file mode 100644 index 00000000..128949f4 --- /dev/null +++ b/doc/api-0.9.2/a00028_source.html @@ -0,0 +1,85 @@ + + + + +closest_point.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      closest_point.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-30
      +00005 // Updated : 2008-10-05
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/closest_point.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_closest_point
      +00014 #define glm_gtx_closest_point
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_closest_point extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace closest_point 
      +00026 {
      +00029 
      +00032         template <typename T> 
      +00033         detail::tvec3<T> closestPointOnLine(
      +00034                 detail::tvec3<T> const & point, 
      +00035                 detail::tvec3<T> const & a, 
      +00036                 detail::tvec3<T> const & b);
      +00037 
      +00039 }// namespace closest_point
      +00040 }// namespace gtx
      +00041 }// namespace glm
      +00042 
      +00043 #include "closest_point.inl"
      +00044 
      +00045 namespace glm{using namespace gtx::closest_point;}
      +00046 
      +00047 #endif//glm_gtx_closest_point
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00029_source.html b/doc/api-0.9.2/a00029_source.html new file mode 100644 index 00000000..5d7c0a28 --- /dev/null +++ b/doc/api-0.9.2/a00029_source.html @@ -0,0 +1,143 @@ + + + + +color_cast.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      color_cast.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-06-21
      +00005 // Updated : 2009-06-05
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/color_cast.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_number_precision
      +00013 
      +00014 #ifndef glm_gtx_color_cast
      +00015 #define glm_gtx_color_cast
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 #include "../gtx/number_precision.hpp"
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00022 #       pragma message("GLM: GLM_GTX_color_cast extension included")
      +00023 #endif
      +00024 
      +00025 namespace glm{
      +00026 namespace gtx{
      +00027 namespace color_cast 
      +00028 {
      +00029         using namespace gtx::number_precision;
      +00030 
      +00033 
      +00036         template <typename valType> gtc::type_precision::uint8 u8channel_cast(valType a);
      +00037 
      +00040         template <typename valType>     gtc::type_precision::uint16 u16channel_cast(valType a);
      +00041 
      +00042         template <typename T> gtc::type_precision::uint32 u32_rgbx_cast(const detail::tvec3<T>& c);             
      +00043         template <typename T> gtc::type_precision::uint32 u32_xrgb_cast(const detail::tvec3<T>& c);             
      +00044         template <typename T> gtc::type_precision::uint32 u32_bgrx_cast(const detail::tvec3<T>& c);             
      +00045         template <typename T> gtc::type_precision::uint32 u32_xbgr_cast(const detail::tvec3<T>& c);             
      +00046 
      +00047         template <typename T> gtc::type_precision::uint32 u32_rgba_cast(const detail::tvec4<T>& c);             
      +00048         template <typename T> gtc::type_precision::uint32 u32_argb_cast(const detail::tvec4<T>& c);             
      +00049         template <typename T> gtc::type_precision::uint32 u32_bgra_cast(const detail::tvec4<T>& c);             
      +00050         template <typename T> gtc::type_precision::uint32 u32_abgr_cast(const detail::tvec4<T>& c);             
      +00051 
      +00052         template <typename T> gtc::type_precision::uint64 u64_rgbx_cast(const detail::tvec3<T>& c);             
      +00053         template <typename T> gtc::type_precision::uint64 u64_xrgb_cast(const detail::tvec3<T>& c);             
      +00054         template <typename T> gtc::type_precision::uint64 u64_bgrx_cast(const detail::tvec3<T>& c);             
      +00055         template <typename T> gtc::type_precision::uint64 u64_xbgr_cast(const detail::tvec3<T>& c);             
      +00056 
      +00057         template <typename T> gtc::type_precision::uint64 u64_rgba_cast(const detail::tvec4<T>& c);             
      +00058         template <typename T> gtc::type_precision::uint64 u64_argb_cast(const detail::tvec4<T>& c);             
      +00059         template <typename T> gtc::type_precision::uint64 u64_bgra_cast(const detail::tvec4<T>& c);             
      +00060         template <typename T> gtc::type_precision::uint64 u64_abgr_cast(const detail::tvec4<T>& c);             
      +00061 
      +00062         template <typename T> gtx::number_precision::f16vec1 f16_channel_cast(T a);     
      +00063 
      +00064         template <typename T> gtc::type_precision::f16vec3 f16_rgbx_cast(T c);          
      +00065         template <typename T> gtc::type_precision::f16vec3 f16_xrgb_cast(T c);          
      +00066         template <typename T> gtc::type_precision::f16vec3 f16_bgrx_cast(T c);          
      +00067         template <typename T> gtc::type_precision::f16vec3 f16_xbgr_cast(T c);          
      +00068 
      +00069         template <typename T> gtc::type_precision::f16vec4 f16_rgba_cast(T c);          
      +00070         template <typename T> gtc::type_precision::f16vec4 f16_argb_cast(T c);          
      +00071         template <typename T> gtc::type_precision::f16vec4 f16_bgra_cast(T c);          
      +00072         template <typename T> gtc::type_precision::f16vec4 f16_abgr_cast(T c);          
      +00073 
      +00074         template <typename T> gtx::number_precision::f32vec1 f32_channel_cast(T a);     
      +00075 
      +00076         template <typename T> gtc::type_precision::f32vec3 f32_rgbx_cast(T c);          
      +00077         template <typename T> gtc::type_precision::f32vec3 f32_xrgb_cast(T c);          
      +00078         template <typename T> gtc::type_precision::f32vec3 f32_bgrx_cast(T c);          
      +00079         template <typename T> gtc::type_precision::f32vec3 f32_xbgr_cast(T c);          
      +00080 
      +00081         template <typename T> gtc::type_precision::f32vec4 f32_rgba_cast(T c);          
      +00082         template <typename T> gtc::type_precision::f32vec4 f32_argb_cast(T c);          
      +00083         template <typename T> gtc::type_precision::f32vec4 f32_bgra_cast(T c);          
      +00084         template <typename T> gtc::type_precision::f32vec4 f32_abgr_cast(T c);          
      +00085 
      +00086         template <typename T> gtx::number_precision::f64vec1 f64_channel_cast(T a);     
      +00087 
      +00088         template <typename T> gtc::type_precision::f64vec3 f64_rgbx_cast(T c);          
      +00089         template <typename T> gtc::type_precision::f64vec3 f64_xrgb_cast(T c);          
      +00090         template <typename T> gtc::type_precision::f64vec3 f64_bgrx_cast(T c);          
      +00091         template <typename T> gtc::type_precision::f64vec3 f64_xbgr_cast(T c);          
      +00092 
      +00093         template <typename T> gtc::type_precision::f64vec4 f64_rgba_cast(T c);          
      +00094         template <typename T> gtc::type_precision::f64vec4 f64_argb_cast(T c);          
      +00095         template <typename T> gtc::type_precision::f64vec4 f64_bgra_cast(T c);          
      +00096         template <typename T> gtc::type_precision::f64vec4 f64_abgr_cast(T c);          
      +00097 
      +00099 }//namespace color_space
      +00100 }//namespace gtx
      +00101 }//namespace glm
      +00102 
      +00103 #include "color_cast.inl"
      +00104 
      +00105 namespace glm{using namespace gtx::color_cast;}
      +00106 
      +00107 #endif//glm_gtx_color_cast
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00030_source.html b/doc/api-0.9.2/a00030_source.html new file mode 100644 index 00000000..96acf809 --- /dev/null +++ b/doc/api-0.9.2/a00030_source.html @@ -0,0 +1,105 @@ + + + + +color_space.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      color_space.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2007-02-22
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/color_space.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_color_space
      +00014 #define glm_gtx_color_space
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_color_space extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace color_space 
      +00026 {
      +00029 
      +00032     template <typename valType> 
      +00033         detail::tvec3<valType> rgbColor(
      +00034                 detail::tvec3<valType> const & hsvValue);
      +00035 
      +00038     template <typename valType> 
      +00039         detail::tvec3<valType> hsvColor(
      +00040                 detail::tvec3<valType> const & rgbValue);
      +00041                 
      +00044     template <typename valType> 
      +00045         detail::tmat4x4<valType> saturation(
      +00046                 valType const s);
      +00047 
      +00050         template <typename valType> 
      +00051         detail::tvec3<valType> saturation(
      +00052                 valType const s, 
      +00053                 detail::tvec3<valType> const & color);
      +00054                 
      +00057     template <typename valType> 
      +00058         detail::tvec4<valType> saturation(
      +00059                 valType const s, 
      +00060                 detail::tvec4<valType> const & color);
      +00061                 
      +00064         template <typename valType> 
      +00065         valType luminosity(
      +00066                 detail::tvec3<valType> const & color);
      +00067 
      +00069 }//namespace color_space
      +00070 }//namespace gtx
      +00071 }//namespace glm
      +00072 
      +00073 #include "color_space.inl"
      +00074 
      +00075 namespace glm{using namespace gtx::color_space;}
      +00076 
      +00077 #endif//glm_gtx_color_space
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00031_source.html b/doc/api-0.9.2/a00031_source.html new file mode 100644 index 00000000..90be3308 --- /dev/null +++ b/doc/api-0.9.2/a00031_source.html @@ -0,0 +1,95 @@ + + + + +color_space_YCoCg.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      color_space_YCoCg.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-10-28
      +00005 // Updated : 2008-10-28
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/color_space_YCoCg.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_color_space_YCoCg
      +00014 #define glm_gtx_color_space_YCoCg
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_color_space_YCoCg extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace color_space_YCoCg 
      +00026 {
      +00029 
      +00032         template <typename valType> 
      +00033         detail::tvec3<valType> rgb2YCoCg(
      +00034                 detail::tvec3<valType> const & rgbColor);
      +00035 
      +00038     template <typename valType> 
      +00039         detail::tvec3<valType> YCoCg2rgb(
      +00040                 detail::tvec3<valType> const & YCoCgColor);
      +00041 
      +00045         template <typename valType> 
      +00046         detail::tvec3<valType> rgb2YCoCgR(
      +00047                 detail::tvec3<valType> const & rgbColor);
      +00048 
      +00052     template <typename valType> 
      +00053         detail::tvec3<valType> YCoCgR2rgb(
      +00054                 detail::tvec3<valType> const & YCoCgColor);
      +00055 
      +00057 }//namespace color_space_YCoCg
      +00058 }//namespace gtx
      +00059 }//namespace glm
      +00060 
      +00061 #include "color_space_YCoCg.inl"
      +00062 
      +00063 namespace glm{using namespace gtx::color_space_YCoCg;}
      +00064 
      +00065 #endif//glm_gtx_color_space_YCoCg
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00032_source.html b/doc/api-0.9.2/a00032_source.html new file mode 100644 index 00000000..0cfc9880 --- /dev/null +++ b/doc/api-0.9.2/a00032_source.html @@ -0,0 +1,210 @@ + + + + +compatibility.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      compatibility.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-01-24
      +00005 // Updated : 2008-10-24
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/compatibility.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTC_half_float
      +00013 
      +00014 #ifndef glm_gtx_compatibility
      +00015 #define glm_gtx_compatibility
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"  
      +00019 #include "../gtc/half_float.hpp"
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00022 #       pragma message("GLM: GLM_GTX_compatibility extension included")
      +00023 #endif
      +00024 
      +00025 #if(GLM_COMPILER & GLM_COMPILER_VC)
      +00026 #include <cfloat>
      +00027 #elif(GLM_COMPILER & GLM_COMPILER_GCC)
      +00028 #include <cmath>
      +00029 #endif//GLM_COMPILER
      +00030 
      +00031 namespace glm{
      +00032 namespace gtx{
      +00033 namespace compatibility 
      +00034 {
      +00037 
      +00038         template <typename T> GLM_FUNC_QUALIFIER T lerp(T x, T y, T a){return mix(x, y, a);}                                                                                                                                                                    
      +00039         template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> lerp(const detail::tvec2<T>& x, const detail::tvec2<T>& y, T a){return mix(x, y, a);}                                                 
      +00040         template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> lerp(const detail::tvec3<T>& x, const detail::tvec3<T>& y, T a){return mix(x, y, a);}                                                 
      +00041         template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> lerp(const detail::tvec4<T>& x, const detail::tvec4<T>& y, T a){return mix(x, y, a);}                                                 
      +00042         template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> lerp(const detail::tvec2<T>& x, const detail::tvec2<T>& y, const detail::tvec2<T>& a){return mix(x, y, a);}   
      +00043         template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> lerp(const detail::tvec3<T>& x, const detail::tvec3<T>& y, const detail::tvec3<T>& a){return mix(x, y, a);}   
      +00044         template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> lerp(const detail::tvec4<T>& x, const detail::tvec4<T>& y, const detail::tvec4<T>& a){return mix(x, y, a);}   
      +00045 
      +00046         template <typename T> GLM_FUNC_QUALIFIER T saturate(T x){return clamp(x, T(0), T(1));}                                                                                                          
      +00047         template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> saturate(const detail::tvec2<T>& x){return clamp(x, T(0), T(1));}                                     
      +00048         template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> saturate(const detail::tvec3<T>& x){return clamp(x, T(0), T(1));}                                     
      +00049         template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> saturate(const detail::tvec4<T>& x){return clamp(x, T(0), T(1));}                                     
      +00050 
      +00051         template <typename T> GLM_FUNC_QUALIFIER T atan2(T x, T y){return atan(x, y);}                                                                                                                          
      +00052         template <typename T> GLM_FUNC_QUALIFIER detail::tvec2<T> atan2(const detail::tvec2<T>& x, const detail::tvec2<T>& y){return atan(x, y);}       
      +00053         template <typename T> GLM_FUNC_QUALIFIER detail::tvec3<T> atan2(const detail::tvec3<T>& x, const detail::tvec3<T>& y){return atan(x, y);}       
      +00054         template <typename T> GLM_FUNC_QUALIFIER detail::tvec4<T> atan2(const detail::tvec4<T>& x, const detail::tvec4<T>& y){return atan(x, y);}       
      +00055 
      +00056         template <typename genType> bool isfinite(genType const & x);                                                                                   
      +00057         template <typename valType> detail::tvec2<bool> isfinite(const detail::tvec2<valType>& x);                              
      +00058         template <typename valType> detail::tvec3<bool> isfinite(const detail::tvec3<valType>& x);                              
      +00059         template <typename valType> detail::tvec4<bool> isfinite(const detail::tvec4<valType>& x);                              
      +00060 
      +00061         template <typename genType> bool isinf(genType const & x);                                                                                                              
      +00062         template <typename genType> detail::tvec2<bool> isinf(const detail::tvec2<genType>& x);                                 
      +00063         template <typename genType> detail::tvec3<bool> isinf(const detail::tvec3<genType>& x);                                 
      +00064         template <typename genType> detail::tvec4<bool> isinf(const detail::tvec4<genType>& x);                                 
      +00065 
      +00066         template <typename genType> bool isnan(genType const & x);                                                                                                              
      +00067         template <typename genType> detail::tvec2<bool> isnan(const detail::tvec2<genType>& x);                                 
      +00068         template <typename genType> detail::tvec3<bool> isnan(const detail::tvec3<genType>& x);                                 
      +00069         template <typename genType> detail::tvec4<bool> isnan(const detail::tvec4<genType>& x);                                 
      +00070 
      +00071         typedef bool                                            bool1;                  
      +00072         typedef detail::tvec2<bool>                     bool2;                  
      +00073         typedef detail::tvec3<bool>                     bool3;                  
      +00074         typedef detail::tvec4<bool>                     bool4;                  
      +00075 
      +00076         typedef bool                                            bool1x1;                
      +00077         typedef detail::tmat2x2<bool>           bool2x2;                
      +00078         typedef detail::tmat2x3<bool>           bool2x3;                
      +00079         typedef detail::tmat2x4<bool>           bool2x4;                
      +00080         typedef detail::tmat3x2<bool>           bool3x2;                
      +00081         typedef detail::tmat3x3<bool>           bool3x3;                
      +00082         typedef detail::tmat3x4<bool>           bool3x4;                
      +00083         typedef detail::tmat4x2<bool>           bool4x2;                
      +00084         typedef detail::tmat4x3<bool>           bool4x3;                
      +00085         typedef detail::tmat4x4<bool>           bool4x4;                
      +00086 
      +00087         typedef int                                                     int1;                   
      +00088         typedef detail::tvec2<int>                      int2;                   
      +00089         typedef detail::tvec3<int>                      int3;                   
      +00090         typedef detail::tvec4<int>                      int4;                   
      +00091 
      +00092         typedef int                                                     int1x1;                 
      +00093         typedef detail::tmat2x2<int>            int2x2;                 
      +00094         typedef detail::tmat2x3<int>            int2x3;                 
      +00095         typedef detail::tmat2x4<int>            int2x4;                 
      +00096         typedef detail::tmat3x2<int>            int3x2;                 
      +00097         typedef detail::tmat3x3<int>            int3x3;                 
      +00098         typedef detail::tmat3x4<int>            int3x4;                 
      +00099         typedef detail::tmat4x2<int>            int4x2;                 
      +00100         typedef detail::tmat4x3<int>            int4x3;                 
      +00101         typedef detail::tmat4x4<int>            int4x4;                 
      +00102 
      +00103         typedef gtc::half_float::half                                           half1;                  
      +00104         typedef detail::tvec2<gtc::half_float::half>            half2;                  
      +00105         typedef detail::tvec3<gtc::half_float::half>            half3;                  
      +00106         typedef detail::tvec4<gtc::half_float::half>            half4;                  
      +00107 
      +00108         typedef gtc::half_float::half                                           half1x1;                
      +00109         typedef detail::tmat2x2<gtc::half_float::half>          half2x2;                
      +00110         typedef detail::tmat2x3<gtc::half_float::half>          half2x3;                
      +00111         typedef detail::tmat2x4<gtc::half_float::half>          half2x4;                
      +00112         typedef detail::tmat3x2<gtc::half_float::half>          half3x2;                
      +00113         typedef detail::tmat3x3<gtc::half_float::half>          half3x3;                
      +00114         typedef detail::tmat3x4<gtc::half_float::half>          half3x4;                
      +00115         typedef detail::tmat4x2<gtc::half_float::half>          half4x2;                
      +00116         typedef detail::tmat4x3<gtc::half_float::half>          half4x3;                
      +00117         typedef detail::tmat4x4<gtc::half_float::half>          half4x4;                
      +00118 
      +00119         typedef float                                           float1;                 
      +00120         typedef detail::tvec2<float>            float2;                 
      +00121         typedef detail::tvec3<float>            float3;                 
      +00122         typedef detail::tvec4<float>            float4;                 
      +00123 
      +00124         typedef float                                           float1x1;               
      +00125         typedef detail::tmat2x2<float>          float2x2;               
      +00126         typedef detail::tmat2x3<float>          float2x3;               
      +00127         typedef detail::tmat2x4<float>          float2x4;               
      +00128         typedef detail::tmat3x2<float>          float3x2;               
      +00129         typedef detail::tmat3x3<float>          float3x3;               
      +00130         typedef detail::tmat3x4<float>          float3x4;               
      +00131         typedef detail::tmat4x2<float>          float4x2;               
      +00132         typedef detail::tmat4x3<float>          float4x3;               
      +00133         typedef detail::tmat4x4<float>          float4x4;               
      +00134 
      +00135         typedef double                                          double1;                
      +00136         typedef detail::tvec2<double>           double2;                
      +00137         typedef detail::tvec3<double>           double3;                
      +00138         typedef detail::tvec4<double>           double4;                
      +00139 
      +00140         typedef double                                          double1x1;              
      +00141         typedef detail::tmat2x2<double>         double2x2;              
      +00142         typedef detail::tmat2x3<double>         double2x3;              
      +00143         typedef detail::tmat2x4<double>         double2x4;              
      +00144         typedef detail::tmat3x2<double>         double3x2;              
      +00145         typedef detail::tmat3x3<double>         double3x3;              
      +00146         typedef detail::tmat3x4<double>         double3x4;              
      +00147         typedef detail::tmat4x2<double>         double4x2;              
      +00148         typedef detail::tmat4x3<double>         double4x3;              
      +00149         typedef detail::tmat4x4<double>         double4x4;              
      +00150 
      +00152 }//namespace compatibility
      +00153 }//namespace gtx
      +00154 }//namespace glm
      +00155 
      +00156 #include "compatibility.inl"
      +00157 
      +00158 namespace glm{using namespace gtx::compatibility;}
      +00159 
      +00160 #endif//glm_gtx_compatibility
      +00161 
      +00162 
      +00163 
      +00164 
      +00165 
      +00166 
      +00167 
      +00168 
      +00169 
      +00170 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00033_source.html b/doc/api-0.9.2/a00033_source.html new file mode 100644 index 00000000..eb00e7d3 --- /dev/null +++ b/doc/api-0.9.2/a00033_source.html @@ -0,0 +1,95 @@ + + + + +component_wise.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      component_wise.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-05-21
      +00005 // Updated : 2007-05-21
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/component_wise.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_component_wise
      +00014 #define glm_gtx_component_wise
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_component_wise extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace component_wise 
      +00026 {
      +00029 
      +00032         template <typename genType> 
      +00033         typename genType::value_type compAdd(
      +00034                 genType const & v);
      +00035 
      +00038         template <typename genType> 
      +00039         typename genType::value_type compMul(
      +00040                 genType const & v);
      +00041 
      +00044         template <typename genType> 
      +00045         typename genType::value_type compMin(
      +00046                 genType const & v);
      +00047 
      +00050         template <typename genType> 
      +00051         typename genType::value_type compMax(
      +00052                 genType const & v);
      +00053 
      +00055 }//namespace component_wise
      +00056 }//namespace gtx
      +00057 }//namespace glm
      +00058 
      +00059 #include "component_wise.inl"
      +00060 
      +00061 namespace glm{using namespace gtx::component_wise;}
      +00062 
      +00063 #endif//glm_gtx_component_wise
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00034_source.html b/doc/api-0.9.2/a00034_source.html new file mode 100644 index 00000000..bdad3d3a --- /dev/null +++ b/doc/api-0.9.2/a00034_source.html @@ -0,0 +1,47 @@ + + + + +coreModules.doxy Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      coreModules.doxy
      +
      +
      +
      00001 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00035_source.html b/doc/api-0.9.2/a00035_source.html new file mode 100644 index 00000000..afd6108e --- /dev/null +++ b/doc/api-0.9.2/a00035_source.html @@ -0,0 +1,95 @@ + + + + +epsilon.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      epsilon.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2006-11-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/epsilon.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTC_half_float
      +00012 // - GLM_GTC_quaternion
      +00014 
      +00015 #ifndef glm_gtx_epsilon
      +00016 #define glm_gtx_epsilon
      +00017 
      +00018 // Dependency:
      +00019 #include "../glm.hpp"
      +00020 #include "../gtc/half_float.hpp"
      +00021 #include "../gtc/quaternion.hpp"
      +00022 
      +00023 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00024 #       pragma message("GLM: GLM_GTX_epsilon extension included")
      +00025 #endif
      +00026 
      +00027 namespace glm{
      +00028 namespace gtx{
      +00029 namespace epsilon 
      +00030 {
      +00033 
      +00036         template <typename genTypeT, typename genTypeU> 
      +00037         bool equalEpsilon(
      +00038                 genTypeT const & x, 
      +00039                 genTypeT const & y, 
      +00040                 genTypeU const & epsilon);
      +00041                 
      +00044         template <typename genTypeT, typename genTypeU>
      +00045         bool notEqualEpsilon(
      +00046                 genTypeT const & x, 
      +00047                 genTypeT const & y, 
      +00048                 genTypeU const & epsilon);
      +00049 
      +00051 }//namespace epsilon
      +00052 }//namespace gtx
      +00053 }//namespace glm
      +00054 
      +00055 #include "epsilon.inl"
      +00056 
      +00057 namespace glm{using namespace gtx::epsilon;}
      +00058 
      +00059 #endif//glm_gtx_epsilon
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00036_source.html b/doc/api-0.9.2/a00036_source.html new file mode 100644 index 00000000..8c1aa435 --- /dev/null +++ b/doc/api-0.9.2/a00036_source.html @@ -0,0 +1,150 @@ + + + + +euler_angles.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      euler_angles.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2007-08-14
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/euler_angles.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTC_half_float
      +00013 // ToDo:
      +00014 // - mat2 mat2GTX(const vec2& angles) undefined
      +00015 // - mat3 mat3GTX(const vec2& angles) undefined
      +00017 
      +00018 #ifndef glm_gtx_euler_angles
      +00019 #define glm_gtx_euler_angles
      +00020 
      +00021 // Dependency:
      +00022 #include "../glm.hpp"
      +00023 #include "../gtc/half_float.hpp"
      +00024 
      +00025 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00026 #       pragma message("GLM: GLM_GTX_euler_angles extension included")
      +00027 #endif
      +00028 
      +00029 namespace glm{
      +00030 namespace gtx{
      +00031 namespace euler_angles 
      +00032 {
      +00035 
      +00038         template <typename valType> 
      +00039         detail::tmat4x4<valType> eulerAngleX(
      +00040                 valType const & angleX);
      +00041 
      +00044         template <typename valType> 
      +00045         detail::tmat4x4<valType> eulerAngleY(
      +00046                 valType const & angleY);
      +00047 
      +00050         template <typename valType> 
      +00051         detail::tmat4x4<valType> eulerAngleZ(
      +00052                 valType const & angleZ);
      +00053 
      +00056         template <typename valType> 
      +00057         detail::tmat4x4<valType> eulerAngleXY(
      +00058                 valType const & angleX, 
      +00059                 valType const & angleY);
      +00060 
      +00063         template <typename valType> 
      +00064         detail::tmat4x4<valType> eulerAngleYX(
      +00065                 valType const & angleY, 
      +00066                 valType const & angleX);
      +00067 
      +00070         template <typename valType> 
      +00071         detail::tmat4x4<valType> eulerAngleXZ(
      +00072                 valType const & angleX, 
      +00073                 valType const & angleZ);
      +00074 
      +00077         template <typename valType> 
      +00078         detail::tmat4x4<valType> eulerAngleZX(
      +00079                 valType const & angleZ, 
      +00080                 valType const & angleX);
      +00081 
      +00084         template <typename valType> 
      +00085         detail::tmat4x4<valType> eulerAngleYZ(
      +00086                 valType const & angleY, 
      +00087                 valType const & angleZ);
      +00088 
      +00091         template <typename valType> 
      +00092         detail::tmat4x4<valType> eulerAngleZY(
      +00093                 valType const & angleZ, 
      +00094                 valType const & angleY);
      +00095 
      +00098         template <typename valType> 
      +00099         detail::tmat4x4<valType> eulerAngleYXZ(
      +00100                 valType const & yaw, 
      +00101                 valType const & pitch, 
      +00102                 valType const & roll);
      +00103 
      +00106         template <typename valType> 
      +00107         detail::tmat4x4<valType> yawPitchRoll(
      +00108                 valType const & yaw, 
      +00109                 valType const & pitch, 
      +00110                 valType const & roll);
      +00111 
      +00114         template <typename T> 
      +00115         detail::tmat2x2<T> orientate2(T const & angle);
      +00116 
      +00119         template <typename T> 
      +00120         detail::tmat3x3<T> orientate3(T const & angle);
      +00121 
      +00124         template <typename T> 
      +00125         detail::tmat3x3<T> orientate3(detail::tvec3<T> const & angles);
      +00126                 
      +00129         template <typename T> 
      +00130         detail::tmat4x4<T> orientate4(detail::tvec3<T> const & angles);
      +00131 
      +00133 }//namespace euler_angles
      +00134 }//namespace gtx
      +00135 }//namespace glm
      +00136 
      +00137 #include "euler_angles.inl"
      +00138 
      +00139 namespace glm{using namespace gtx::euler_angles;}
      +00140 
      +00141 #endif//glm_gtx_euler_angles
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00037_source.html b/doc/api-0.9.2/a00037_source.html new file mode 100644 index 00000000..95525696 --- /dev/null +++ b/doc/api-0.9.2/a00037_source.html @@ -0,0 +1,141 @@ + + + + +ext.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      ext.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-05-01
      +00005 // Updated : 2010-12-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/ext.hpp
      +00009 
      +00010 #ifndef glm_ext
      +00011 #define glm_ext
      +00012 
      +00013 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_EXT_INCLUDED_DISPLAYED))
      +00014 #       define GLM_MESSAGE_EXT_INCLUDED_DISPLAYED
      +00015 #       pragma message("GLM: All extensions included (not recommanded)")
      +00016 #endif//GLM_MESSAGES
      +00017 
      +00018 #include "./gtc/half_float.hpp"
      +00019 #include "./gtc/matrix_access.hpp"
      +00020 #include "./gtc/matrix_integer.hpp"
      +00021 #include "./gtc/matrix_inverse.hpp"
      +00022 #include "./gtc/matrix_transform.hpp"
      +00023 #include "./gtc/quaternion.hpp"
      +00024 #include "./gtc/swizzle.hpp"
      +00025 #include "./gtc/type_precision.hpp"
      +00026 #include "./gtc/type_ptr.hpp"
      +00027 
      +00028 #include "./gtx/associated_min_max.hpp"
      +00029 #include "./gtx/bit.hpp"
      +00030 #include "./gtx/closest_point.hpp"
      +00031 #include "./gtx/color_cast.hpp"
      +00032 #include "./gtx/color_space.hpp"
      +00033 #include "./gtx/color_space_YCoCg.hpp"
      +00034 #include "./gtx/compatibility.hpp"
      +00035 #include "./gtx/component_wise.hpp"
      +00036 #include "./gtx/epsilon.hpp"
      +00037 #include "./gtx/euler_angles.hpp"
      +00038 #include "./gtx/extend.hpp"
      +00039 #include "./gtx/extented_min_max.hpp"
      +00040 #include "./gtx/fast_exponential.hpp"
      +00041 #include "./gtx/fast_square_root.hpp"
      +00042 #include "./gtx/fast_trigonometry.hpp"
      +00043 #include "./gtx/gradient_paint.hpp"
      +00044 #include "./gtx/handed_coordinate_space.hpp"
      +00045 #include "./gtx/inertia.hpp"
      +00046 #include "./gtx/int_10_10_10_2.hpp"
      +00047 #include "./gtx/integer.hpp"
      +00048 #include "./gtx/intersect.hpp"
      +00049 #include "./gtx/log_base.hpp"
      +00050 #include "./gtx/matrix_cross_product.hpp"
      +00051 #include "./gtx/matrix_interpolation.hpp"
      +00052 #include "./gtx/matrix_major_storage.hpp"
      +00053 #include "./gtx/matrix_operation.hpp"
      +00054 #include "./gtx/matrix_query.hpp"
      +00055 #include "./gtx/mixed_product.hpp"
      +00056 #include "./gtx/multiple.hpp"
      +00057 #include "./gtx/noise.hpp"
      +00058 #include "./gtx/norm.hpp"
      +00059 #include "./gtx/normal.hpp"
      +00060 #include "./gtx/normalize_dot.hpp"
      +00061 #include "./gtx/number_precision.hpp"
      +00062 #include "./gtx/ocl_type.hpp"
      +00063 #include "./gtx/optimum_pow.hpp"
      +00064 #include "./gtx/orthonormalize.hpp"
      +00065 #include "./gtx/perpendicular.hpp"
      +00066 #include "./gtx/polar_coordinates.hpp"
      +00067 #include "./gtx/projection.hpp"
      +00068 #include "./gtx/quaternion.hpp"
      +00069 #include "./gtx/random.hpp"
      +00070 #include "./gtx/raw_data.hpp"
      +00071 #include "./gtx/reciprocal.hpp"
      +00072 #include "./gtx/rotate_vector.hpp"
      +00073 #include "./gtx/spline.hpp"
      +00074 #include "./gtx/std_based_type.hpp"
      +00075 #include "./gtx/string_cast.hpp"
      +00076 #include "./gtx/transform.hpp"
      +00077 #include "./gtx/transform2.hpp"
      +00078 #include "./gtx/ulp.hpp"
      +00079 #include "./gtx/unsigned_int.hpp"
      +00080 #include "./gtx/vec1.hpp"
      +00081 #include "./gtx/vector_access.hpp"
      +00082 #include "./gtx/vector_angle.hpp"
      +00083 #include "./gtx/vector_query.hpp"
      +00084 #include "./gtx/verbose_operator.hpp"
      +00085 #include "./gtx/wrap.hpp"
      +00086 
      +00087 #if(GLM_ARCH & GLM_ARCH_SSE2)
      +00088 #       include "./gtx/simd_vec4.hpp"
      +00089 #       include "./gtx/simd_mat4.hpp"
      +00090 #endif
      +00091 
      +00092 #include "./virtrev/xstream.hpp"
      +00093 
      +00094 //const float goldenRatio = 1.618033988749894848f;
      +00095 //const float pi = 3.141592653589793238f;
      +00096 
      +00097 #endif //glm_ext
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00038_source.html b/doc/api-0.9.2/a00038_source.html new file mode 100644 index 00000000..97bb3891 --- /dev/null +++ b/doc/api-0.9.2/a00038_source.html @@ -0,0 +1,85 @@ + + + + +extend.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      extend.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-01-07
      +00005 // Updated : 2006-11-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/extend.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_extend
      +00014 #define glm_gtx_extend
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_extend extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace extend 
      +00026 {
      +00029 
      +00032         template <typename genType> 
      +00033         genType extend(
      +00034                 genType const & Origin, 
      +00035                 genType const & Source, 
      +00036                 typename genType::value_type const Length);
      +00037 
      +00039 }//namespace extend
      +00040 }//namespace gtx
      +00041 }//namespace glm
      +00042 
      +00043 #include "extend.inl"
      +00044 
      +00045 namespace glm{using namespace gtx::extend;}
      +00046 
      +00047 #endif//glm_gtx_extend
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00039_source.html b/doc/api-0.9.2/a00039_source.html new file mode 100644 index 00000000..57e652c0 --- /dev/null +++ b/doc/api-0.9.2/a00039_source.html @@ -0,0 +1,215 @@ + + + + +extented_min_max.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      extented_min_max.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-03-14
      +00005 // Updated : 2010-02-19
      +00006 // Licence : This source is under MIT License
      +00007 // File    : gtx_extented_min_max.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_half_float
      +00013 
      +00014 #ifndef glm_gtx_extented_min_max
      +00015 #define glm_gtx_extented_min_max
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 #include "../gtc/half_float.hpp"
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00022 #       pragma message("GLM: GLM_GTX_extented_min_max extension included")
      +00023 #endif
      +00024 
      +00025 namespace glm{
      +00026 namespace gtx{
      +00027 namespace extented_min_max 
      +00028 {
      +00031 
      +00032         //< Return the minimum component-wise values of 3 inputs 
      +00033         //< From GLM_GTX_extented_min_max extension
      +00034         template <typename T>
      +00035         T min(
      +00036                 T const & x, 
      +00037                 T const & y, 
      +00038                 T const & z);
      +00039 
      +00040         //< Return the minimum component-wise values of 3 inputs
      +00041         //< From GLM_GTX_extented_min_max extension
      +00042         template 
      +00043         <
      +00044                 typename T, 
      +00045                 template <typename> class C
      +00046         >
      +00047         C<T> min(
      +00048                 C<T> const & x, 
      +00049                 typename C<T>::value_type const & y, 
      +00050                 typename C<T>::value_type const & z);
      +00051 
      +00052         //< Return the minimum component-wise values of 3 inputs 
      +00053         //< From GLM_GTX_extented_min_max extension
      +00054         template 
      +00055         <
      +00056                 typename T, 
      +00057                 template <typename> class C
      +00058         >
      +00059         C<T> min(
      +00060                 C<T> const & x, 
      +00061                 C<T> const & y, 
      +00062                 C<T> const & z);
      +00063 
      +00064         //< Return the minimum component-wise values of 4 inputs 
      +00065         //< From GLM_GTX_extented_min_max extension
      +00066         template <typename T>
      +00067         T min(
      +00068                 T const & x, 
      +00069                 T const & y, 
      +00070                 T const & z, 
      +00071                 T const & w);
      +00072 
      +00073         //< Return the minimum component-wise values of 4 inputs 
      +00074         //< From GLM_GTX_extented_min_max extension
      +00075         template 
      +00076         <
      +00077                 typename T, 
      +00078                 template <typename> class C
      +00079         >
      +00080         C<T> min(
      +00081                 C<T> const & x, 
      +00082                 typename C<T>::value_type const & y, 
      +00083                 typename C<T>::value_type const & z, 
      +00084                 typename C<T>::value_type const & w);
      +00085 
      +00086         //< Return the minimum component-wise values of 4 inputs
      +00087         //< From GLM_GTX_extented_min_max extension
      +00088         template 
      +00089         <
      +00090                 typename T, 
      +00091                 template <typename> class C
      +00092         >
      +00093         C<T> min(
      +00094                 C<T> const & x, 
      +00095                 C<T> const & y, 
      +00096                 C<T> const & z,
      +00097                 C<T> const & w);
      +00098 
      +00099         //< Return the maximum component-wise values of 3 inputs 
      +00100         //< From GLM_GTX_extented_min_max extension
      +00101         template <typename T>
      +00102         T max(
      +00103                 T const & x, 
      +00104                 T const & y, 
      +00105                 T const & z);
      +00106 
      +00107         //< Return the maximum component-wise values of 3 inputs
      +00108         //< From GLM_GTX_extented_min_max extension
      +00109         template 
      +00110         <
      +00111                 typename T, 
      +00112                 template <typename> class C
      +00113         >
      +00114         C<T> max(
      +00115                 C<T> const & x, 
      +00116                 typename C<T>::value_type const & y, 
      +00117                 typename C<T>::value_type const & z);
      +00118 
      +00119         //< Return the maximum component-wise values of 3 inputs 
      +00120         //< From GLM_GTX_extented_min_max extension
      +00121         template 
      +00122         <
      +00123                 typename T, 
      +00124                 template <typename> class C
      +00125         >
      +00126         C<T> max(
      +00127                 C<T> const & x, 
      +00128                 C<T> const & y, 
      +00129                 C<T> const & z);
      +00130 
      +00131         //< Return the maximum component-wise values of 4 inputs
      +00132         //< From GLM_GTX_extented_min_max extension
      +00133         template <typename T>
      +00134         T max(
      +00135                 T const & x, 
      +00136                 T const & y, 
      +00137                 T const & z, 
      +00138                 T const & w);
      +00139 
      +00140         //< Return the maximum component-wise values of 4 inputs 
      +00141         //< From GLM_GTX_extented_min_max extension
      +00142         template 
      +00143         <
      +00144                 typename T, 
      +00145                 template <typename> class C
      +00146         >
      +00147         C<T> max(
      +00148                 C<T> const & x, 
      +00149                 typename C<T>::value_type const & y, 
      +00150                 typename C<T>::value_type const & z, 
      +00151                 typename C<T>::value_type const & w);
      +00152 
      +00153         //< Return the maximum component-wise values of 4 inputs 
      +00154         //< From GLM_GTX_extented_min_max extension
      +00155         template 
      +00156         <
      +00157                 typename T, 
      +00158                 template <typename> class C
      +00159         >
      +00160         C<T> max(
      +00161                 C<T> const & x, 
      +00162                 C<T> const & y, 
      +00163                 C<T> const & z, 
      +00164                 C<T> const & w);
      +00165 
      +00167 }//namespace extented_min_max
      +00168 }//namespace gtx
      +00169 }//namespace glm
      +00170 
      +00171 #include "extented_min_max.inl"
      +00172 
      +00173 namespace glm{using namespace gtx::extented_min_max;}
      +00174 
      +00175 #endif//glm_gtx_extented_min_max
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00040_source.html b/doc/api-0.9.2/a00040_source.html new file mode 100644 index 00000000..66b84161 --- /dev/null +++ b/doc/api-0.9.2/a00040_source.html @@ -0,0 +1,107 @@ + + + + +fast_exponential.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      fast_exponential.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-01-09
      +00005 // Updated : 2006-11-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/fast_exponential.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTC_half_float
      +00013 
      +00014 #ifndef glm_gtx_fast_exponential
      +00015 #define glm_gtx_fast_exponential
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 #include "../gtc/half_float.hpp"
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00022 #       pragma message("GLM: GLM_GTX_fast_exponential extension included")
      +00023 #endif
      +00024 
      +00025 namespace glm{
      +00026 namespace gtx{
      +00027 namespace fast_exponential 
      +00028 {
      +00029         using namespace gtc::half_float;
      +00032 
      +00035         template <typename valType> 
      +00036         valType fastPow(
      +00037                 valType const & x, 
      +00038                 valType const & y);
      +00039 
      +00042         template <typename T, typename U> 
      +00043         T fastPow(
      +00044                 const T& x, 
      +00045                 const U& y);
      +00046                 
      +00049         template <typename T> 
      +00050         T fastExp(const T& x);
      +00051                 
      +00054         template <typename T> 
      +00055         T fastLog(const T& x);
      +00056 
      +00059         template <typename T> 
      +00060         T fastExp2(const T& x);
      +00061                 
      +00064         template <typename T> 
      +00065         T fastLog2(const T& x);
      +00066 
      +00069         template <typename T> 
      +00070         T fastLn(const T& x);
      +00071 
      +00073 }//namespace fast_exponential
      +00074 }//namespace gtx
      +00075 }//namespace glm
      +00076 
      +00077 #include "fast_exponential.inl"
      +00078 
      +00079 namespace glm{using namespace gtx::fast_exponential;}
      +00080 
      +00081 #endif//glm_gtx_fast_exponential
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00041_source.html b/doc/api-0.9.2/a00041_source.html new file mode 100644 index 00000000..fa31160d --- /dev/null +++ b/doc/api-0.9.2/a00041_source.html @@ -0,0 +1,97 @@ + + + + +fast_square_root.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      fast_square_root.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-01-04
      +00005 // Updated : 2008-10-07
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/fast_square_root.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 // Note:
      +00013 // - Sqrt optimisation based on Newton's method, 
      +00014 // www.gamedev.net/community/forums/topic.asp?topic id=139956
      +00016 
      +00017 #ifndef glm_gtx_fast_square_root
      +00018 #define glm_gtx_fast_square_root
      +00019 
      +00020 // Dependency:
      +00021 #include "../glm.hpp"
      +00022 
      +00023 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00024 #       pragma message("GLM: GLM_GTX_fast_square_root extension included")
      +00025 #endif
      +00026 
      +00027 namespace glm{
      +00028 namespace gtx{
      +00029 namespace fast_square_root      
      +00030 {
      +00033 
      +00036         template <typename genType> 
      +00037         genType fastSqrt(genType const & x);
      +00038 
      +00041         template <typename genType> 
      +00042         genType fastInverseSqrt(genType const & x);
      +00043                 
      +00046         template <typename genType> 
      +00047         typename genType::value_type fastLength(genType const & x);
      +00048 
      +00051         template <typename genType> 
      +00052         typename genType::value_type fastDistance(genType const & x, genType const & y);
      +00053 
      +00056         template <typename genType> 
      +00057         genType fastNormalize(genType const & x);
      +00058 
      +00060 }// namespace fast_square_root
      +00061 }// namespace gtx
      +00062 }// namespace glm
      +00063 
      +00064 #include "fast_square_root.inl"
      +00065 
      +00066 namespace glm{using namespace gtx::fast_square_root;}
      +00067 
      +00068 #endif//glm_gtx_fast_square_root
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00042_source.html b/doc/api-0.9.2/a00042_source.html new file mode 100644 index 00000000..812542aa --- /dev/null +++ b/doc/api-0.9.2/a00042_source.html @@ -0,0 +1,100 @@ + + + + +fast_trigonometry.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      fast_trigonometry.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-01-08
      +00005 // Updated : 2006-11-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/fast_trigonometry.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_fast_trigonometry
      +00014 #define glm_gtx_fast_trigonometry
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_fast_trigonometry extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace fast_trigonometry     
      +00026 {
      +00029 
      +00033     template <typename T> 
      +00034         T fastSin(const T& angle);
      +00035 
      +00039         template <typename T> 
      +00040         T fastCos(const T& angle);
      +00041 
      +00045         template <typename T> 
      +00046         T fastTan(const T& angle);
      +00047 
      +00051         template <typename T> 
      +00052         T fastAsin(const T& angle);
      +00053 
      +00057     template <typename T> 
      +00058         T fastAcos(const T& angle);
      +00059 
      +00063         template <typename T> 
      +00064         T fastAtan(const T& y, const T& x);
      +00065 
      +00069     template <typename T> 
      +00070         T fastAtan(const T& angle);
      +00071 
      +00073 }//namespace fast_trigonometry
      +00074 }//namespace gtx
      +00075 }//namespace glm
      +00076 
      +00077 #include "fast_trigonometry.inl"
      +00078 
      +00079 namespace glm{using namespace gtx::fast_trigonometry;}
      +00080 
      +00081 #endif//glm_gtx_fast_trigonometry
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00043_source.html b/doc/api-0.9.2/a00043_source.html new file mode 100644 index 00000000..713b3b7f --- /dev/null +++ b/doc/api-0.9.2/a00043_source.html @@ -0,0 +1,199 @@ + + + + +func_common.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      func_common.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-03-08
      +00005 // Updated : 2010-01-26
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/func_common.hpp
      +00009 
      +00010 #ifndef glm_core_func_common
      +00011 #define glm_core_func_common
      +00012 
      +00013 #include "_fixes.hpp"
      +00014 
      +00015 namespace glm
      +00016 {
      +00017         namespace core{
      +00018         namespace function{
      +00019         namespace common{ 
      +00020 
      +00023 
      +00028         template <typename genFIType> 
      +00029         genFIType abs(genFIType const & x);
      +00030 
      +00035         template <typename genFIType> 
      +00036         genFIType sign(genFIType const & x);
      +00037 
      +00042         template <typename genType> 
      +00043         genType floor(genType const & x);
      +00044 
      +00050         template <typename genType> 
      +00051         genType trunc(genType const & x);
      +00052 
      +00061         template <typename genType> 
      +00062         genType round(genType const & x);
      +00063 
      +00070         template <typename genType> 
      +00071         genType roundEven(genType const & x);
      +00072 
      +00078     template <typename genType> 
      +00079         genType ceil(genType const & x);
      +00080 
      +00085     template <typename genType> 
      +00086         genType fract(genType const & x);
      +00087 
      +00093     template <typename genType> 
      +00094         genType mod(
      +00095                 genType const & x, 
      +00096                 genType const & y);
      +00097 
      +00103     template <typename genType> 
      +00104         genType mod(
      +00105                 genType const & x, 
      +00106                 typename genType::value_type const & y);
      +00107 
      +00115         template <typename genType> 
      +00116         genType modf(
      +00117                 genType const & x, 
      +00118                 genType & i);
      +00119 
      +00124         template <typename genType> 
      +00125         genType min(
      +00126                 genType const & x, 
      +00127                 genType const & y);
      +00128 
      +00129         template <typename genType> 
      +00130         genType min(
      +00131                 genType const & x, 
      +00132                 typename genType::value_type const & y);
      +00133 
      +00138         template <typename genType> 
      +00139         genType max(
      +00140                 genType const & x, 
      +00141                 genType const & y);
      +00142 
      +00143         template <typename genType> 
      +00144         genType max(
      +00145                 genType const & x, 
      +00146                 typename genType::value_type const & y);
      +00147 
      +00153         template <typename genType> 
      +00154         genType clamp(
      +00155                 genType const & x, 
      +00156                 genType const & minVal, 
      +00157                 genType const & maxVal); 
      +00158 
      +00159         template <typename genType> 
      +00160         genType clamp(
      +00161                 genType const & x, 
      +00162                 typename genType::value_type const & minVal, 
      +00163                 typename genType::value_type const & maxVal); 
      +00164 
      +00189         // \todo Test when 'a' is a boolean.
      +00190         template <typename genTypeT, typename genTypeU> 
      +00191         genTypeT mix(genTypeT const & x, genTypeT const & y, genTypeU const & a);
      +00192 
      +00197         template <typename genType> 
      +00198         genType step(
      +00199                 genType const & edge, 
      +00200                 genType const & x);
      +00201 
      +00202         template <typename genType> 
      +00203         genType step(
      +00204                 typename genType::value_type const & edge, 
      +00205                 genType const & x);
      +00206 
      +00219         template <typename genType> 
      +00220         genType smoothstep(
      +00221                 genType const & edge0, 
      +00222                 genType const & edge1, 
      +00223                 genType const & x);
      +00224 
      +00225         template <typename genType> 
      +00226         genType smoothstep(
      +00227                 typename genType::value_type const & edge0, 
      +00228                 typename genType::value_type const & edge1, 
      +00229                 genType const & x);
      +00230 
      +00239         template <typename genType> 
      +00240         typename genType::bool_type isnan(genType const & x);
      +00241 
      +00250         template <typename genType> 
      +00251         typename genType::bool_type isinf(genType const & x);
      +00252 
      +00259         template <typename genType, typename genIType>
      +00260         genIType floatBitsToInt(genType const & value);
      +00261 
      +00268         template <typename genType, typename genUType>
      +00269         genUType floatBitsToUint(genType const & value);
      +00270 
      +00279         template <typename genType, typename genIType>
      +00280         genType intBitsToFloat(genIType const & value);
      +00281         
      +00290     template <typename genType, typename genUType>
      +00291     genType uintBitsToFloat(genUType const & value);
      +00292         
      +00297         template <typename genType>
      +00298         genType fma(genType const & a, genType const & b, genType const & c);
      +00299 
      +00312         template <typename genType, typename genIType>
      +00313         genType frexp(genType const & x, genIType & exp);
      +00314 
      +00324         template <typename genType, typename genIType>
      +00325         genType ldexp(genType const & x, genIType const & exp);
      +00326 
      +00328         }//namespace common
      +00329         }//namespace function
      +00330         }//namespace core
      +00331 
      +00332         using namespace core::function::common;
      +00333 }//namespace glm
      +00334 
      +00335 #include "func_common.inl"
      +00336 
      +00337 #endif//glm_core_func_common
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00044_source.html b/doc/api-0.9.2/a00044_source.html new file mode 100644 index 00000000..6855da32 --- /dev/null +++ b/doc/api-0.9.2/a00044_source.html @@ -0,0 +1,95 @@ + + + + +func_exponential.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      func_exponential.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-08
      +00005 // Updated : 2010-02-04
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/func_exponential.hpp
      +00009 
      +00010 #ifndef glm_core_func_exponential
      +00011 #define glm_core_func_exponential
      +00012 
      +00013 namespace glm
      +00014 {
      +00015         namespace core{
      +00016         namespace function{
      +00018         namespace exponential{
      +00019 
      +00022 
      +00027         template <typename genType> 
      +00028         genType pow(genType const & x, genType const & y);
      +00029 
      +00034         template <typename genType> 
      +00035         genType exp(genType const & x);
      +00036 
      +00043         template <typename genType> 
      +00044         genType log(genType const & x);
      +00045 
      +00050         template <typename genType> 
      +00051         genType exp2(genType const & x);
      +00052 
      +00058         template <typename genType> 
      +00059         genType log2(genType const & x);
      +00060 
      +00065         template <typename genType> 
      +00066         genType sqrt(genType const & x);
      +00067     
      +00072         template <typename genType> 
      +00073         genType inversesqrt(genType const & x);
      +00074 
      +00076 
      +00077         }//namespace exponential
      +00078         }//namespace function
      +00079         }//namespace core
      +00080 
      +00081         using namespace core::function::exponential;
      +00082 }//namespace glm
      +00083 
      +00084 #include "func_exponential.inl"
      +00085 
      +00086 #endif//glm_core_func_exponential
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00045_source.html b/doc/api-0.9.2/a00045_source.html new file mode 100644 index 00000000..a0ae6ffa --- /dev/null +++ b/doc/api-0.9.2/a00045_source.html @@ -0,0 +1,114 @@ + + + + +func_geometric.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      func_geometric.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-03
      +00005 // Updated : 2010-02-04
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/func_geometric.hpp
      +00009 
      +00010 #ifndef glm_core_func_geometric
      +00011 #define glm_core_func_geometric
      +00012 
      +00013 namespace glm
      +00014 {
      +00015         namespace core{
      +00016         namespace function{
      +00017         namespace geometric{ 
      +00018 
      +00021 
      +00026         template <typename genType> 
      +00027         typename genType::value_type length(
      +00028                 genType const & x); 
      +00029 
      +00034         template <typename genType> 
      +00035         typename genType::value_type distance(
      +00036                 genType const & p0, 
      +00037                 genType const & p1);
      +00038 
      +00043     template <typename genType> 
      +00044         typename genType::value_type dot(
      +00045                 genType const & x, 
      +00046                 genType const & y);
      +00047 
      +00052     template <typename T> 
      +00053         detail::tvec3<T> cross(
      +00054                 detail::tvec3<T> const & x, 
      +00055                 detail::tvec3<T> const & y);
      +00056 
      +00061         template <typename genType> 
      +00062         genType normalize(
      +00063                 genType const & x);
      +00064 
      +00069     template <typename genType> 
      +00070         genType faceforward(
      +00071                 genType const & N, 
      +00072                 genType const & I, 
      +00073                 genType const & Nref);
      +00074   
      +00080     template <typename genType> 
      +00081         genType reflect(
      +00082                 genType const & I, 
      +00083                 genType const & N);
      +00084   
      +00091     template <typename genType> 
      +00092         genType refract(
      +00093                 genType const & I, 
      +00094                 genType const & N, 
      +00095                 typename genType::value_type const & eta);
      +00096 
      +00098 
      +00099         }//namespace geometric
      +00100         }//namespace function
      +00101         }//namespace core
      +00102 
      +00103         using namespace core::function::geometric;
      +00104 }//namespace glm
      +00105 
      +00106 #include "func_geometric.inl"
      +00107 
      +00108 #endif//glm_core_func_geometric
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00046_source.html b/doc/api-0.9.2/a00046_source.html new file mode 100644 index 00000000..10dd9890 --- /dev/null +++ b/doc/api-0.9.2/a00046_source.html @@ -0,0 +1,126 @@ + + + + +func_integer.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      func_integer.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2010-03-17
      +00005 // Updated : 2010-03-31
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/func_integer.hpp
      +00009 
      +00010 #ifndef glm_core_func_integer
      +00011 #define glm_core_func_integer
      +00012 
      +00013 namespace glm
      +00014 {
      +00015         namespace core{
      +00016         namespace function{
      +00018         namespace integer{
      +00019 
      +00022 
      +00029                 template <typename genUType>
      +00030                 genUType uaddCarry(
      +00031                         genUType const & x, 
      +00032                         genUType const & y, 
      +00033                         genUType & carry);
      +00034 
      +00041                 template <typename genUType>
      +00042                 genUType usubBorrow(
      +00043                         genUType const & x, 
      +00044                         genUType const & y, 
      +00045                         genUType & borrow);
      +00046                 
      +00053                 template <typename genUType>
      +00054                 void umulExtended(
      +00055                         genUType const & x, 
      +00056                         genUType const & y, 
      +00057                         genUType & msb, 
      +00058                         genUType & lsb);
      +00059                 
      +00066                 template <typename genIType>
      +00067                 void imulExtended(
      +00068                         genIType const & x, 
      +00069                         genIType const & y, 
      +00070                         genIType & msb, 
      +00071                         genIType & lsb);
      +00072 
      +00086                 template <typename genIUType>
      +00087                 genIUType bitfieldExtract(
      +00088                         genIUType const & Value, 
      +00089                         int const & Offset, 
      +00090                         int const & Bits);
      +00091 
      +00104                 template <typename genIUType>
      +00105                 genIUType bitfieldInsert(
      +00106                         genIUType const & Base, 
      +00107                         genIUType const & Insert, 
      +00108                         int const & Offset, 
      +00109                         int const & Bits);
      +00110 
      +00117                 template <typename genIUType>
      +00118                 genIUType bitfieldReverse(genIUType const & value);
      +00119                 
      +00124                 template <typename T, template <typename> class C>
      +00125                 typename C<T>::signed_type bitCount(C<T> const & Value);
      +00126 
      +00133                 template <typename T, template <typename> class C>
      +00134                 typename C<T>::signed_type findLSB(C<T> const & Value);
      +00135 
      +00143                 template <typename T, template <typename> class C>
      +00144                 typename C<T>::signed_type findMSB(C<T> const & Value);
      +00145 
      +00147 
      +00148         }//namespace integer
      +00149         }//namespace function
      +00150         }//namespace core
      +00151 
      +00152         using namespace core::function::integer;
      +00153 }//namespace glm
      +00154 
      +00155 #include "func_integer.inl"
      +00156 
      +00157 #endif//glm_core_func_integer
      +00158 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00047_source.html b/doc/api-0.9.2/a00047_source.html new file mode 100644 index 00000000..f46de258 --- /dev/null +++ b/doc/api-0.9.2/a00047_source.html @@ -0,0 +1,112 @@ + + + + +func_matrix.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      func_matrix.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-03
      +00005 // Updated : 2010-02-04
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/func_matrix.hpp
      +00009 
      +00010 #ifndef glm_core_func_matrix
      +00011 #define glm_core_func_matrix
      +00012 
      +00013 namespace glm
      +00014 {
      +00015         namespace core{
      +00016         namespace function{
      +00018         namespace matrix{
      +00019 
      +00022 
      +00028         template <typename matType> 
      +00029         matType matrixCompMult(
      +00030                 matType const & x, 
      +00031                 matType const & y);
      +00032 
      +00039     template <typename vecType, typename matType> 
      +00040         matType outerProduct(
      +00041                 vecType const & c, 
      +00042                 vecType const & r);
      +00043 
      +00048     template <typename matType> 
      +00049         typename matType::transpose_type transpose(
      +00050                 matType const & x);
      +00051         
      +00056         template <typename T> 
      +00057         typename detail::tmat2x2<T>::value_type determinant(
      +00058                 detail::tmat2x2<T> const & m);
      +00059 
      +00064         template <typename T> 
      +00065         typename detail::tmat3x3<T>::value_type determinant(
      +00066                 detail::tmat3x3<T> const & m);
      +00067 
      +00072     template <typename T> 
      +00073         typename detail::tmat4x4<T>::value_type determinant(
      +00074                 detail::tmat4x4<T> const & m);
      +00075 
      +00080         template <typename T> 
      +00081         detail::tmat2x2<T> inverse(
      +00082                 detail::tmat2x2<T> const & m);
      +00083 
      +00088         template <typename T> 
      +00089         detail::tmat3x3<T> inverse(
      +00090                 detail::tmat3x3<T> const & m);
      +00091 
      +00096         template <typename T> 
      +00097         detail::tmat4x4<T> inverse(
      +00098                 detail::tmat4x4<T> const & m);
      +00099 
      +00101 
      +00102         }//namespace matrix
      +00103         }//namespace function
      +00104         }//namespace core
      +00105 
      +00106         using namespace core::function::matrix;
      +00107 }//namespace glm
      +00108 
      +00109 #include "func_matrix.inl"
      +00110 
      +00111 #endif//glm_core_func_matrix
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00048_source.html b/doc/api-0.9.2/a00048_source.html new file mode 100644 index 00000000..8c57f811 --- /dev/null +++ b/doc/api-0.9.2/a00048_source.html @@ -0,0 +1,87 @@ + + + + +func_noise.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      func_noise.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-01
      +00005 // Updated : 2008-09-10
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/func_noise.hpp
      +00009 
      +00010 #ifndef glm_core_func_noise
      +00011 #define glm_core_func_noise
      +00012 
      +00013 namespace glm
      +00014 {
      +00015         namespace core{
      +00016         namespace function{
      +00017         // Define all noise functions from Section 8.9 of GLSL 1.30.8 specification. Included in glm namespace.
      +00018         namespace noise{
      +00019 
      +00022 
      +00027         template <typename genType>
      +00028         typename genType::value_type noise1(genType const & x);
      +00029 
      +00034         template <typename genType>
      +00035         detail::tvec2<typename genType::value_type> noise2(genType const & x);
      +00036 
      +00041         template <typename genType>
      +00042         detail::tvec3<typename genType::value_type> noise3(genType const & x);
      +00043 
      +00048         template <typename genType>
      +00049         detail::tvec4<typename genType::value_type> noise4(genType const & x);
      +00050 
      +00052 
      +00053         }//namespace noise
      +00054         }//namespace function
      +00055         }//namespace core
      +00056 
      +00057         using namespace core::function::noise;
      +00058 }//namespace glm
      +00059 
      +00060 #include "func_noise.inl"
      +00061 
      +00062 #endif//glm_core_func_noise
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00049_source.html b/doc/api-0.9.2/a00049_source.html new file mode 100644 index 00000000..06b44e0e --- /dev/null +++ b/doc/api-0.9.2/a00049_source.html @@ -0,0 +1,91 @@ + + + + +func_packing.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      func_packing.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2010-03-17
      +00005 // Updated : 2010-03-17
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/func_packing.hpp
      +00009 
      +00010 #ifndef glm_core_func_packing
      +00011 #define glm_core_func_packing
      +00012 
      +00013 namespace glm
      +00014 {
      +00015         namespace core{
      +00016         namespace function{
      +00018         namespace packing
      +00019         {
      +00022 
      +00034                 detail::uint32 packUnorm2x16(detail::tvec2<detail::float32> const & v);
      +00035         
      +00047                 detail::uint32 packUnorm4x8(detail::tvec4<detail::float32> const & v);
      +00048         
      +00060                 detail::uint32 packSnorm4x8(detail::tvec4<detail::float32> const & v);
      +00061 
      +00073                 detail::tvec2<detail::float32> unpackUnorm2x16(detail::uint32 const & p);
      +00074 
      +00086         detail::tvec4<detail::float32> unpackUnorm4x8(detail::uint32 const & p);
      +00087         
      +00099                 detail::tvec4<detail::float32> unpackSnorm4x8(detail::uint32 const & p);
      +00100 
      +00109                 double packDouble2x32(detail::tvec2<detail::uint32> const & v);
      +00110         
      +00118                 detail::tvec2<detail::uint32> unpackDouble2x32(double const & v);
      +00119 
      +00121 
      +00122         }//namespace packing
      +00123         }//namespace function
      +00124         }//namespace core
      +00125 
      +00126         using namespace core::function::packing;
      +00127 }//namespace glm
      +00128 
      +00129 #include "func_packing.inl"
      +00130 
      +00131 #endif//glm_core_func_packing
      +00132 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00050_source.html b/doc/api-0.9.2/a00050_source.html new file mode 100644 index 00000000..9303cdc5 --- /dev/null +++ b/doc/api-0.9.2/a00050_source.html @@ -0,0 +1,121 @@ + + + + +func_trigonometric.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      func_trigonometric.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-01
      +00005 // Updated : 2008-09-10
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/func_trigonometric.hpp
      +00009 
      +00010 #ifndef glm_core_func_trigonometric
      +00011 #define glm_core_func_trigonometric
      +00012 
      +00013 namespace glm
      +00014 {
      +00015         namespace core{
      +00016         namespace function{
      +00020         namespace trigonometric{
      +00021 
      +00024 
      +00029         template <typename genType> 
      +00030         genType radians(genType const & degrees);
      +00031 
      +00036         template <typename genType> 
      +00037         genType degrees(genType const & radians);
      +00038 
      +00044         template <typename genType> 
      +00045         genType sin(genType const & angle);
      +00046 
      +00052         template <typename genType> 
      +00053         genType cos(genType const & angle);
      +00054 
      +00059         template <typename genType> 
      +00060         genType tan(genType const & angle); 
      +00061 
      +00068         template <typename genType> 
      +00069         genType asin(genType const & x);
      +00070 
      +00077         template <typename genType> 
      +00078         genType acos(genType const & x);
      +00079 
      +00088         template <typename genType> 
      +00089         genType atan(genType const & y, genType const & x);
      +00090 
      +00096         template <typename genType> 
      +00097         genType atan(genType const & y_over_x);
      +00098 
      +00103         template <typename genType> 
      +00104         genType sinh(genType const & angle);
      +00105 
      +00110         template <typename genType> 
      +00111         genType cosh(genType const & angle);
      +00112 
      +00117         template <typename genType> 
      +00118         genType tanh(genType const & angle);
      +00119 
      +00124         template <typename genType> 
      +00125         genType asinh(genType const & x);
      +00126         
      +00132         template <typename genType> 
      +00133         genType acosh(genType const & x);
      +00134 
      +00140         template <typename genType> 
      +00141         genType atanh(genType const & x);
      +00142 
      +00144 
      +00145         }//namespace trigonometric
      +00146         }//namespace function
      +00147         }//namespace core
      +00148 
      +00149         using namespace core::function::trigonometric;
      +00150 }//namespace glm
      +00151 
      +00152 #include "func_trigonometric.inl"
      +00153 
      +00154 #endif//glm_core_func_trigonometric
      +00155 
      +00156 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00051_source.html b/doc/api-0.9.2/a00051_source.html new file mode 100644 index 00000000..0ab67318 --- /dev/null +++ b/doc/api-0.9.2/a00051_source.html @@ -0,0 +1,217 @@ + + + + +func_vector_relational.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      func_vector_relational.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-03
      +00005 // Updated : 2008-09-09
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/func_vector_relational.hpp
      +00009 
      +00010 #ifndef glm_core_func_vector_relational
      +00011 #define glm_core_func_vector_relational
      +00012 
      +00013 #include "_detail.hpp"
      +00014 
      +00015 namespace glm
      +00016 {
      +00017         namespace core{
      +00018         namespace function{
      +00021         namespace vector_relational
      +00022         {
      +00025 
      +00030         template <typename T, template <typename> class vecType> 
      +00031                 GLM_FUNC_QUALIFIER typename vecType<T>::bool_type lessThan
      +00032                 (
      +00033                         vecType<T> const & x, 
      +00034                         vecType<T> const & y
      +00035                 )
      +00036                 {
      +00037                         GLM_STATIC_ASSERT(detail::is_vector<vecType<T> >::_YES, 
      +00038                                 "Invalid template instantiation of 'lessThan', GLM vector types required");
      +00039                         GLM_STATIC_ASSERT(detail::is_bool<T>::_NO,
      +00040                                 "Invalid template instantiation of 'lessThan', GLM vector types required floating-point or integer value types vectors");
      +00041 
      +00042                         typename vecType<bool>::bool_type Result(vecType<bool>::null);
      +00043                         for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
      +00044                                 Result[i] = x[i] < y[i];
      +00045 
      +00046                         return Result;
      +00047                 }
      +00048 
      +00053                 template <typename T, template <typename> class vecType> 
      +00054                 GLM_FUNC_QUALIFIER typename vecType<T>::bool_type lessThanEqual
      +00055                 (
      +00056                         vecType<T> const & x, 
      +00057                         vecType<T> const & y
      +00058                 )
      +00059                 {
      +00060                         GLM_STATIC_ASSERT(detail::is_vector<vecType<T> >::_YES, 
      +00061                                 "Invalid template instantiation of 'lessThanEqual', GLM vector types required");
      +00062                         GLM_STATIC_ASSERT(detail::is_bool<T>::_NO, 
      +00063                                 "Invalid template instantiation of 'lessThanEqual', GLM vector types required floating-point or integer value types vectors");
      +00064 
      +00065                         typename vecType<bool>::bool_type Result(vecType<bool>::null);
      +00066                         for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
      +00067                                 Result[i] = x[i] <= y[i];
      +00068                         return Result;
      +00069                 }
      +00070 
      +00075                 template <typename T, template <typename> class vecType> 
      +00076                 GLM_FUNC_QUALIFIER typename vecType<T>::bool_type greaterThan
      +00077                 (
      +00078                         vecType<T> const & x, 
      +00079                         vecType<T> const & y
      +00080                 )
      +00081                 {
      +00082                         GLM_STATIC_ASSERT(detail::is_vector<vecType<T> >::_YES, 
      +00083                                 "Invalid template instantiation of 'greaterThan', GLM vector types required");
      +00084                         GLM_STATIC_ASSERT(detail::is_bool<T>::_NO, 
      +00085                                 "Invalid template instantiation of 'greaterThan', GLM vector types required floating-point or integer value types vectors");
      +00086 
      +00087                         typename vecType<bool>::bool_type Result(vecType<bool>::null);
      +00088                         for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
      +00089                                 Result[i] = x[i] > y[i];
      +00090                         return Result;
      +00091                 }
      +00092 
      +00097                 template <typename T, template <typename> class vecType> 
      +00098                 GLM_FUNC_QUALIFIER typename vecType<T>::bool_type greaterThanEqual
      +00099                 (
      +00100                         vecType<T> const & x, 
      +00101                         vecType<T> const & y
      +00102                 )
      +00103                 {
      +00104                         GLM_STATIC_ASSERT(detail::is_vector<vecType<T> >::_YES, 
      +00105                                 "Invalid template instantiation of 'greaterThanEqual', GLM vector types required");
      +00106                         GLM_STATIC_ASSERT(detail::is_bool<T>::_NO, 
      +00107                                 "Invalid template instantiation of 'greaterThanEqual', GLM vector types required floating-point or integer value types vectors");
      +00108 
      +00109                         typename vecType<bool>::bool_type Result(vecType<bool>::null);
      +00110                         for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
      +00111                                 Result[i] = x[i] >= y[i];
      +00112                         return Result;
      +00113                 }
      +00114 
      +00119                 template <typename T, template <typename> class vecType> 
      +00120                 GLM_FUNC_QUALIFIER typename vecType<T>::bool_type equal
      +00121                 (
      +00122                         vecType<T> const & x, 
      +00123                         vecType<T> const & y
      +00124                 )
      +00125                 {
      +00126                         GLM_STATIC_ASSERT(detail::is_vector<vecType<T> >::_YES, 
      +00127                                 "Invalid template instantiation of 'equal', GLM vector types required");
      +00128 
      +00129                         typename vecType<bool>::bool_type Result(vecType<bool>::null);
      +00130                         for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
      +00131                                 Result[i] = x[i] == y[i];
      +00132                         return Result;
      +00133                 }
      +00134 
      +00139                 template <typename T, template <typename> class vecType> 
      +00140                 GLM_FUNC_QUALIFIER typename vecType<T>::bool_type notEqual
      +00141                 (
      +00142                         vecType<T> const & x, 
      +00143                         vecType<T> const & y
      +00144                 )
      +00145                 {
      +00146                         GLM_STATIC_ASSERT(detail::is_vector<vecType<T> >::_YES, 
      +00147                                 "Invalid template instantiation of 'notEqual', GLM vector types required");
      +00148 
      +00149                         typename vecType<bool>::bool_type Result(vecType<bool>::null);
      +00150                         for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
      +00151                                 Result[i] = x[i] != y[i];
      +00152                         return Result;
      +00153                 }
      +00154 
      +00159                 template <template <typename> class vecType> 
      +00160                 GLM_FUNC_QUALIFIER bool any(vecType<bool> const & v)
      +00161                 {
      +00162                         GLM_STATIC_ASSERT(detail::is_vector<vecType<bool> >::_YES, 
      +00163                                 "Invalid template instantiation of 'any', GLM boolean vector types required");
      +00164 
      +00165                         bool Result = false;
      +00166                         for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
      +00167                                 Result = Result || v[i];
      +00168                         return Result;
      +00169                 }
      +00170 
      +00175                 template <template <typename> class vecType> 
      +00176                 GLM_FUNC_QUALIFIER bool all(vecType<bool> const & v)
      +00177                 {
      +00178                         GLM_STATIC_ASSERT(detail::is_vector<vecType<bool> >::_YES, 
      +00179                                 "Invalid template instantiation of 'all', GLM boolean vector types required");
      +00180 
      +00181                         bool Result = true;
      +00182                         for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
      +00183                                 Result = Result && v[i];
      +00184                         return Result;
      +00185                 }
      +00186 
      +00192                 template <template <typename> class vecType> 
      +00193                 GLM_FUNC_QUALIFIER vecType<bool> not_(vecType<bool> const & v)
      +00194                 {
      +00195                         GLM_STATIC_ASSERT(detail::is_vector<vecType<bool> >::_YES, 
      +00196                                 "Invalid template instantiation of 'not_', GLM vector types required");
      +00197 
      +00198                         typename vecType<bool>::bool_type Result(vecType<bool>::null);
      +00199                         for(typename vecType<bool>::size_type i = 0; i < vecType<bool>::value_size(); ++i)
      +00200                                 Result[i] = !v[i];
      +00201                         return Result;
      +00202                 }
      +00203 
      +00205 
      +00206         }//namespace vector_relational
      +00207         }//namespace function
      +00208         }//namespace core
      +00209 
      +00210         using namespace core::function::vector_relational;
      +00211 }//namespace glm
      +00212 
      +00213 #include "func_vector_relational.inl"
      +00214 
      +00215 #endif//glm_core_func_vector_relational
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00052_source.html b/doc/api-0.9.2/a00052_source.html new file mode 100644 index 00000000..bb8c5668 --- /dev/null +++ b/doc/api-0.9.2/a00052_source.html @@ -0,0 +1,124 @@ + + + + +glm.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      glm.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-01-14
      +00005 // Updated : 2011-01-19
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/glm.hpp
      +00009 
      +00010 #include "core/_fixes.hpp"
      +00011 
      +00012 #ifndef glm_glm
      +00013 #define glm_glm
      +00014 
      +00015 #include <cmath>
      +00016 #include <climits>
      +00017 #include <cfloat>
      +00018 #include <limits>
      +00019 #include "core/setup.hpp"
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_CORE_INCLUDED_DISPLAYED))
      +00022 #       define GLM_MESSAGE_CORE_INCLUDED_DISPLAYED
      +00023 #       pragma message("GLM: Core library included")
      +00024 #endif//GLM_MESSAGE
      +00025 
      +00027 namespace glm
      +00028 {
      +00030         namespace core
      +00031         {
      +00036                 namespace type
      +00037                 {
      +00038                         namespace precision{}
      +00039                 }
      +00040 
      +00043                 namespace function{}
      +00044         }//namespace core
      +00045 
      +00047         namespace gtc{}
      +00048 
      +00051         namespace gtx{}
      +00052 
      +00054         namespace virtrev{}
      +00055 
      +00056         using namespace core::type;
      +00057         using namespace core::type::precision;
      +00058         using namespace core::function;
      +00059 }//namespace glm
      +00060 
      +00061 #include "./core/_detail.hpp"
      +00062 #include "./core/type.hpp"
      +00063 
      +00064 #include "./core/func_trigonometric.hpp"
      +00065 #include "./core/func_exponential.hpp"
      +00066 #include "./core/func_common.hpp"
      +00067 #include "./core/func_packing.hpp"
      +00068 #include "./core/func_geometric.hpp"
      +00069 #include "./core/func_matrix.hpp"
      +00070 #include "./core/func_vector_relational.hpp"
      +00071 #include "./core/func_integer.hpp"
      +00072 #include "./core/func_noise.hpp"
      +00073 #include "./core/_swizzle.hpp"
      +00074 
      +00076 // check type sizes
      +00077 #ifndef GLM_STATIC_ASSERT_NULL
      +00078         GLM_STATIC_ASSERT(sizeof(glm::detail::int8) == 1, "int8 size isn't 1 byte on this platform");
      +00079         GLM_STATIC_ASSERT(sizeof(glm::detail::int16) == 2, "int16 size isn't 2 bytes on this platform");
      +00080         GLM_STATIC_ASSERT(sizeof(glm::detail::int32) == 4, "int32 size isn't 4 bytes on this platform");
      +00081         GLM_STATIC_ASSERT(sizeof(glm::detail::int64) == 8, "int64 size isn't 8 bytes on this platform");
      +00082 
      +00083         GLM_STATIC_ASSERT(sizeof(glm::detail::uint8) == 1, "uint8 size isn't 1 byte on this platform");
      +00084         GLM_STATIC_ASSERT(sizeof(glm::detail::uint16) == 2, "uint16 size isn't 2 bytes on this platform");
      +00085         GLM_STATIC_ASSERT(sizeof(glm::detail::uint32) == 4, "uint32 size isn't 4 bytes on this platform");
      +00086         GLM_STATIC_ASSERT(sizeof(glm::detail::uint64) == 8, "uint64 size isn't 8 bytes on this platform");
      +00087 
      +00088         GLM_STATIC_ASSERT(sizeof(glm::detail::float16) == 2, "float16 size isn't 2 bytes on this platform");
      +00089         GLM_STATIC_ASSERT(sizeof(glm::detail::float32) == 4, "float32 size isn't 4 bytes on this platform");
      +00090         GLM_STATIC_ASSERT(sizeof(glm::detail::float64) == 8, "float64 size isn't 8 bytes on this platform");
      +00091 #endif//GLM_STATIC_ASSERT_NULL
      +00092 
      +00093 #endif//glm_glm
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00053_source.html b/doc/api-0.9.2/a00053_source.html new file mode 100644 index 00000000..13e80509 --- /dev/null +++ b/doc/api-0.9.2/a00053_source.html @@ -0,0 +1,95 @@ + + + + +gradient_paint.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      gradient_paint.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-03-06
      +00005 // Updated : 2009-03-09
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/gradient_paint.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_gradient_paint
      +00014 #define glm_gtx_gradient_paint
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 #include "../gtx/optimum_pow.hpp"
      +00019 
      +00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00021 #       pragma message("GLM: GLM_GTX_gradient_paint extension included")
      +00022 #endif
      +00023 
      +00024 namespace glm{
      +00025 namespace gtx{
      +00026 namespace gradient_paint 
      +00027 {
      +00028         using namespace gtx::optimum_pow;
      +00029 
      +00032 
      +00033         template <typename valType>
      +00034         valType radialGradient(
      +00035                 glm::detail::tvec2<valType> const & Center,
      +00036                 valType const & Radius,
      +00037                 glm::detail::tvec2<valType> const & Focal,
      +00038                 glm::detail::tvec2<valType> const & Position);
      +00039 
      +00040         template <typename valType>
      +00041         valType linearGradient(
      +00042                 glm::detail::tvec2<valType> const & Point0,
      +00043                 glm::detail::tvec2<valType> const & Point1,
      +00044                 glm::detail::tvec2<valType> const & Position);
      +00045 
      +00047 }// namespace gradient_paint
      +00048 }// namespace gtx
      +00049 }// namespace glm
      +00050 
      +00051 #include "gradient_paint.inl"
      +00052 
      +00053 namespace glm{using namespace gtx::gradient_paint;}
      +00054 
      +00055 #endif//glm_gtx_gradient_paint
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00054_source.html b/doc/api-0.9.2/a00054_source.html new file mode 100644 index 00000000..b65709be --- /dev/null +++ b/doc/api-0.9.2/a00054_source.html @@ -0,0 +1,47 @@ + + + + +gtcModules.doxy Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      gtcModules.doxy
      +
      +
      +
      00001 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00055_source.html b/doc/api-0.9.2/a00055_source.html new file mode 100644 index 00000000..b099f36a --- /dev/null +++ b/doc/api-0.9.2/a00055_source.html @@ -0,0 +1,47 @@ + + + + +gtxModules.doxy Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      gtxModules.doxy
      +
      +
      +
      00001 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00056_source.html b/doc/api-0.9.2/a00056_source.html new file mode 100644 index 00000000..c4a08555 --- /dev/null +++ b/doc/api-0.9.2/a00056_source.html @@ -0,0 +1,366 @@ + + + + +half_float.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      half_float.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-04-29
      +00005 // Updated : 2010-02-07
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtc/half_float.hpp
      +00009 
      +00010 #ifndef glm_gtc_half_float
      +00011 #define glm_gtc_half_float
      +00012 
      +00013 // Dependency:
      +00014 #include "../glm.hpp"
      +00015 
      +00016 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00017 #       pragma message("GLM: GLM_GTC_half_float extension included")
      +00018 #endif
      +00019 
      +00020 namespace glm{
      +00021 namespace detail
      +00022 {
      +00023 #ifndef _MSC_EXTENSIONS
      +00024         template <>
      +00025         struct tvec2<thalf>
      +00026         {
      +00027                 enum ctor{null};
      +00028                 typedef thalf value_type;
      +00029                 typedef std::size_t size_type;
      +00030                 static size_type value_size();
      +00031                 GLM_FUNC_DECL size_type length() const;
      +00032 
      +00033                 typedef tvec2<thalf> type;
      +00034                 typedef tvec2<bool> bool_type;
      +00035 
      +00037                 // Data
      +00038 
      +00039                 thalf x, y;
      +00040 
      +00042                 // Accesses
      +00043 
      +00044                 thalf & operator[](size_type i);
      +00045                 thalf const & operator[](size_type i) const;
      +00046 
      +00048                 // Implicit basic constructors
      +00049 
      +00050                 tvec2();
      +00051                 tvec2(tvec2<thalf> const & v);
      +00052 
      +00054                 // Explicit basic constructors
      +00055 
      +00056                 explicit tvec2(ctor);
      +00057                 explicit tvec2(
      +00058                         thalf const & s);
      +00059                 explicit tvec2(
      +00060                         thalf const & s1, 
      +00061                         thalf const & s2);
      +00062 
      +00064                 // Swizzle constructors
      +00065 
      +00066                 tvec2(tref2<thalf> const & r);
      +00067 
      +00069                 // Convertion scalar constructors
      +00070 
      +00072                 template <typename U> 
      +00073                 explicit tvec2(U const & x);
      +00075                 template <typename U, typename V> 
      +00076                 explicit tvec2(U const & x, V const & y);                       
      +00077 
      +00079                 // Convertion vector constructors
      +00080 
      +00082                 template <typename U> 
      +00083                 explicit tvec2(tvec2<U> const & v);
      +00085                 template <typename U> 
      +00086                 explicit tvec2(tvec3<U> const & v);
      +00088                 template <typename U> 
      +00089                 explicit tvec2(tvec4<U> const & v);
      +00090 
      +00092                 // Unary arithmetic operators
      +00093 
      +00094                 tvec2<thalf>& operator= (tvec2<thalf> const & v);
      +00095 
      +00096                 tvec2<thalf>& operator+=(thalf const & s);
      +00097                 tvec2<thalf>& operator+=(tvec2<thalf> const & v);
      +00098                 tvec2<thalf>& operator-=(thalf const & s);
      +00099                 tvec2<thalf>& operator-=(tvec2<thalf> const & v);
      +00100                 tvec2<thalf>& operator*=(thalf const & s);
      +00101                 tvec2<thalf>& operator*=(tvec2<thalf> const & v);
      +00102                 tvec2<thalf>& operator/=(thalf const & s);
      +00103                 tvec2<thalf>& operator/=(tvec2<thalf> const & v);
      +00104                 tvec2<thalf>& operator++();
      +00105                 tvec2<thalf>& operator--();
      +00106 
      +00108                 // Swizzle operators
      +00109 
      +00110                 thalf swizzle(comp X) const;
      +00111                 tvec2<thalf> swizzle(comp X, comp Y) const;
      +00112                 tvec3<thalf> swizzle(comp X, comp Y, comp Z) const;
      +00113                 tvec4<thalf> swizzle(comp X, comp Y, comp Z, comp W) const;
      +00114                 tref2<thalf> swizzle(comp X, comp Y);
      +00115         };
      +00116 
      +00117         template <>
      +00118         struct tvec3<thalf>
      +00119         {
      +00120                 enum ctor{null};
      +00121                 typedef thalf value_type;
      +00122                 typedef std::size_t size_type;
      +00123                 static size_type value_size();
      +00124                 GLM_FUNC_DECL size_type length() const;
      +00125 
      +00126                 typedef tvec3<thalf> type;
      +00127                 typedef tvec3<bool> bool_type;
      +00128 
      +00130                 // Data
      +00131 
      +00132                 thalf x, y, z;
      +00133 
      +00135                 // Accesses
      +00136 
      +00137                 thalf & operator[](size_type i);
      +00138                 thalf const & operator[](size_type i) const;
      +00139 
      +00141                 // Implicit basic constructors
      +00142 
      +00143                 tvec3();
      +00144                 tvec3(tvec3<thalf> const & v);
      +00145 
      +00147                 // Explicit basic constructors
      +00148 
      +00149                 explicit tvec3(ctor);
      +00150                 explicit tvec3(
      +00151                         thalf const & s);
      +00152                 explicit tvec3(
      +00153                         thalf const & s1, 
      +00154                         thalf const & s2, 
      +00155                         thalf const & s3);
      +00156 
      +00158                 // Swizzle constructors
      +00159 
      +00160                 tvec3(tref3<thalf> const & r);
      +00161 
      +00163                 // Convertion scalar constructors
      +00164 
      +00166                 template <typename U> 
      +00167                 explicit tvec3(U const & x);
      +00169                 template <typename U, typename V, typename W> 
      +00170                 explicit tvec3(U const & x, V const & y, W const & z);                  
      +00171 
      +00173                 // Convertion vector constructors
      +00174 
      +00176                 template <typename A, typename B> 
      +00177                 explicit tvec3(tvec2<A> const & v, B const & s);
      +00179                 template <typename A, typename B> 
      +00180                 explicit tvec3(A const & s, tvec2<B> const & v);
      +00182                 template <typename U> 
      +00183                 explicit tvec3(tvec3<U> const & v);
      +00185                 template <typename U> 
      +00186                 explicit tvec3(tvec4<U> const & v);
      +00187 
      +00189                 // Unary arithmetic operators
      +00190 
      +00191                 tvec3<thalf>& operator= (tvec3<thalf> const & v);
      +00192 
      +00193                 tvec3<thalf>& operator+=(thalf const & s);
      +00194                 tvec3<thalf>& operator+=(tvec3<thalf> const & v);
      +00195                 tvec3<thalf>& operator-=(thalf const & s);
      +00196                 tvec3<thalf>& operator-=(tvec3<thalf> const & v);
      +00197                 tvec3<thalf>& operator*=(thalf const & s);
      +00198                 tvec3<thalf>& operator*=(tvec3<thalf> const & v);
      +00199                 tvec3<thalf>& operator/=(thalf const & s);
      +00200                 tvec3<thalf>& operator/=(tvec3<thalf> const & v);
      +00201                 tvec3<thalf>& operator++();
      +00202                 tvec3<thalf>& operator--();
      +00203 
      +00205                 // Swizzle operators
      +00206 
      +00207                 thalf swizzle(comp X) const;
      +00208                 tvec2<thalf> swizzle(comp X, comp Y) const;
      +00209                 tvec3<thalf> swizzle(comp X, comp Y, comp Z) const;
      +00210                 tvec4<thalf> swizzle(comp X, comp Y, comp Z, comp W) const;
      +00211                 tref3<thalf> swizzle(comp X, comp Y, comp Z);
      +00212         };
      +00213 
      +00214         template <>
      +00215         struct tvec4<thalf>
      +00216         {
      +00217                 enum ctor{null};
      +00218                 typedef thalf value_type;
      +00219                 typedef std::size_t size_type;
      +00220                 static size_type value_size();
      +00221                 GLM_FUNC_DECL size_type length() const;
      +00222 
      +00223                 typedef tvec4<thalf> type;
      +00224                 typedef tvec4<bool> bool_type;
      +00225 
      +00227                 // Data
      +00228 
      +00229                 thalf x, y, z, w;
      +00230 
      +00232                 // Accesses
      +00233 
      +00234                 thalf & operator[](size_type i);
      +00235                 thalf const & operator[](size_type i) const;
      +00236 
      +00238                 // Implicit basic constructors
      +00239 
      +00240                 tvec4();
      +00241                 tvec4(tvec4<thalf> const & v);
      +00242 
      +00244                 // Explicit basic constructors
      +00245 
      +00246                 explicit tvec4(ctor);
      +00247                 explicit tvec4(
      +00248                         thalf const & s);
      +00249                 explicit tvec4(
      +00250                         thalf const & s0, 
      +00251                         thalf const & s1, 
      +00252                         thalf const & s2, 
      +00253                         thalf const & s3);
      +00254 
      +00256                 // Swizzle constructors
      +00257 
      +00258                 tvec4(tref4<thalf> const & r);
      +00259 
      +00261                 // Convertion scalar constructors
      +00262 
      +00264                 template <typename U> 
      +00265                 explicit tvec4(U const & x);
      +00267                 template <typename A, typename B, typename C, typename D> 
      +00268                 explicit tvec4(A const & x, B const & y, C const & z, D const & w);                     
      +00269 
      +00271                 // Convertion vector constructors
      +00272 
      +00274                 template <typename A, typename B, typename C> 
      +00275                 explicit tvec4(tvec2<A> const & v, B const & s1, C const & s2);
      +00277                 template <typename A, typename B, typename C> 
      +00278                 explicit tvec4(A const & s1, tvec2<B> const & v, C const & s2);
      +00280                 template <typename A, typename B, typename C> 
      +00281                 explicit tvec4(A const & s1, B const & s2, tvec2<C> const & v);
      +00283                 template <typename A, typename B> 
      +00284                 explicit tvec4(tvec3<A> const & v, B const & s);
      +00286                 template <typename A, typename B> 
      +00287                 explicit tvec4(A const & s, tvec3<B> const & v);
      +00289                 template <typename A, typename B> 
      +00290                 explicit tvec4(tvec2<A> const & v1, tvec2<B> const & v2);
      +00292                 template <typename U> 
      +00293                 explicit tvec4(tvec4<U> const & v);
      +00294 
      +00296                 // Unary arithmetic operators
      +00297 
      +00298                 tvec4<thalf>& operator= (tvec4<thalf> const & v);
      +00299 
      +00300                 tvec4<thalf>& operator+=(thalf const & s);
      +00301                 tvec4<thalf>& operator+=(tvec4<thalf> const & v);
      +00302                 tvec4<thalf>& operator-=(thalf const & s);
      +00303                 tvec4<thalf>& operator-=(tvec4<thalf> const & v);
      +00304                 tvec4<thalf>& operator*=(thalf const & s);
      +00305                 tvec4<thalf>& operator*=(tvec4<thalf> const & v);
      +00306                 tvec4<thalf>& operator/=(thalf const & s);
      +00307                 tvec4<thalf>& operator/=(tvec4<thalf> const & v);
      +00308                 tvec4<thalf>& operator++();
      +00309                 tvec4<thalf>& operator--();
      +00310 
      +00312                 // Swizzle operators
      +00313 
      +00314                 thalf swizzle(comp X) const;
      +00315                 tvec2<thalf> swizzle(comp X, comp Y) const;
      +00316                 tvec3<thalf> swizzle(comp X, comp Y, comp Z) const;
      +00317                 tvec4<thalf> swizzle(comp X, comp Y, comp Z, comp W) const;
      +00318                 tref4<thalf> swizzle(comp X, comp Y, comp Z, comp W);
      +00319         };
      +00320 #endif//_MSC_EXTENSIONS
      +00321 }
      +00322 //namespace detail
      +00323 
      +00324 namespace gtc{
      +00325 namespace half_float 
      +00326 {
      +00329 
      +00332         typedef detail::thalf                                   half;
      +00333 
      +00336         typedef detail::tvec2<detail::thalf>    hvec2;
      +00337 
      +00340         typedef detail::tvec3<detail::thalf>    hvec3;
      +00341 
      +00344         typedef detail::tvec4<detail::thalf>    hvec4;
      +00345 
      +00348         typedef detail::tmat2x2<detail::thalf>  hmat2;
      +00349     
      +00352         typedef detail::tmat3x3<detail::thalf>  hmat3;
      +00353 
      +00356         typedef detail::tmat4x4<detail::thalf>  hmat4;
      +00357 
      +00360         typedef detail::tmat2x2<detail::thalf>  hmat2x2;
      +00361     
      +00364         typedef detail::tmat2x3<detail::thalf>  hmat2x3;
      +00365     
      +00368         typedef detail::tmat2x4<detail::thalf>  hmat2x4;
      +00369 
      +00372         typedef detail::tmat3x2<detail::thalf>  hmat3x2;
      +00373     
      +00376         typedef detail::tmat3x3<detail::thalf>  hmat3x3;
      +00377     
      +00380         typedef detail::tmat3x4<detail::thalf>  hmat3x4;
      +00381 
      +00384         typedef detail::tmat4x2<detail::thalf>  hmat4x2;    
      +00385 
      +00388         typedef detail::tmat4x3<detail::thalf>  hmat4x3;
      +00389     
      +00392         typedef detail::tmat4x4<detail::thalf>  hmat4x4;
      +00393     
      +00395 
      +00396 }// namespace half_float
      +00397 }// namespace gtc
      +00398 }// namespace glm
      +00399 
      +00400 #include "half_float.inl"
      +00401 
      +00402 namespace glm{using namespace gtc::half_float;}
      +00403 
      +00404 #endif//glm_gtc_half_float
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00057_source.html b/doc/api-0.9.2/a00057_source.html new file mode 100644 index 00000000..93910564 --- /dev/null +++ b/doc/api-0.9.2/a00057_source.html @@ -0,0 +1,91 @@ + + + + +handed_coordinate_space.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      handed_coordinate_space.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2009-02-19
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/handed_coordinate_space.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_handed_coordinate_space
      +00014 #define glm_gtx_handed_coordinate_space
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_handed_coordinate_space extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace handed_coordinate_space 
      +00026 {
      +00029 
      +00032         template <typename T> 
      +00033         bool rightHanded(
      +00034                 detail::tvec3<T> const & tangent, 
      +00035                 detail::tvec3<T> const & binormal, 
      +00036                 detail::tvec3<T> const & normal);
      +00037 
      +00040         template <typename T> 
      +00041         bool leftHanded(
      +00042                 detail::tvec3<T> const & tangent, 
      +00043                 detail::tvec3<T> const & binormal, 
      +00044                 detail::tvec3<T> const & normal);
      +00045 
      +00047 }// namespace handed_coordinate_space
      +00048 }// namespace gtx
      +00049 }// namespace glm
      +00050 
      +00051 #include "handed_coordinate_space.inl"
      +00052 
      +00053 namespace glm{using namespace gtx::handed_coordinate_space;}
      +00054 
      +00055 #endif//glm_gtx_handed_coordinate_space
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00058_source.html b/doc/api-0.9.2/a00058_source.html new file mode 100644 index 00000000..a63b5529 --- /dev/null +++ b/doc/api-0.9.2/a00058_source.html @@ -0,0 +1,65 @@ + + + + +hint.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      hint.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-14
      +00005 // Updated : 2008-08-14
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/hint.hpp
      +00009 
      +00010 #ifndef glm_core_type
      +00011 #define glm_core_type
      +00012 
      +00013 namespace glm
      +00014 {
      +00015         // Use dont_care, nicest and fastest to optimize implementations.
      +00016         class dont_care {};
      +00017         class nicest {};
      +00018         class fastest {};
      +00019 };
      +00020 
      +00021 #endif//glm_core_type
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00059_source.html b/doc/api-0.9.2/a00059_source.html new file mode 100644 index 00000000..784b2ce9 --- /dev/null +++ b/doc/api-0.9.2/a00059_source.html @@ -0,0 +1,119 @@ + + + + +inertia.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      inertia.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-04-21
      +00005 // Updated : 2006-11-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/inertia.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_inertia
      +00014 #define glm_gtx_inertia
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_inertia extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace inertia 
      +00026 {
      +00029 
      +00032         template <typename T> 
      +00033         detail::tmat3x3<T> boxInertia3(
      +00034                 const T Mass, 
      +00035                 const detail::tvec3<T>& Scale);
      +00036                 
      +00039         template <typename T> 
      +00040         detail::tmat4x4<T> boxInertia4(
      +00041                 const T Mass, 
      +00042                 const detail::tvec3<T>& Scale);
      +00043                 
      +00046         template <typename T> 
      +00047         detail::tmat3x3<T> diskInertia3(
      +00048                 const T Mass, 
      +00049                 const T Radius);
      +00050 
      +00053         template <typename T> 
      +00054         detail::tmat4x4<T> diskInertia4(
      +00055                 const T Mass, 
      +00056                 const T Radius);
      +00057 
      +00060         template <typename T> 
      +00061         detail::tmat3x3<T> ballInertia3(
      +00062                 const T Mass, 
      +00063                 const T Radius);
      +00064                 
      +00067         template <typename T> 
      +00068         detail::tmat4x4<T> ballInertia4(
      +00069                 const T Mass, 
      +00070                 const T Radius);
      +00071 
      +00074         template <typename T> 
      +00075         detail::tmat3x3<T> sphereInertia3(
      +00076                 const T Mass, 
      +00077                 const T Radius);
      +00078 
      +00081         template <typename T> 
      +00082         detail::tmat4x4<T> sphereInertia4(
      +00083                 const T Mass, 
      +00084                 const T Radius);
      +00085 
      +00087 }// namespace inertia
      +00088 }// namespace gtx
      +00089 }// namespace glm
      +00090 
      +00091 #include "inertia.inl"
      +00092 
      +00093 namespace glm{using namespace gtx::inertia;}
      +00094 
      +00095 #endif//glm_gtx_inertia
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00060_source.html b/doc/api-0.9.2/a00060_source.html new file mode 100644 index 00000000..197d6fc5 --- /dev/null +++ b/doc/api-0.9.2/a00060_source.html @@ -0,0 +1,85 @@ + + + + +int_10_10_10_2.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      int_10_10_10_2.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2010-07-07
      +00005 // Updated : 2010-07-07
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/int_10_10_10_2.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_int_10_10_10_2
      +00014 #define glm_gtx_int_10_10_10_2
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 #include "../gtx/raw_data.hpp"
      +00019 
      +00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00021 #       pragma message("GLM: GLM_GTX_int_10_10_10_2 extension included")
      +00022 #endif
      +00023 
      +00024 namespace glm{
      +00025 namespace gtx{
      +00026 namespace int_10_10_10_2 
      +00027 {
      +00028         using namespace gtx::raw_data;
      +00029 
      +00032 
      +00035         dword uint10_10_10_2_cast(glm::vec4 const & v);
      +00036 
      +00038 
      +00039 }//namespace integer
      +00040 }//namespace gtx
      +00041 }//namespace glm
      +00042 
      +00043 #include "int_10_10_10_2.inl"
      +00044 
      +00045 namespace glm{using namespace gtx::int_10_10_10_2;}
      +00046 
      +00047 #endif//glm_gtx_int_10_10_10_2
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00061_source.html b/doc/api-0.9.2/a00061_source.html new file mode 100644 index 00000000..27eeed09 --- /dev/null +++ b/doc/api-0.9.2/a00061_source.html @@ -0,0 +1,88 @@ + + + + +integer.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      integer.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-24
      +00005 // Updated : 2006-11-14
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/integer.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_integer
      +00014 #define glm_gtx_integer
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_integer extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace integer 
      +00026 {
      +00029 
      +00032         int pow(int x, int y);
      +00033 
      +00036         int sqrt(int x);
      +00037 
      +00040         int mod(int x, int y);
      +00041 
      +00044         template <typename genType> 
      +00045         genType factorial(genType const & x);
      +00046 
      +00048 }//namespace integer
      +00049 }//namespace gtx
      +00050 }//namespace glm
      +00051 
      +00052 #include "integer.inl"
      +00053 
      +00054 namespace glm{using namespace gtx::integer;}
      +00055 
      +00056 #endif//glm_gtx_integer
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00062_source.html b/doc/api-0.9.2/a00062_source.html new file mode 100644 index 00000000..b62a8c3b --- /dev/null +++ b/doc/api-0.9.2/a00062_source.html @@ -0,0 +1,105 @@ + + + + +intersect.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      intersect.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-04-03
      +00005 // Updated : 2009-01-20
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/intersect.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_closest_point
      +00013 
      +00014 #ifndef glm_gtx_intersect
      +00015 #define glm_gtx_intersect
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 #include "../gtx/closest_point.hpp"
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00022 #       pragma message("GLM: GLM_GTX_closest_point extension included")
      +00023 #endif
      +00024 
      +00025 namespace glm{
      +00026 namespace gtx{
      +00027 namespace intersect     
      +00028 {
      +00031 
      +00034         template <typename genType>
      +00035         bool intersectRayTriangle(
      +00036                 genType const & orig, genType const & dir,
      +00037                 genType const & vert0, genType const & vert1, genType const & vert2,
      +00038                 genType & baryPosition);
      +00039 
      +00042         template <typename genType>
      +00043         bool intersectLineTriangle(
      +00044                 genType const & orig, genType const & dir,
      +00045                 genType const & vert0, genType const & vert1, genType const & vert2,
      +00046                 genType & position);
      +00047 
      +00050         template <typename genType>
      +00051         bool intersectRaySphere(
      +00052                 genType const & orig, genType const & dir,
      +00053                 genType const & center, typename genType::value_type radius,
      +00054                 genType & position, genType & normal);
      +00055 
      +00058         template <typename genType>
      +00059         bool intersectLineSphere(
      +00060                 genType const & point0, genType const & point1,
      +00061                 genType const & center, typename genType::value_type radius,
      +00062                 genType & position, genType & normal);
      +00063 
      +00065 }//namespace intersect
      +00066 }//namespace gtx
      +00067 }//namespace glm
      +00068 
      +00069 #include "intersect.inl"
      +00070 
      +00071 namespace glm{using namespace gtx::intersect;}
      +00072 
      +00073 #endif//glm_gtx_intersect
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00063_source.html b/doc/api-0.9.2/a00063_source.html new file mode 100644 index 00000000..bcc28107 --- /dev/null +++ b/doc/api-0.9.2/a00063_source.html @@ -0,0 +1,114 @@ + + + + +intrinsic_common.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      intrinsic_common.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-05-11
      +00005 // Updated : 2009-05-11
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/intrinsic_common.hpp
      +00009 
      +00010 #ifndef glm_detail_intrinsic_common
      +00011 #define glm_detail_intrinsic_common
      +00012 
      +00013 #include "setup.hpp"
      +00014 
      +00015 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
      +00016 #       error "SSE2 instructions not supported or enabled"
      +00017 #else
      +00018 
      +00019 namespace glm{
      +00020 namespace detail
      +00021 {
      +00022         __m128 sse_abs_ps(__m128 x);
      +00023 
      +00024         __m128 sse_sgn_ps(__m128 x);
      +00025 
      +00026         //floor
      +00027         __m128 sse_flr_ps(__m128 v);
      +00028 
      +00029         //trunc
      +00030         __m128 sse_trc_ps(__m128 v);
      +00031 
      +00032         //round
      +00033         __m128 sse_nd_ps(__m128 v);
      +00034 
      +00035         //roundEven
      +00036         __m128 sse_rde_ps(__m128 v);
      +00037 
      +00038         __m128 sse_rnd_ps(__m128 x);
      +00039 
      +00040         __m128 sse_ceil_ps(__m128 v);
      +00041 
      +00042         __m128 sse_frc_ps(__m128 x);
      +00043 
      +00044         __m128 sse_mod_ps(__m128 x, __m128 y);
      +00045 
      +00046         __m128 sse_modf_ps(__m128 x, __m128i & i);
      +00047 
      +00048         //GLM_FUNC_QUALIFIER __m128 sse_min_ps(__m128 x, __m128 y)
      +00049 
      +00050         //GLM_FUNC_QUALIFIER __m128 sse_max_ps(__m128 x, __m128 y)
      +00051 
      +00052         __m128 sse_clp_ps(__m128 v, __m128 minVal, __m128 maxVal);
      +00053 
      +00054         __m128 sse_mix_ps(__m128 v1, __m128 v2, __m128 a);
      +00055 
      +00056         __m128 sse_stp_ps(__m128 edge, __m128 x);
      +00057 
      +00058         __m128 sse_ssp_ps(__m128 edge0, __m128 edge1, __m128 x);
      +00059 
      +00060         __m128 sse_nan_ps(__m128 x);
      +00061 
      +00062         __m128 sse_inf_ps(__m128 x);
      +00063 
      +00064 }//namespace detail
      +00065 }//namespace glm
      +00066 
      +00067 #include "intrinsic_common.inl"
      +00068 
      +00069 #endif//GLM_ARCH
      +00070 #endif//glm_detail_intrinsic_common
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00064_source.html b/doc/api-0.9.2/a00064_source.html new file mode 100644 index 00000000..59cc30c4 --- /dev/null +++ b/doc/api-0.9.2/a00064_source.html @@ -0,0 +1,104 @@ + + + + +intrinsic_exponential.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      intrinsic_exponential.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-05-11
      +00005 // Updated : 2009-05-11
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/intrinsic_exponential.hpp
      +00009 
      +00010 #ifndef glm_detail_intrinsic_exponential
      +00011 #define glm_detail_intrinsic_exponential
      +00012 
      +00013 #include "setup.hpp"
      +00014 
      +00015 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
      +00016 #       error "SSE2 instructions not supported or enabled"
      +00017 #else
      +00018 
      +00019 namespace glm{
      +00020 namespace detail
      +00021 {
      +00022 /*
      +00023 GLM_FUNC_QUALIFIER __m128 sse_rsqrt_nr_ss(__m128 const x)
      +00024 {
      +00025         __m128 recip = _mm_rsqrt_ss( x );  // "estimate" opcode
      +00026         const static __m128 three = { 3, 3, 3, 3 }; // aligned consts for fast load
      +00027         const static __m128 half = { 0.5,0.5,0.5,0.5 };
      +00028         __m128 halfrecip = _mm_mul_ss( half, recip );
      +00029         __m128 threeminus_xrr = _mm_sub_ss( three, _mm_mul_ss( x, _mm_mul_ss ( recip, recip ) ) );
      +00030         return _mm_mul_ss( halfrecip, threeminus_xrr );
      +00031 }
      +00032  
      +00033 GLM_FUNC_QUALIFIER __m128 sse_normalize_fast_ps(  float * RESTRICT vOut, float * RESTRICT vIn )
      +00034 {
      +00035         __m128 x = _mm_load_ss(&vIn[0]);
      +00036         __m128 y = _mm_load_ss(&vIn[1]);
      +00037         __m128 z = _mm_load_ss(&vIn[2]);
      +00038  
      +00039         const __m128 l =  // compute x*x + y*y + z*z
      +00040                 _mm_add_ss(
      +00041                  _mm_add_ss( _mm_mul_ss(x,x),
      +00042                              _mm_mul_ss(y,y)
      +00043                             ),
      +00044                  _mm_mul_ss( z, z )
      +00045                 );
      +00046  
      +00047  
      +00048         const __m128 rsqt = _mm_rsqrt_nr_ss( l );
      +00049         _mm_store_ss( &vOut[0] , _mm_mul_ss( rsqt, x ) );
      +00050         _mm_store_ss( &vOut[1] , _mm_mul_ss( rsqt, y ) );
      +00051         _mm_store_ss( &vOut[2] , _mm_mul_ss( rsqt, z ) );
      +00052  
      +00053         return _mm_mul_ss( l , rsqt );
      +00054 }
      +00055 */
      +00056 }//namespace detail
      +00057 }//namespace glm
      +00058 
      +00059 #endif//GLM_ARCH
      +00060 #endif//glm_detail_intrinsic_exponential
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00065_source.html b/doc/api-0.9.2/a00065_source.html new file mode 100644 index 00000000..fa7d60d0 --- /dev/null +++ b/doc/api-0.9.2/a00065_source.html @@ -0,0 +1,101 @@ + + + + +intrinsic_geometric.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      intrinsic_geometric.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-05-08
      +00005 // Updated : 2009-05-08
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/intrinsic_geometric.hpp
      +00009 
      +00010 #ifndef glm_core_intrinsic_geometric
      +00011 #define glm_core_intrinsic_geometric
      +00012 
      +00013 #include "setup.hpp"
      +00014 
      +00015 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
      +00016 #       error "SSE2 instructions not supported or enabled"
      +00017 #else
      +00018 
      +00019 #include "intrinsic_common.hpp"
      +00020 
      +00021 namespace glm{
      +00022 namespace detail
      +00023 {
      +00024         //length
      +00025         __m128 sse_len_ps(__m128 x);
      +00026 
      +00027         //distance
      +00028         __m128 sse_dst_ps(__m128 p0, __m128 p1);
      +00029 
      +00030         //dot
      +00031         __m128 sse_dot_ps(__m128 v1, __m128 v2);
      +00032 
      +00033         // SSE1
      +00034         __m128 sse_dot_ss(__m128 v1, __m128 v2);
      +00035 
      +00036         //cross
      +00037         __m128 sse_xpd_ps(__m128 v1, __m128 v2);
      +00038 
      +00039         //normalize
      +00040         __m128 sse_nrm_ps(__m128 v);
      +00041 
      +00042         //faceforward
      +00043         __m128 sse_ffd_ps(__m128 N, __m128 I, __m128 Nref);
      +00044 
      +00045         //reflect
      +00046         __m128 sse_rfe_ps(__m128 I, __m128 N);
      +00047 
      +00048         //refract
      +00049         __m128 sse_rfa_ps(__m128 I, __m128 N, __m128 eta);
      +00050 
      +00051 }//namespace detail
      +00052 }//namespace glm
      +00053 
      +00054 #include "intrinsic_geometric.inl"
      +00055 
      +00056 #endif//GLM_ARCH
      +00057 #endif//glm_core_intrinsic_geometric
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00066_source.html b/doc/api-0.9.2/a00066_source.html new file mode 100644 index 00000000..31baa79a --- /dev/null +++ b/doc/api-0.9.2/a00066_source.html @@ -0,0 +1,94 @@ + + + + +intrinsic_matrix.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      intrinsic_matrix.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-06-05
      +00005 // Updated : 2009-06-05
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/intrinsic_common.hpp
      +00009 
      +00010 #ifndef glm_detail_intrinsic_matrix
      +00011 #define glm_detail_intrinsic_matrix
      +00012 
      +00013 #include "setup.hpp"
      +00014 
      +00015 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
      +00016 #       error "SSE2 instructions not supported or enabled"
      +00017 #else
      +00018 
      +00019 #include "intrinsic_geometric.hpp"
      +00020 
      +00021 namespace glm{
      +00022 namespace detail
      +00023 {
      +00024         void sse_add_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
      +00025 
      +00026         void sse_sub_ps(__m128 in1[4], __m128 in2[4], __m128 out[4]);
      +00027 
      +00028         __m128 sse_mul_ps(__m128 m[4], __m128 v);
      +00029 
      +00030         __m128 sse_mul_ps(__m128 v, __m128 m[4]);
      +00031 
      +00032         void sse_mul_ps(__m128 const in1[4], __m128 const in2[4], __m128 out[4]);
      +00033 
      +00034         void sse_transpose_ps(__m128 const in[4], __m128 out[4]);
      +00035 
      +00036         void sse_inverse_ps(__m128 const in[4], __m128 out[4]);
      +00037 
      +00038         void sse_rotate_ps(__m128 const in[4], float Angle, float const v[3], __m128 out[4]);
      +00039 
      +00040         __m128 sse_det_ps(__m128 const m[4]);
      +00041 
      +00042         __m128 sse_slow_det_ps(__m128 const m[4]);
      +00043 
      +00044 }//namespace detail
      +00045 }//namespace glm
      +00046 
      +00047 #include "intrinsic_matrix.inl"
      +00048 
      +00049 #endif//GLM_ARCH
      +00050 #endif//glm_detail_intrinsic_matrix
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00067_source.html b/doc/api-0.9.2/a00067_source.html new file mode 100644 index 00000000..5d011e5f --- /dev/null +++ b/doc/api-0.9.2/a00067_source.html @@ -0,0 +1,73 @@ + + + + +intrinsic_trigonometric.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      intrinsic_trigonometric.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-06-09
      +00005 // Updated : 2009-06-09
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/intrinsic_trigonometric.hpp
      +00009 
      +00010 #ifndef glm_detail_intrinsic_trigonometric
      +00011 #define glm_detail_intrinsic_trigonometric
      +00012 
      +00013 #include "setup.hpp"
      +00014 
      +00015 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
      +00016 #       error "SSE2 instructions not supported or enabled"
      +00017 #else
      +00018 
      +00019 namespace glm{
      +00020 namespace detail
      +00021 {
      +00022 
      +00023 }//namespace detail
      +00024 }//namespace glm
      +00025 
      +00026 #include "intrinsic_trigonometric.inl"
      +00027 
      +00028 #endif//GLM_ARCH
      +00029 #endif//glm_detail_intrinsic_trigonometric
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00068_source.html b/doc/api-0.9.2/a00068_source.html new file mode 100644 index 00000000..33a68217 --- /dev/null +++ b/doc/api-0.9.2/a00068_source.html @@ -0,0 +1,73 @@ + + + + +intrinsic_vector_relational.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      intrinsic_vector_relational.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-06-09
      +00005 // Updated : 2009-06-09
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/intrinsic_vector_relational.hpp
      +00009 
      +00010 #ifndef glm_detail_intrinsic_vector_relational
      +00011 #define glm_detail_intrinsic_vector_relational
      +00012 
      +00013 #include "setup.hpp"
      +00014 
      +00015 #if((GLM_ARCH & GLM_ARCH_SSE2) != GLM_ARCH_SSE2)
      +00016 #       error "SSE2 instructions not supported or enabled"
      +00017 #else
      +00018 
      +00019 namespace glm{
      +00020 namespace detail
      +00021 {
      +00022 
      +00023 }//namespace detail
      +00024 }//namespace glm
      +00025 
      +00026 #include "intrinsic_vector_relational.inl"
      +00027 
      +00028 #endif//GLM_ARCH
      +00029 #endif//glm_detail_intrinsic_vector_relational
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00069_source.html b/doc/api-0.9.2/a00069_source.html new file mode 100644 index 00000000..bab19661 --- /dev/null +++ b/doc/api-0.9.2/a00069_source.html @@ -0,0 +1,85 @@ + + + + +log_base.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      log_base.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-10-24
      +00005 // Updated : 2008-10-24
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/log_base.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_log_base
      +00014 #define glm_gtx_log_base
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_log_base extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace log_base 
      +00026 {
      +00029 
      +00032         template <typename genType> 
      +00033         genType log(
      +00034                 genType const & x, 
      +00035                 genType const & base);
      +00036 
      +00038 
      +00039 }//namespace extend
      +00040 }//namespace gtx
      +00041 }//namespace glm
      +00042 
      +00043 #include "log_base.inl"
      +00044 
      +00045 namespace glm{using namespace gtx::log_base;}
      +00046 
      +00047 #endif//glm_gtx_log_base
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00070_source.html b/doc/api-0.9.2/a00070_source.html new file mode 100644 index 00000000..dd476353 --- /dev/null +++ b/doc/api-0.9.2/a00070_source.html @@ -0,0 +1,1736 @@ + + + + +man.doxy Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      man.doxy
      +
      +
      +
      00001 # Doxyfile 1.7.3
      +00002 
      +00003 # This file describes the settings to be used by the documentation system
      +00004 # doxygen (www.doxygen.org) for a project
      +00005 #
      +00006 # All text after a hash (#) is considered a comment and will be ignored
      +00007 # The format is:
      +00008 #       TAG = value [value, ...]
      +00009 # For lists items can also be appended using:
      +00010 #       TAG += value [value, ...]
      +00011 # Values that contain spaces should be placed between quotes (" ")
      +00012 
      +00013 #---------------------------------------------------------------------------
      +00014 # Project related configuration options
      +00015 #---------------------------------------------------------------------------
      +00016 
      +00017 # This tag specifies the encoding used for all characters in the config file 
      +00018 # that follow. The default is UTF-8 which is also the encoding used for all 
      +00019 # text before the first occurrence of this tag. Doxygen uses libiconv (or the 
      +00020 # iconv built into libc) for the transcoding. See 
      +00021 # http://www.gnu.org/software/libiconv for the list of possible encodings.
      +00022 
      +00023 DOXYFILE_ENCODING      = UTF-8
      +00024 
      +00025 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
      +00026 # by quotes) that should identify the project.
      +00027 
      +00028 PROJECT_NAME           = 
      +00029 
      +00030 # The PROJECT_NUMBER tag can be used to enter a project or revision number. 
      +00031 # This could be handy for archiving the generated documentation or 
      +00032 # if some version control system is used.
      +00033 
      +00034 PROJECT_NUMBER         = 0.9.2
      +00035 
      +00036 # Using the PROJECT_BRIEF tag one can provide an optional one line description
      +00037 # for a project that appears at the top of each page and should give viewer
      +00038 # a quick idea about the purpose of the project. Keep the description short.
      +00039 
      +00040 PROJECT_BRIEF          = 
      +00041 
      +00042 # With the PROJECT_LOGO tag one can specify an logo or icon that is 
      +00043 # included in the documentation. The maximum height of the logo should not 
      +00044 # exceed 55 pixels and the maximum width should not exceed 200 pixels. 
      +00045 # Doxygen will copy the logo to the output directory.
      +00046 
      +00047 PROJECT_LOGO           = ./image/logo-mini.png
      +00048 
      +00049 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
      +00050 # base path where the generated documentation will be put. 
      +00051 # If a relative path is entered, it will be relative to the location 
      +00052 # where doxygen was started. If left blank the current directory will be used.
      +00053 
      +00054 OUTPUT_DIRECTORY       = .
      +00055 
      +00056 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
      +00057 # 4096 sub-directories (in 2 levels) under the output directory of each output 
      +00058 # format and will distribute the generated files over these directories. 
      +00059 # Enabling this option can be useful when feeding doxygen a huge amount of 
      +00060 # source files, where putting all generated files in the same directory would 
      +00061 # otherwise cause performance problems for the file system.
      +00062 
      +00063 CREATE_SUBDIRS         = NO
      +00064 
      +00065 # The OUTPUT_LANGUAGE tag is used to specify the language in which all 
      +00066 # documentation generated by doxygen is written. Doxygen will use this 
      +00067 # information to generate all constant output in the proper language. 
      +00068 # The default language is English, other supported languages are: 
      +00069 # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
      +00070 # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, 
      +00071 # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English 
      +00072 # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, 
      +00073 # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, 
      +00074 # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
      +00075 
      +00076 OUTPUT_LANGUAGE        = English
      +00077 
      +00078 # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
      +00079 # include brief member descriptions after the members that are listed in 
      +00080 # the file and class documentation (similar to JavaDoc). 
      +00081 # Set to NO to disable this.
      +00082 
      +00083 BRIEF_MEMBER_DESC      = NO
      +00084 
      +00085 # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
      +00086 # the brief description of a member or function before the detailed description. 
      +00087 # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
      +00088 # brief descriptions will be completely suppressed.
      +00089 
      +00090 REPEAT_BRIEF           = YES
      +00091 
      +00092 # This tag implements a quasi-intelligent brief description abbreviator 
      +00093 # that is used to form the text in various listings. Each string 
      +00094 # in this list, if found as the leading text of the brief description, will be 
      +00095 # stripped from the text and the result after processing the whole list, is 
      +00096 # used as the annotated text. Otherwise, the brief description is used as-is. 
      +00097 # If left blank, the following values are used ("$name" is automatically 
      +00098 # replaced with the name of the entity): "The $name class" "The $name widget" 
      +00099 # "The $name file" "is" "provides" "specifies" "contains" 
      +00100 # "represents" "a" "an" "the"
      +00101 
      +00102 ABBREVIATE_BRIEF       = "The $name class       " \
      +00103                          "The $name widget       " \
      +00104                          "The $name file       " \
      +00105                          is \
      +00106                          provides \
      +00107                          specifies \
      +00108                          contains \
      +00109                          represents \
      +00110                          a \
      +00111                          an \
      +00112                          the
      +00113 
      +00114 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
      +00115 # Doxygen will generate a detailed section even if there is only a brief 
      +00116 # description.
      +00117 
      +00118 ALWAYS_DETAILED_SEC    = NO
      +00119 
      +00120 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
      +00121 # inherited members of a class in the documentation of that class as if those 
      +00122 # members were ordinary class members. Constructors, destructors and assignment 
      +00123 # operators of the base classes will not be shown.
      +00124 
      +00125 INLINE_INHERITED_MEMB  = NO
      +00126 
      +00127 # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
      +00128 # path before files name in the file list and in the header files. If set 
      +00129 # to NO the shortest path that makes the file name unique will be used.
      +00130 
      +00131 FULL_PATH_NAMES        = NO
      +00132 
      +00133 # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
      +00134 # can be used to strip a user-defined part of the path. Stripping is 
      +00135 # only done if one of the specified strings matches the left-hand part of 
      +00136 # the path. The tag can be used to show relative paths in the file list. 
      +00137 # If left blank the directory from which doxygen is run is used as the 
      +00138 # path to strip.
      +00139 
      +00140 STRIP_FROM_PATH        = "C:/Documents and Settings/Groove/       "
      +00141 
      +00142 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
      +00143 # the path mentioned in the documentation of a class, which tells 
      +00144 # the reader which header file to include in order to use a class. 
      +00145 # If left blank only the name of the header file containing the class 
      +00146 # definition is used. Otherwise one should specify the include paths that 
      +00147 # are normally passed to the compiler using the -I flag.
      +00148 
      +00149 STRIP_FROM_INC_PATH    = 
      +00150 
      +00151 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
      +00152 # (but less readable) file names. This can be useful if your file system 
      +00153 # doesn't support long names like on DOS, Mac, or CD-ROM.
      +00154 
      +00155 SHORT_NAMES            = YES
      +00156 
      +00157 # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
      +00158 # will interpret the first line (until the first dot) of a JavaDoc-style 
      +00159 # comment as the brief description. If set to NO, the JavaDoc 
      +00160 # comments will behave just like regular Qt-style comments 
      +00161 # (thus requiring an explicit @brief command for a brief description.)
      +00162 
      +00163 JAVADOC_AUTOBRIEF      = YES
      +00164 
      +00165 # If the QT_AUTOBRIEF tag is set to YES then Doxygen will 
      +00166 # interpret the first line (until the first dot) of a Qt-style 
      +00167 # comment as the brief description. If set to NO, the comments 
      +00168 # will behave just like regular Qt-style comments (thus requiring 
      +00169 # an explicit \brief command for a brief description.)
      +00170 
      +00171 QT_AUTOBRIEF           = NO
      +00172 
      +00173 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
      +00174 # treat a multi-line C++ special comment block (i.e. a block of //! or /// 
      +00175 # comments) as a brief description. This used to be the default behaviour. 
      +00176 # The new default is to treat a multi-line C++ comment block as a detailed 
      +00177 # description. Set this tag to YES if you prefer the old behaviour instead.
      +00178 
      +00179 MULTILINE_CPP_IS_BRIEF = NO
      +00180 
      +00181 # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
      +00182 # member inherits the documentation from any documented member that it 
      +00183 # re-implements.
      +00184 
      +00185 INHERIT_DOCS           = YES
      +00186 
      +00187 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
      +00188 # a new page for each member. If set to NO, the documentation of a member will 
      +00189 # be part of the file/class/namespace that contains it.
      +00190 
      +00191 SEPARATE_MEMBER_PAGES  = NO
      +00192 
      +00193 # The TAB_SIZE tag can be used to set the number of spaces in a tab. 
      +00194 # Doxygen uses this value to replace tabs by spaces in code fragments.
      +00195 
      +00196 TAB_SIZE               = 8
      +00197 
      +00198 # This tag can be used to specify a number of aliases that acts 
      +00199 # as commands in the documentation. An alias has the form "name=value". 
      +00200 # For example adding "sideeffect=\par Side Effects:\n" will allow you to 
      +00201 # put the command \sideeffect (or @sideeffect) in the documentation, which 
      +00202 # will result in a user-defined paragraph with heading "Side Effects:". 
      +00203 # You can put \n's in the value part of an alias to insert newlines.
      +00204 
      +00205 ALIASES                = 
      +00206 
      +00207 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
      +00208 # sources only. Doxygen will then generate output that is more tailored for C. 
      +00209 # For instance, some of the names that are used will be different. The list 
      +00210 # of all members will be omitted, etc.
      +00211 
      +00212 OPTIMIZE_OUTPUT_FOR_C  = NO
      +00213 
      +00214 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
      +00215 # sources only. Doxygen will then generate output that is more tailored for 
      +00216 # Java. For instance, namespaces will be presented as packages, qualified 
      +00217 # scopes will look different, etc.
      +00218 
      +00219 OPTIMIZE_OUTPUT_JAVA   = NO
      +00220 
      +00221 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 
      +00222 # sources only. Doxygen will then generate output that is more tailored for 
      +00223 # Fortran.
      +00224 
      +00225 OPTIMIZE_FOR_FORTRAN   = NO
      +00226 
      +00227 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 
      +00228 # sources. Doxygen will then generate output that is tailored for 
      +00229 # VHDL.
      +00230 
      +00231 OPTIMIZE_OUTPUT_VHDL   = NO
      +00232 
      +00233 # Doxygen selects the parser to use depending on the extension of the files it 
      +00234 # parses. With this tag you can assign which parser to use for a given extension. 
      +00235 # Doxygen has a built-in mapping, but you can override or extend it using this 
      +00236 # tag. The format is ext=language, where ext is a file extension, and language 
      +00237 # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, 
      +00238 # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make 
      +00239 # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C 
      +00240 # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions 
      +00241 # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
      +00242 
      +00243 EXTENSION_MAPPING      = 
      +00244 
      +00245 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 
      +00246 # to include (a tag file for) the STL sources as input, then you should 
      +00247 # set this tag to YES in order to let doxygen match functions declarations and 
      +00248 # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
      +00249 # func(std::string) {}). This also makes the inheritance and collaboration 
      +00250 # diagrams that involve STL classes more complete and accurate.
      +00251 
      +00252 BUILTIN_STL_SUPPORT    = NO
      +00253 
      +00254 # If you use Microsoft's C++/CLI language, you should set this option to YES to 
      +00255 # enable parsing support.
      +00256 
      +00257 CPP_CLI_SUPPORT        = NO
      +00258 
      +00259 # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 
      +00260 # Doxygen will parse them like normal C++ but will assume all classes use public 
      +00261 # instead of private inheritance when no explicit protection keyword is present.
      +00262 
      +00263 SIP_SUPPORT            = NO
      +00264 
      +00265 # For Microsoft's IDL there are propget and propput attributes to indicate getter 
      +00266 # and setter methods for a property. Setting this option to YES (the default) 
      +00267 # will make doxygen replace the get and set methods by a property in the 
      +00268 # documentation. This will only work if the methods are indeed getting or 
      +00269 # setting a simple type. If this is not the case, or you want to show the 
      +00270 # methods anyway, you should set this option to NO.
      +00271 
      +00272 IDL_PROPERTY_SUPPORT   = YES
      +00273 
      +00274 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
      +00275 # tag is set to YES, then doxygen will reuse the documentation of the first 
      +00276 # member in the group (if any) for the other members of the group. By default 
      +00277 # all members of a group must be documented explicitly.
      +00278 
      +00279 DISTRIBUTE_GROUP_DOC   = NO
      +00280 
      +00281 # Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
      +00282 # the same type (for instance a group of public functions) to be put as a 
      +00283 # subgroup of that type (e.g. under the Public Functions section). Set it to 
      +00284 # NO to prevent subgrouping. Alternatively, this can be done per class using 
      +00285 # the \nosubgrouping command.
      +00286 
      +00287 SUBGROUPING            = NO
      +00288 
      +00289 # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 
      +00290 # is documented as struct, union, or enum with the name of the typedef. So 
      +00291 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct 
      +00292 # with name TypeT. When disabled the typedef will appear as a member of a file, 
      +00293 # namespace, or class. And the struct will be named TypeS. This can typically 
      +00294 # be useful for C code in case the coding convention dictates that all compound 
      +00295 # types are typedef'ed and only the typedef is referenced, never the tag name.
      +00296 
      +00297 TYPEDEF_HIDES_STRUCT   = NO
      +00298 
      +00299 # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to 
      +00300 # determine which symbols to keep in memory and which to flush to disk. 
      +00301 # When the cache is full, less often used symbols will be written to disk. 
      +00302 # For small to medium size projects (<1000 input files) the default value is 
      +00303 # probably good enough. For larger projects a too small cache size can cause 
      +00304 # doxygen to be busy swapping symbols to and from disk most of the time 
      +00305 # causing a significant performance penalty. 
      +00306 # If the system has enough physical memory increasing the cache will improve the 
      +00307 # performance by keeping more symbols in memory. Note that the value works on 
      +00308 # a logarithmic scale so increasing the size by one will roughly double the 
      +00309 # memory usage. The cache size is given by this formula: 
      +00310 # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, 
      +00311 # corresponding to a cache size of 2^16 = 65536 symbols
      +00312 
      +00313 SYMBOL_CACHE_SIZE      = 0
      +00314 
      +00315 #---------------------------------------------------------------------------
      +00316 # Build related configuration options
      +00317 #---------------------------------------------------------------------------
      +00318 
      +00319 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
      +00320 # documentation are documented, even if no documentation was available. 
      +00321 # Private class members and static file members will be hidden unless 
      +00322 # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
      +00323 
      +00324 EXTRACT_ALL            = NO
      +00325 
      +00326 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
      +00327 # will be included in the documentation.
      +00328 
      +00329 EXTRACT_PRIVATE        = NO
      +00330 
      +00331 # If the EXTRACT_STATIC tag is set to YES all static members of a file 
      +00332 # will be included in the documentation.
      +00333 
      +00334 EXTRACT_STATIC         = YES
      +00335 
      +00336 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
      +00337 # defined locally in source files will be included in the documentation. 
      +00338 # If set to NO only classes defined in header files are included.
      +00339 
      +00340 EXTRACT_LOCAL_CLASSES  = NO
      +00341 
      +00342 # This flag is only useful for Objective-C code. When set to YES local 
      +00343 # methods, which are defined in the implementation section but not in 
      +00344 # the interface are included in the documentation. 
      +00345 # If set to NO (the default) only methods in the interface are included.
      +00346 
      +00347 EXTRACT_LOCAL_METHODS  = NO
      +00348 
      +00349 # If this flag is set to YES, the members of anonymous namespaces will be 
      +00350 # extracted and appear in the documentation as a namespace called 
      +00351 # 'anonymous_namespace{file}', where file will be replaced with the base 
      +00352 # name of the file that contains the anonymous namespace. By default 
      +00353 # anonymous namespaces are hidden.
      +00354 
      +00355 EXTRACT_ANON_NSPACES   = NO
      +00356 
      +00357 # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
      +00358 # undocumented members of documented classes, files or namespaces. 
      +00359 # If set to NO (the default) these members will be included in the 
      +00360 # various overviews, but no documentation section is generated. 
      +00361 # This option has no effect if EXTRACT_ALL is enabled.
      +00362 
      +00363 HIDE_UNDOC_MEMBERS     = YES
      +00364 
      +00365 # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
      +00366 # undocumented classes that are normally visible in the class hierarchy. 
      +00367 # If set to NO (the default) these classes will be included in the various 
      +00368 # overviews. This option has no effect if EXTRACT_ALL is enabled.
      +00369 
      +00370 HIDE_UNDOC_CLASSES     = YES
      +00371 
      +00372 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
      +00373 # friend (class|struct|union) declarations. 
      +00374 # If set to NO (the default) these declarations will be included in the 
      +00375 # documentation.
      +00376 
      +00377 HIDE_FRIEND_COMPOUNDS  = YES
      +00378 
      +00379 # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
      +00380 # documentation blocks found inside the body of a function. 
      +00381 # If set to NO (the default) these blocks will be appended to the 
      +00382 # function's detailed documentation block.
      +00383 
      +00384 HIDE_IN_BODY_DOCS      = YES
      +00385 
      +00386 # The INTERNAL_DOCS tag determines if documentation 
      +00387 # that is typed after a \internal command is included. If the tag is set 
      +00388 # to NO (the default) then the documentation will be excluded. 
      +00389 # Set it to YES to include the internal documentation.
      +00390 
      +00391 INTERNAL_DOCS          = NO
      +00392 
      +00393 # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
      +00394 # file names in lower-case letters. If set to YES upper-case letters are also 
      +00395 # allowed. This is useful if you have classes or files whose names only differ 
      +00396 # in case and if your file system supports case sensitive file names. Windows 
      +00397 # and Mac users are advised to set this option to NO.
      +00398 
      +00399 CASE_SENSE_NAMES       = YES
      +00400 
      +00401 # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
      +00402 # will show members with their full class and namespace scopes in the 
      +00403 # documentation. If set to YES the scope will be hidden.
      +00404 
      +00405 HIDE_SCOPE_NAMES       = YES
      +00406 
      +00407 # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
      +00408 # will put a list of the files that are included by a file in the documentation 
      +00409 # of that file.
      +00410 
      +00411 SHOW_INCLUDE_FILES     = NO
      +00412 
      +00413 # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen 
      +00414 # will list include files with double quotes in the documentation 
      +00415 # rather than with sharp brackets.
      +00416 
      +00417 FORCE_LOCAL_INCLUDES   = NO
      +00418 
      +00419 # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
      +00420 # is inserted in the documentation for inline members.
      +00421 
      +00422 INLINE_INFO            = NO
      +00423 
      +00424 # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
      +00425 # will sort the (detailed) documentation of file and class members 
      +00426 # alphabetically by member name. If set to NO the members will appear in 
      +00427 # declaration order.
      +00428 
      +00429 SORT_MEMBER_DOCS       = YES
      +00430 
      +00431 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
      +00432 # brief documentation of file, namespace and class members alphabetically 
      +00433 # by member name. If set to NO (the default) the members will appear in 
      +00434 # declaration order.
      +00435 
      +00436 SORT_BRIEF_DOCS        = YES
      +00437 
      +00438 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen 
      +00439 # will sort the (brief and detailed) documentation of class members so that 
      +00440 # constructors and destructors are listed first. If set to NO (the default) 
      +00441 # the constructors will appear in the respective orders defined by 
      +00442 # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. 
      +00443 # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO 
      +00444 # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
      +00445 
      +00446 SORT_MEMBERS_CTORS_1ST = NO
      +00447 
      +00448 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 
      +00449 # hierarchy of group names into alphabetical order. If set to NO (the default) 
      +00450 # the group names will appear in their defined order.
      +00451 
      +00452 SORT_GROUP_NAMES       = NO
      +00453 
      +00454 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
      +00455 # sorted by fully-qualified names, including namespaces. If set to 
      +00456 # NO (the default), the class list will be sorted only by class name, 
      +00457 # not including the namespace part. 
      +00458 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. 
      +00459 # Note: This option applies only to the class list, not to the 
      +00460 # alphabetical list.
      +00461 
      +00462 SORT_BY_SCOPE_NAME     = YES
      +00463 
      +00464 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
      +00465 # do proper type resolution of all parameters of a function it will reject a 
      +00466 # match between the prototype and the implementation of a member function even
      +00467 # if there is only one candidate or it is obvious which candidate to choose
      +00468 # by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen 
      +00469 # will still accept a match between prototype and implementation in such cases.
      +00470 
      +00471 STRICT_PROTO_MATCHING  = NO
      +00472 
      +00473 # The GENERATE_TODOLIST tag can be used to enable (YES) or 
      +00474 # disable (NO) the todo list. This list is created by putting \todo 
      +00475 # commands in the documentation.
      +00476 
      +00477 GENERATE_TODOLIST      = YES
      +00478 
      +00479 # The GENERATE_TESTLIST tag can be used to enable (YES) or 
      +00480 # disable (NO) the test list. This list is created by putting \test 
      +00481 # commands in the documentation.
      +00482 
      +00483 GENERATE_TESTLIST      = YES
      +00484 
      +00485 # The GENERATE_BUGLIST tag can be used to enable (YES) or 
      +00486 # disable (NO) the bug list. This list is created by putting \bug 
      +00487 # commands in the documentation.
      +00488 
      +00489 GENERATE_BUGLIST       = YES
      +00490 
      +00491 # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
      +00492 # disable (NO) the deprecated list. This list is created by putting 
      +00493 # \deprecated commands in the documentation.
      +00494 
      +00495 GENERATE_DEPRECATEDLIST= YES
      +00496 
      +00497 # The ENABLED_SECTIONS tag can be used to enable conditional 
      +00498 # documentation sections, marked by \if sectionname ... \endif.
      +00499 
      +00500 ENABLED_SECTIONS       = 
      +00501 
      +00502 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
      +00503 # the initial value of a variable or macro consists of for it to appear in 
      +00504 # the documentation. If the initializer consists of more lines than specified 
      +00505 # here it will be hidden. Use a value of 0 to hide initializers completely. 
      +00506 # The appearance of the initializer of individual variables and macros in the 
      +00507 # documentation can be controlled using \showinitializer or \hideinitializer 
      +00508 # command in the documentation regardless of this setting.
      +00509 
      +00510 MAX_INITIALIZER_LINES  = 30
      +00511 
      +00512 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
      +00513 # at the bottom of the documentation of classes and structs. If set to YES the 
      +00514 # list will mention the files that were used to generate the documentation.
      +00515 
      +00516 SHOW_USED_FILES        = NO
      +00517 
      +00518 # If the sources in your project are distributed over multiple directories 
      +00519 # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
      +00520 # in the documentation. The default is NO.
      +00521 
      +00522 SHOW_DIRECTORIES       = NO
      +00523 
      +00524 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. 
      +00525 # This will remove the Files entry from the Quick Index and from the 
      +00526 # Folder Tree View (if specified). The default is YES.
      +00527 
      +00528 SHOW_FILES             = YES
      +00529 
      +00530 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the 
      +00531 # Namespaces page.  This will remove the Namespaces entry from the Quick Index 
      +00532 # and from the Folder Tree View (if specified). The default is YES.
      +00533 
      +00534 SHOW_NAMESPACES        = YES
      +00535 
      +00536 # The FILE_VERSION_FILTER tag can be used to specify a program or script that 
      +00537 # doxygen should invoke to get the current version for each file (typically from 
      +00538 # the version control system). Doxygen will invoke the program by executing (via 
      +00539 # popen()) the command <command> <input-file>, where <command> is the value of 
      +00540 # the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
      +00541 # provided by doxygen. Whatever the program writes to standard output 
      +00542 # is used as the file version. See the manual for examples.
      +00543 
      +00544 FILE_VERSION_FILTER    = 
      +00545 
      +00546 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed 
      +00547 # by doxygen. The layout file controls the global structure of the generated 
      +00548 # output files in an output format independent way. The create the layout file 
      +00549 # that represents doxygen's defaults, run doxygen with the -l option. 
      +00550 # You can optionally specify a file name after the option, if omitted 
      +00551 # DoxygenLayout.xml will be used as the name of the layout file.
      +00552 
      +00553 LAYOUT_FILE            = 
      +00554 
      +00555 #---------------------------------------------------------------------------
      +00556 # configuration options related to warning and progress messages
      +00557 #---------------------------------------------------------------------------
      +00558 
      +00559 # The QUIET tag can be used to turn on/off the messages that are generated 
      +00560 # by doxygen. Possible values are YES and NO. If left blank NO is used.
      +00561 
      +00562 QUIET                  = NO
      +00563 
      +00564 # The WARNINGS tag can be used to turn on/off the warning messages that are 
      +00565 # generated by doxygen. Possible values are YES and NO. If left blank 
      +00566 # NO is used.
      +00567 
      +00568 WARNINGS               = YES
      +00569 
      +00570 # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
      +00571 # for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
      +00572 # automatically be disabled.
      +00573 
      +00574 WARN_IF_UNDOCUMENTED   = YES
      +00575 
      +00576 # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
      +00577 # potential errors in the documentation, such as not documenting some 
      +00578 # parameters in a documented function, or documenting parameters that 
      +00579 # don't exist or using markup commands wrongly.
      +00580 
      +00581 WARN_IF_DOC_ERROR      = YES
      +00582 
      +00583 # The WARN_NO_PARAMDOC option can be enabled to get warnings for 
      +00584 # functions that are documented, but have no documentation for their parameters 
      +00585 # or return value. If set to NO (the default) doxygen will only warn about 
      +00586 # wrong or incomplete parameter documentation, but not about the absence of 
      +00587 # documentation.
      +00588 
      +00589 WARN_NO_PARAMDOC       = NO
      +00590 
      +00591 # The WARN_FORMAT tag determines the format of the warning messages that 
      +00592 # doxygen can produce. The string should contain the $file, $line, and $text 
      +00593 # tags, which will be replaced by the file and line number from which the 
      +00594 # warning originated and the warning text. Optionally the format may contain 
      +00595 # $version, which will be replaced by the version of the file (if it could 
      +00596 # be obtained via FILE_VERSION_FILTER)
      +00597 
      +00598 WARN_FORMAT            = "$file:$line: $text"
      +00599 
      +00600 # The WARN_LOGFILE tag can be used to specify a file to which warning 
      +00601 # and error messages should be written. If left blank the output is written 
      +00602 # to stderr.
      +00603 
      +00604 WARN_LOGFILE           = 
      +00605 
      +00606 #---------------------------------------------------------------------------
      +00607 # configuration options related to the input files
      +00608 #---------------------------------------------------------------------------
      +00609 
      +00610 # The INPUT tag can be used to specify the files and/or directories that contain 
      +00611 # documented source files. You may enter file names like "myfile.cpp" or 
      +00612 # directories like "/usr/src/myproject". Separate the files or directories 
      +00613 # with spaces.
      +00614 
      +00615 INPUT                  = ../glm \
      +00616                          .
      +00617 
      +00618 # This tag can be used to specify the character encoding of the source files 
      +00619 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
      +00620 # also the default input encoding. Doxygen uses libiconv (or the iconv built 
      +00621 # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
      +00622 # the list of possible encodings.
      +00623 
      +00624 INPUT_ENCODING         = UTF-8
      +00625 
      +00626 # If the value of the INPUT tag contains directories, you can use the 
      +00627 # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
      +00628 # and *.h) to filter out the source-files in the directories. If left 
      +00629 # blank the following patterns are tested: 
      +00630 # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh 
      +00631 # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py 
      +00632 # *.f90 *.f *.for *.vhd *.vhdl
      +00633 
      +00634 FILE_PATTERNS          = *.hpp \
      +00635                          *.doxy
      +00636 
      +00637 # The RECURSIVE tag can be used to turn specify whether or not subdirectories 
      +00638 # should be searched for input files as well. Possible values are YES and NO. 
      +00639 # If left blank NO is used.
      +00640 
      +00641 RECURSIVE              = YES
      +00642 
      +00643 # The EXCLUDE tag can be used to specify files and/or directories that should 
      +00644 # excluded from the INPUT source files. This way you can easily exclude a 
      +00645 # subdirectory from a directory tree whose root is specified with the INPUT tag.
      +00646 
      +00647 EXCLUDE                = 
      +00648 
      +00649 # The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
      +00650 # directories that are symbolic links (a Unix file system feature) are excluded 
      +00651 # from the input.
      +00652 
      +00653 EXCLUDE_SYMLINKS       = NO
      +00654 
      +00655 # If the value of the INPUT tag contains directories, you can use the 
      +00656 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
      +00657 # certain files from those directories. Note that the wildcards are matched 
      +00658 # against the file with absolute path, so to exclude all test directories 
      +00659 # for example use the pattern */test/*
      +00660 
      +00661 EXCLUDE_PATTERNS       = 
      +00662 
      +00663 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
      +00664 # (namespaces, classes, functions, etc.) that should be excluded from the 
      +00665 # output. The symbol name can be a fully qualified name, a word, or if the 
      +00666 # wildcard * is used, a substring. Examples: ANamespace, AClass, 
      +00667 # AClass::ANamespace, ANamespace::*Test
      +00668 
      +00669 EXCLUDE_SYMBOLS        = 
      +00670 
      +00671 # The EXAMPLE_PATH tag can be used to specify one or more files or 
      +00672 # directories that contain example code fragments that are included (see 
      +00673 # the \include command).
      +00674 
      +00675 EXAMPLE_PATH           = 
      +00676 
      +00677 # If the value of the EXAMPLE_PATH tag contains directories, you can use the 
      +00678 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
      +00679 # and *.h) to filter out the source-files in the directories. If left 
      +00680 # blank all files are included.
      +00681 
      +00682 EXAMPLE_PATTERNS       = *
      +00683 
      +00684 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
      +00685 # searched for input files to be used with the \include or \dontinclude 
      +00686 # commands irrespective of the value of the RECURSIVE tag. 
      +00687 # Possible values are YES and NO. If left blank NO is used.
      +00688 
      +00689 EXAMPLE_RECURSIVE      = NO
      +00690 
      +00691 # The IMAGE_PATH tag can be used to specify one or more files or 
      +00692 # directories that contain image that are included in the documentation (see 
      +00693 # the \image command).
      +00694 
      +00695 IMAGE_PATH             = 
      +00696 
      +00697 # The INPUT_FILTER tag can be used to specify a program that doxygen should 
      +00698 # invoke to filter for each input file. Doxygen will invoke the filter program 
      +00699 # by executing (via popen()) the command <filter> <input-file>, where <filter> 
      +00700 # is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
      +00701 # input file. Doxygen will then use the output that the filter program writes 
      +00702 # to standard output.  If FILTER_PATTERNS is specified, this tag will be 
      +00703 # ignored.
      +00704 
      +00705 INPUT_FILTER           = 
      +00706 
      +00707 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
      +00708 # basis.  Doxygen will compare the file name with each pattern and apply the 
      +00709 # filter if there is a match.  The filters are a list of the form: 
      +00710 # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
      +00711 # info on how filters are used. If FILTER_PATTERNS is empty or if 
      +00712 # non of the patterns match the file name, INPUT_FILTER is applied.
      +00713 
      +00714 FILTER_PATTERNS        = 
      +00715 
      +00716 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
      +00717 # INPUT_FILTER) will be used to filter the input files when producing source 
      +00718 # files to browse (i.e. when SOURCE_BROWSER is set to YES).
      +00719 
      +00720 FILTER_SOURCE_FILES    = NO
      +00721 
      +00722 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file 
      +00723 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) 
      +00724 # and it is also possible to disable source filtering for a specific pattern 
      +00725 # using *.ext= (so without naming a filter). This option only has effect when 
      +00726 # FILTER_SOURCE_FILES is enabled.
      +00727 
      +00728 FILTER_SOURCE_PATTERNS = 
      +00729 
      +00730 #---------------------------------------------------------------------------
      +00731 # configuration options related to source browsing
      +00732 #---------------------------------------------------------------------------
      +00733 
      +00734 # If the SOURCE_BROWSER tag is set to YES then a list of source files will 
      +00735 # be generated. Documented entities will be cross-referenced with these sources. 
      +00736 # Note: To get rid of all source code in the generated output, make sure also 
      +00737 # VERBATIM_HEADERS is set to NO.
      +00738 
      +00739 SOURCE_BROWSER         = YES
      +00740 
      +00741 # Setting the INLINE_SOURCES tag to YES will include the body 
      +00742 # of functions and classes directly in the documentation.
      +00743 
      +00744 INLINE_SOURCES         = NO
      +00745 
      +00746 # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
      +00747 # doxygen to hide any special comment blocks from generated source code 
      +00748 # fragments. Normal C and C++ comments will always remain visible.
      +00749 
      +00750 STRIP_CODE_COMMENTS    = YES
      +00751 
      +00752 # If the REFERENCED_BY_RELATION tag is set to YES 
      +00753 # then for each documented function all documented 
      +00754 # functions referencing it will be listed.
      +00755 
      +00756 REFERENCED_BY_RELATION = YES
      +00757 
      +00758 # If the REFERENCES_RELATION tag is set to YES 
      +00759 # then for each documented function all documented entities 
      +00760 # called/used by that function will be listed.
      +00761 
      +00762 REFERENCES_RELATION    = YES
      +00763 
      +00764 # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) 
      +00765 # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from 
      +00766 # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will 
      +00767 # link to the source code.  Otherwise they will link to the documentation.
      +00768 
      +00769 REFERENCES_LINK_SOURCE = YES
      +00770 
      +00771 # If the USE_HTAGS tag is set to YES then the references to source code 
      +00772 # will point to the HTML generated by the htags(1) tool instead of doxygen 
      +00773 # built-in source browser. The htags tool is part of GNU's global source 
      +00774 # tagging system (see http://www.gnu.org/software/global/global.html). You 
      +00775 # will need version 4.8.6 or higher.
      +00776 
      +00777 USE_HTAGS              = NO
      +00778 
      +00779 # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
      +00780 # will generate a verbatim copy of the header file for each class for 
      +00781 # which an include is specified. Set to NO to disable this.
      +00782 
      +00783 VERBATIM_HEADERS       = YES
      +00784 
      +00785 #---------------------------------------------------------------------------
      +00786 # configuration options related to the alphabetical class index
      +00787 #---------------------------------------------------------------------------
      +00788 
      +00789 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
      +00790 # of all compounds will be generated. Enable this if the project 
      +00791 # contains a lot of classes, structs, unions or interfaces.
      +00792 
      +00793 ALPHABETICAL_INDEX     = NO
      +00794 
      +00795 # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
      +00796 # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
      +00797 # in which this list will be split (can be a number in the range [1..20])
      +00798 
      +00799 COLS_IN_ALPHA_INDEX    = 5
      +00800 
      +00801 # In case all classes in a project start with a common prefix, all 
      +00802 # classes will be put under the same header in the alphabetical index. 
      +00803 # The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
      +00804 # should be ignored while generating the index headers.
      +00805 
      +00806 IGNORE_PREFIX          = 
      +00807 
      +00808 #---------------------------------------------------------------------------
      +00809 # configuration options related to the HTML output
      +00810 #---------------------------------------------------------------------------
      +00811 
      +00812 # If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
      +00813 # generate HTML output.
      +00814 
      +00815 GENERATE_HTML          = YES
      +00816 
      +00817 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
      +00818 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
      +00819 # put in front of it. If left blank `html' will be used as the default path.
      +00820 
      +00821 HTML_OUTPUT            = html
      +00822 
      +00823 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
      +00824 # each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
      +00825 # doxygen will generate files with .html extension.
      +00826 
      +00827 HTML_FILE_EXTENSION    = .html
      +00828 
      +00829 # The HTML_HEADER tag can be used to specify a personal HTML header for 
      +00830 # each generated HTML page. If it is left blank doxygen will generate a 
      +00831 # standard header.
      +00832 
      +00833 HTML_HEADER            = 
      +00834 
      +00835 # The HTML_FOOTER tag can be used to specify a personal HTML footer for 
      +00836 # each generated HTML page. If it is left blank doxygen will generate a 
      +00837 # standard footer.
      +00838 
      +00839 HTML_FOOTER            = 
      +00840 
      +00841 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
      +00842 # style sheet that is used by each HTML page. It can be used to 
      +00843 # fine-tune the look of the HTML output. If the tag is left blank doxygen 
      +00844 # will generate a default style sheet. Note that doxygen will try to copy 
      +00845 # the style sheet file to the HTML output directory, so don't put your own 
      +00846 # stylesheet in the HTML output directory as well, or it will be erased!
      +00847 
      +00848 HTML_STYLESHEET        = 
      +00849 
      +00850 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. 
      +00851 # Doxygen will adjust the colors in the stylesheet and background images 
      +00852 # according to this color. Hue is specified as an angle on a colorwheel, 
      +00853 # see http://en.wikipedia.org/wiki/Hue for more information. 
      +00854 # For instance the value 0 represents red, 60 is yellow, 120 is green, 
      +00855 # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. 
      +00856 # The allowed range is 0 to 359.
      +00857 
      +00858 HTML_COLORSTYLE_HUE    = 220
      +00859 
      +00860 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of 
      +00861 # the colors in the HTML output. For a value of 0 the output will use 
      +00862 # grayscales only. A value of 255 will produce the most vivid colors.
      +00863 
      +00864 HTML_COLORSTYLE_SAT    = 100
      +00865 
      +00866 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to 
      +00867 # the luminance component of the colors in the HTML output. Values below 
      +00868 # 100 gradually make the output lighter, whereas values above 100 make 
      +00869 # the output darker. The value divided by 100 is the actual gamma applied, 
      +00870 # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, 
      +00871 # and 100 does not change the gamma.
      +00872 
      +00873 HTML_COLORSTYLE_GAMMA  = 80
      +00874 
      +00875 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML 
      +00876 # page will contain the date and time when the page was generated. Setting 
      +00877 # this to NO can help when comparing the output of multiple runs.
      +00878 
      +00879 HTML_TIMESTAMP         = NO
      +00880 
      +00881 # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
      +00882 # files or namespaces will be aligned in HTML using tables. If set to 
      +00883 # NO a bullet list will be used.
      +00884 
      +00885 HTML_ALIGN_MEMBERS     = YES
      +00886 
      +00887 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 
      +00888 # documentation will contain sections that can be hidden and shown after the 
      +00889 # page has loaded. For this to work a browser that supports 
      +00890 # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox 
      +00891 # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
      +00892 
      +00893 HTML_DYNAMIC_SECTIONS  = NO
      +00894 
      +00895 # If the GENERATE_DOCSET tag is set to YES, additional index files 
      +00896 # will be generated that can be used as input for Apple's Xcode 3 
      +00897 # integrated development environment, introduced with OSX 10.5 (Leopard). 
      +00898 # To create a documentation set, doxygen will generate a Makefile in the 
      +00899 # HTML output directory. Running make will produce the docset in that 
      +00900 # directory and running "make install" will install the docset in 
      +00901 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 
      +00902 # it at startup. 
      +00903 # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html 
      +00904 # for more information.
      +00905 
      +00906 GENERATE_DOCSET        = NO
      +00907 
      +00908 # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 
      +00909 # feed. A documentation feed provides an umbrella under which multiple 
      +00910 # documentation sets from a single provider (such as a company or product suite) 
      +00911 # can be grouped.
      +00912 
      +00913 DOCSET_FEEDNAME        = "Doxygen generated docs"
      +00914 
      +00915 # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 
      +00916 # should uniquely identify the documentation set bundle. This should be a 
      +00917 # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 
      +00918 # will append .docset to the name.
      +00919 
      +00920 DOCSET_BUNDLE_ID       = org.doxygen.Project
      +00921 
      +00922 # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify 
      +00923 # the documentation publisher. This should be a reverse domain-name style 
      +00924 # string, e.g. com.mycompany.MyDocSet.documentation.
      +00925 
      +00926 DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
      +00927 
      +00928 # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
      +00929 
      +00930 DOCSET_PUBLISHER_NAME  = Publisher
      +00931 
      +00932 # If the GENERATE_HTMLHELP tag is set to YES, additional index files 
      +00933 # will be generated that can be used as input for tools like the 
      +00934 # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 
      +00935 # of the generated HTML documentation.
      +00936 
      +00937 GENERATE_HTMLHELP      = NO
      +00938 
      +00939 # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
      +00940 # be used to specify the file name of the resulting .chm file. You 
      +00941 # can add a path in front of the file if the result should not be 
      +00942 # written to the html output directory.
      +00943 
      +00944 CHM_FILE               = 
      +00945 
      +00946 # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
      +00947 # be used to specify the location (absolute path including file name) of 
      +00948 # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
      +00949 # the HTML help compiler on the generated index.hhp.
      +00950 
      +00951 HHC_LOCATION           = 
      +00952 
      +00953 # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
      +00954 # controls if a separate .chi index file is generated (YES) or that 
      +00955 # it should be included in the master .chm file (NO).
      +00956 
      +00957 GENERATE_CHI           = NO
      +00958 
      +00959 # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING 
      +00960 # is used to encode HtmlHelp index (hhk), content (hhc) and project file 
      +00961 # content.
      +00962 
      +00963 CHM_INDEX_ENCODING     = 
      +00964 
      +00965 # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
      +00966 # controls whether a binary table of contents is generated (YES) or a 
      +00967 # normal table of contents (NO) in the .chm file.
      +00968 
      +00969 BINARY_TOC             = NO
      +00970 
      +00971 # The TOC_EXPAND flag can be set to YES to add extra items for group members 
      +00972 # to the contents of the HTML help documentation and to the tree view.
      +00973 
      +00974 TOC_EXPAND             = NO
      +00975 
      +00976 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and 
      +00977 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated 
      +00978 # that can be used as input for Qt's qhelpgenerator to generate a 
      +00979 # Qt Compressed Help (.qch) of the generated HTML documentation.
      +00980 
      +00981 GENERATE_QHP           = NO
      +00982 
      +00983 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can 
      +00984 # be used to specify the file name of the resulting .qch file. 
      +00985 # The path specified is relative to the HTML output folder.
      +00986 
      +00987 QCH_FILE               = 
      +00988 
      +00989 # The QHP_NAMESPACE tag specifies the namespace to use when generating 
      +00990 # Qt Help Project output. For more information please see 
      +00991 # http://doc.trolltech.com/qthelpproject.html#namespace
      +00992 
      +00993 QHP_NAMESPACE          = org.doxygen.Project
      +00994 
      +00995 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating 
      +00996 # Qt Help Project output. For more information please see 
      +00997 # http://doc.trolltech.com/qthelpproject.html#virtual-folders
      +00998 
      +00999 QHP_VIRTUAL_FOLDER     = doc
      +01000 
      +01001 # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to 
      +01002 # add. For more information please see 
      +01003 # http://doc.trolltech.com/qthelpproject.html#custom-filters
      +01004 
      +01005 QHP_CUST_FILTER_NAME   = 
      +01006 
      +01007 # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the 
      +01008 # custom filter to add. For more information please see 
      +01009 # <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters"> 
      +01010 # Qt Help Project / Custom Filters</a>.
      +01011 
      +01012 QHP_CUST_FILTER_ATTRS  = 
      +01013 
      +01014 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this 
      +01015 # project's 
      +01016 # filter section matches. 
      +01017 # <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes"> 
      +01018 # Qt Help Project / Filter Attributes</a>.
      +01019 
      +01020 QHP_SECT_FILTER_ATTRS  = 
      +01021 
      +01022 # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can 
      +01023 # be used to specify the location of Qt's qhelpgenerator. 
      +01024 # If non-empty doxygen will try to run qhelpgenerator on the generated 
      +01025 # .qhp file.
      +01026 
      +01027 QHG_LOCATION           = 
      +01028 
      +01029 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files  
      +01030 # will be generated, which together with the HTML files, form an Eclipse help 
      +01031 # plugin. To install this plugin and make it available under the help contents 
      +01032 # menu in Eclipse, the contents of the directory containing the HTML and XML 
      +01033 # files needs to be copied into the plugins directory of eclipse. The name of 
      +01034 # the directory within the plugins directory should be the same as 
      +01035 # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before 
      +01036 # the help appears.
      +01037 
      +01038 GENERATE_ECLIPSEHELP   = NO
      +01039 
      +01040 # A unique identifier for the eclipse help plugin. When installing the plugin 
      +01041 # the directory name containing the HTML and XML files should also have 
      +01042 # this name.
      +01043 
      +01044 ECLIPSE_DOC_ID         = org.doxygen.Project
      +01045 
      +01046 # The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
      +01047 # top of each HTML page. The value NO (the default) enables the index and 
      +01048 # the value YES disables it.
      +01049 
      +01050 DISABLE_INDEX          = NO
      +01051 
      +01052 # This tag can be used to set the number of enum values (range [0,1..20]) 
      +01053 # that doxygen will group on one line in the generated HTML documentation. 
      +01054 # Note that a value of 0 will completely suppress the enum values from
      +01055 # appearing in the overview section.
      +01056 
      +01057 ENUM_VALUES_PER_LINE   = 4
      +01058 
      +01059 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index 
      +01060 # structure should be generated to display hierarchical information. 
      +01061 # If the tag value is set to YES, a side panel will be generated 
      +01062 # containing a tree-like index structure (just like the one that 
      +01063 # is generated for HTML Help). For this to work a browser that supports 
      +01064 # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). 
      +01065 # Windows users are probably better off using the HTML help feature.
      +01066 
      +01067 GENERATE_TREEVIEW      = NO
      +01068 
      +01069 # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, 
      +01070 # and Class Hierarchy pages using a tree view instead of an ordered list.
      +01071 
      +01072 USE_INLINE_TREES       = NO
      +01073 
      +01074 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
      +01075 # used to set the initial width (in pixels) of the frame in which the tree 
      +01076 # is shown.
      +01077 
      +01078 TREEVIEW_WIDTH         = 250
      +01079 
      +01080 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open 
      +01081 # links to external symbols imported via tag files in a separate window.
      +01082 
      +01083 EXT_LINKS_IN_WINDOW    = NO
      +01084 
      +01085 # Use this tag to change the font size of Latex formulas included 
      +01086 # as images in the HTML documentation. The default is 10. Note that 
      +01087 # when you change the font size after a successful doxygen run you need 
      +01088 # to manually remove any form_*.png images from the HTML output directory 
      +01089 # to force them to be regenerated.
      +01090 
      +01091 FORMULA_FONTSIZE       = 10
      +01092 
      +01093 # Use the FORMULA_TRANPARENT tag to determine whether or not the images 
      +01094 # generated for formulas are transparent PNGs. Transparent PNGs are 
      +01095 # not supported properly for IE 6.0, but are supported on all modern browsers. 
      +01096 # Note that when changing this option you need to delete any form_*.png files 
      +01097 # in the HTML output before the changes have effect.
      +01098 
      +01099 FORMULA_TRANSPARENT    = YES
      +01100 
      +01101 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax 
      +01102 # (see http://www.mathjax.org) which uses client side Javascript for the 
      +01103 # rendering instead of using prerendered bitmaps. Use this if you do not 
      +01104 # have LaTeX installed or if you want to formulas look prettier in the HTML 
      +01105 # output. When enabled you also need to install MathJax separately and 
      +01106 # configure the path to it using the MATHJAX_RELPATH option.
      +01107 
      +01108 USE_MATHJAX            = NO
      +01109 
      +01110 # When MathJax is enabled you need to specify the location relative to the 
      +01111 # HTML output directory using the MATHJAX_RELPATH option. The destination 
      +01112 # directory should contain the MathJax.js script. For instance, if the mathjax 
      +01113 # directory is located at the same level as the HTML output directory, then 
      +01114 # MATHJAX_RELPATH should be ../mathjax. The default value points to the
      +01115 # mathjax.org site, so you can quickly see the result without installing 
      +01116 # MathJax, but it is strongly recommended to install a local copy of MathJax 
      +01117 # before deployment.
      +01118 
      +01119 MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
      +01120 
      +01121 # When the SEARCHENGINE tag is enabled doxygen will generate a search box 
      +01122 # for the HTML output. The underlying search engine uses javascript 
      +01123 # and DHTML and should work on any modern browser. Note that when using 
      +01124 # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets 
      +01125 # (GENERATE_DOCSET) there is already a search function so this one should 
      +01126 # typically be disabled. For large projects the javascript based search engine 
      +01127 # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
      +01128 
      +01129 SEARCHENGINE           = NO
      +01130 
      +01131 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be 
      +01132 # implemented using a PHP enabled web server instead of at the web client 
      +01133 # using Javascript. Doxygen will generate the search PHP script and index 
      +01134 # file to put on the web server. The advantage of the server 
      +01135 # based approach is that it scales better to large projects and allows 
      +01136 # full text search. The disadvantages are that it is more difficult to setup 
      +01137 # and does not have live searching capabilities.
      +01138 
      +01139 SERVER_BASED_SEARCH    = NO
      +01140 
      +01141 #---------------------------------------------------------------------------
      +01142 # configuration options related to the LaTeX output
      +01143 #---------------------------------------------------------------------------
      +01144 
      +01145 # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
      +01146 # generate Latex output.
      +01147 
      +01148 GENERATE_LATEX         = NO
      +01149 
      +01150 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
      +01151 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
      +01152 # put in front of it. If left blank `latex' will be used as the default path.
      +01153 
      +01154 LATEX_OUTPUT           = latex
      +01155 
      +01156 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
      +01157 # invoked. If left blank `latex' will be used as the default command name. 
      +01158 # Note that when enabling USE_PDFLATEX this option is only used for 
      +01159 # generating bitmaps for formulas in the HTML output, but not in the 
      +01160 # Makefile that is written to the output directory.
      +01161 
      +01162 LATEX_CMD_NAME         = latex
      +01163 
      +01164 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
      +01165 # generate index for LaTeX. If left blank `makeindex' will be used as the 
      +01166 # default command name.
      +01167 
      +01168 MAKEINDEX_CMD_NAME     = makeindex
      +01169 
      +01170 # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
      +01171 # LaTeX documents. This may be useful for small projects and may help to 
      +01172 # save some trees in general.
      +01173 
      +01174 COMPACT_LATEX          = NO
      +01175 
      +01176 # The PAPER_TYPE tag can be used to set the paper type that is used 
      +01177 # by the printer. Possible values are: a4, letter, legal and 
      +01178 # executive. If left blank a4wide will be used.
      +01179 
      +01180 PAPER_TYPE             = a4wide
      +01181 
      +01182 # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
      +01183 # packages that should be included in the LaTeX output.
      +01184 
      +01185 EXTRA_PACKAGES         = 
      +01186 
      +01187 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
      +01188 # the generated latex document. The header should contain everything until 
      +01189 # the first chapter. If it is left blank doxygen will generate a 
      +01190 # standard header. Notice: only use this tag if you know what you are doing!
      +01191 
      +01192 LATEX_HEADER           = 
      +01193 
      +01194 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
      +01195 # is prepared for conversion to pdf (using ps2pdf). The pdf file will 
      +01196 # contain links (just like the HTML output) instead of page references 
      +01197 # This makes the output suitable for online browsing using a pdf viewer.
      +01198 
      +01199 PDF_HYPERLINKS         = NO
      +01200 
      +01201 # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
      +01202 # plain latex in the generated Makefile. Set this option to YES to get a 
      +01203 # higher quality PDF documentation.
      +01204 
      +01205 USE_PDFLATEX           = YES
      +01206 
      +01207 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
      +01208 # command to the generated LaTeX files. This will instruct LaTeX to keep 
      +01209 # running if errors occur, instead of asking the user for help. 
      +01210 # This option is also used when generating formulas in HTML.
      +01211 
      +01212 LATEX_BATCHMODE        = NO
      +01213 
      +01214 # If LATEX_HIDE_INDICES is set to YES then doxygen will not 
      +01215 # include the index chapters (such as File Index, Compound Index, etc.) 
      +01216 # in the output.
      +01217 
      +01218 LATEX_HIDE_INDICES     = NO
      +01219 
      +01220 # If LATEX_SOURCE_CODE is set to YES then doxygen will include 
      +01221 # source code with syntax highlighting in the LaTeX output. 
      +01222 # Note that which sources are shown also depends on other settings 
      +01223 # such as SOURCE_BROWSER.
      +01224 
      +01225 LATEX_SOURCE_CODE      = NO
      +01226 
      +01227 #---------------------------------------------------------------------------
      +01228 # configuration options related to the RTF output
      +01229 #---------------------------------------------------------------------------
      +01230 
      +01231 # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
      +01232 # The RTF output is optimized for Word 97 and may not look very pretty with 
      +01233 # other RTF readers or editors.
      +01234 
      +01235 GENERATE_RTF           = NO
      +01236 
      +01237 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
      +01238 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
      +01239 # put in front of it. If left blank `rtf' will be used as the default path.
      +01240 
      +01241 RTF_OUTPUT             = glm.rtf
      +01242 
      +01243 # If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
      +01244 # RTF documents. This may be useful for small projects and may help to 
      +01245 # save some trees in general.
      +01246 
      +01247 COMPACT_RTF            = NO
      +01248 
      +01249 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
      +01250 # will contain hyperlink fields. The RTF file will 
      +01251 # contain links (just like the HTML output) instead of page references. 
      +01252 # This makes the output suitable for online browsing using WORD or other 
      +01253 # programs which support those fields. 
      +01254 # Note: wordpad (write) and others do not support links.
      +01255 
      +01256 RTF_HYPERLINKS         = YES
      +01257 
      +01258 # Load stylesheet definitions from file. Syntax is similar to doxygen's 
      +01259 # config file, i.e. a series of assignments. You only have to provide 
      +01260 # replacements, missing definitions are set to their default value.
      +01261 
      +01262 RTF_STYLESHEET_FILE    = 
      +01263 
      +01264 # Set optional variables used in the generation of an rtf document. 
      +01265 # Syntax is similar to doxygen's config file.
      +01266 
      +01267 RTF_EXTENSIONS_FILE    = 
      +01268 
      +01269 #---------------------------------------------------------------------------
      +01270 # configuration options related to the man page output
      +01271 #---------------------------------------------------------------------------
      +01272 
      +01273 # If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
      +01274 # generate man pages
      +01275 
      +01276 GENERATE_MAN           = NO
      +01277 
      +01278 # The MAN_OUTPUT tag is used to specify where the man pages will be put. 
      +01279 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
      +01280 # put in front of it. If left blank `man' will be used as the default path.
      +01281 
      +01282 MAN_OUTPUT             = man
      +01283 
      +01284 # The MAN_EXTENSION tag determines the extension that is added to 
      +01285 # the generated man pages (default is the subroutine's section .3)
      +01286 
      +01287 MAN_EXTENSION          = .3
      +01288 
      +01289 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
      +01290 # then it will generate one additional man file for each entity 
      +01291 # documented in the real man page(s). These additional files 
      +01292 # only source the real man page, but without them the man command 
      +01293 # would be unable to find the correct page. The default is NO.
      +01294 
      +01295 MAN_LINKS              = NO
      +01296 
      +01297 #---------------------------------------------------------------------------
      +01298 # configuration options related to the XML output
      +01299 #---------------------------------------------------------------------------
      +01300 
      +01301 # If the GENERATE_XML tag is set to YES Doxygen will 
      +01302 # generate an XML file that captures the structure of 
      +01303 # the code including all documentation.
      +01304 
      +01305 GENERATE_XML           = NO
      +01306 
      +01307 # The XML_OUTPUT tag is used to specify where the XML pages will be put. 
      +01308 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
      +01309 # put in front of it. If left blank `xml' will be used as the default path.
      +01310 
      +01311 XML_OUTPUT             = xml
      +01312 
      +01313 # The XML_SCHEMA tag can be used to specify an XML schema, 
      +01314 # which can be used by a validating XML parser to check the 
      +01315 # syntax of the XML files.
      +01316 
      +01317 XML_SCHEMA             = 
      +01318 
      +01319 # The XML_DTD tag can be used to specify an XML DTD, 
      +01320 # which can be used by a validating XML parser to check the 
      +01321 # syntax of the XML files.
      +01322 
      +01323 XML_DTD                = 
      +01324 
      +01325 # If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
      +01326 # dump the program listings (including syntax highlighting 
      +01327 # and cross-referencing information) to the XML output. Note that 
      +01328 # enabling this will significantly increase the size of the XML output.
      +01329 
      +01330 XML_PROGRAMLISTING     = YES
      +01331 
      +01332 #---------------------------------------------------------------------------
      +01333 # configuration options for the AutoGen Definitions output
      +01334 #---------------------------------------------------------------------------
      +01335 
      +01336 # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
      +01337 # generate an AutoGen Definitions (see autogen.sf.net) file 
      +01338 # that captures the structure of the code including all 
      +01339 # documentation. Note that this feature is still experimental 
      +01340 # and incomplete at the moment.
      +01341 
      +01342 GENERATE_AUTOGEN_DEF   = NO
      +01343 
      +01344 #---------------------------------------------------------------------------
      +01345 # configuration options related to the Perl module output
      +01346 #---------------------------------------------------------------------------
      +01347 
      +01348 # If the GENERATE_PERLMOD tag is set to YES Doxygen will 
      +01349 # generate a Perl module file that captures the structure of 
      +01350 # the code including all documentation. Note that this 
      +01351 # feature is still experimental and incomplete at the 
      +01352 # moment.
      +01353 
      +01354 GENERATE_PERLMOD       = NO
      +01355 
      +01356 # If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
      +01357 # the necessary Makefile rules, Perl scripts and LaTeX code to be able 
      +01358 # to generate PDF and DVI output from the Perl module output.
      +01359 
      +01360 PERLMOD_LATEX          = NO
      +01361 
      +01362 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
      +01363 # nicely formatted so it can be parsed by a human reader.  This is useful 
      +01364 # if you want to understand what is going on.  On the other hand, if this 
      +01365 # tag is set to NO the size of the Perl module output will be much smaller 
      +01366 # and Perl will parse it just the same.
      +01367 
      +01368 PERLMOD_PRETTY         = YES
      +01369 
      +01370 # The names of the make variables in the generated doxyrules.make file 
      +01371 # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
      +01372 # This is useful so different doxyrules.make files included by the same 
      +01373 # Makefile don't overwrite each other's variables.
      +01374 
      +01375 PERLMOD_MAKEVAR_PREFIX = 
      +01376 
      +01377 #---------------------------------------------------------------------------
      +01378 # Configuration options related to the preprocessor
      +01379 #---------------------------------------------------------------------------
      +01380 
      +01381 # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
      +01382 # evaluate all C-preprocessor directives found in the sources and include 
      +01383 # files.
      +01384 
      +01385 ENABLE_PREPROCESSING   = YES
      +01386 
      +01387 # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
      +01388 # names in the source code. If set to NO (the default) only conditional 
      +01389 # compilation will be performed. Macro expansion can be done in a controlled 
      +01390 # way by setting EXPAND_ONLY_PREDEF to YES.
      +01391 
      +01392 MACRO_EXPANSION        = NO
      +01393 
      +01394 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
      +01395 # then the macro expansion is limited to the macros specified with the 
      +01396 # PREDEFINED and EXPAND_AS_DEFINED tags.
      +01397 
      +01398 EXPAND_ONLY_PREDEF     = NO
      +01399 
      +01400 # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
      +01401 # in the INCLUDE_PATH (see below) will be search if a #include is found.
      +01402 
      +01403 SEARCH_INCLUDES        = YES
      +01404 
      +01405 # The INCLUDE_PATH tag can be used to specify one or more directories that 
      +01406 # contain include files that are not input files but should be processed by 
      +01407 # the preprocessor.
      +01408 
      +01409 INCLUDE_PATH           = 
      +01410 
      +01411 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
      +01412 # patterns (like *.h and *.hpp) to filter out the header-files in the 
      +01413 # directories. If left blank, the patterns specified with FILE_PATTERNS will 
      +01414 # be used.
      +01415 
      +01416 INCLUDE_FILE_PATTERNS  = 
      +01417 
      +01418 # The PREDEFINED tag can be used to specify one or more macro names that 
      +01419 # are defined before the preprocessor is started (similar to the -D option of 
      +01420 # gcc). The argument of the tag is a list of macros of the form: name 
      +01421 # or name=definition (no spaces). If the definition and the = are 
      +01422 # omitted =1 is assumed. To prevent a macro definition from being 
      +01423 # undefined via #undef or recursively expanded use the := operator 
      +01424 # instead of the = operator.
      +01425 
      +01426 PREDEFINED             = 
      +01427 
      +01428 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
      +01429 # this tag can be used to specify a list of macro names that should be expanded. 
      +01430 # The macro definition that is found in the sources will be used. 
      +01431 # Use the PREDEFINED tag if you want to use a different macro definition that
      +01432 # overrules the definition found in the source code.
      +01433 
      +01434 EXPAND_AS_DEFINED      = 
      +01435 
      +01436 # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
      +01437 # doxygen's preprocessor will remove all references to function-like macros 
      +01438 # that are alone on a line, have an all uppercase name, and do not end with a 
      +01439 # semicolon, because these will confuse the parser if not removed.
      +01440 
      +01441 SKIP_FUNCTION_MACROS   = YES
      +01442 
      +01443 #---------------------------------------------------------------------------
      +01444 # Configuration::additions related to external references
      +01445 #---------------------------------------------------------------------------
      +01446 
      +01447 # The TAGFILES option can be used to specify one or more tagfiles. 
      +01448 # Optionally an initial location of the external documentation 
      +01449 # can be added for each tagfile. The format of a tag file without 
      +01450 # this location is as follows: 
      +01451 #   TAGFILES = file1 file2 ... 
      +01452 # Adding location for the tag files is done as follows: 
      +01453 #   TAGFILES = file1=loc1 "file2 = loc2" ... 
      +01454 # where "loc1" and "loc2" can be relative or absolute paths or 
      +01455 # URLs. If a location is present for each tag, the installdox tool 
      +01456 # does not have to be run to correct the links. 
      +01457 # Note that each tag file must have a unique name 
      +01458 # (where the name does NOT include the path) 
      +01459 # If a tag file is not located in the directory in which doxygen 
      +01460 # is run, you must also specify the path to the tagfile here.
      +01461 
      +01462 TAGFILES               = 
      +01463 
      +01464 # When a file name is specified after GENERATE_TAGFILE, doxygen will create 
      +01465 # a tag file that is based on the input files it reads.
      +01466 
      +01467 GENERATE_TAGFILE       = 
      +01468 
      +01469 # If the ALLEXTERNALS tag is set to YES all external classes will be listed 
      +01470 # in the class index. If set to NO only the inherited external classes 
      +01471 # will be listed.
      +01472 
      +01473 ALLEXTERNALS           = NO
      +01474 
      +01475 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
      +01476 # in the modules index. If set to NO, only the current project's groups will 
      +01477 # be listed.
      +01478 
      +01479 EXTERNAL_GROUPS        = YES
      +01480 
      +01481 # The PERL_PATH should be the absolute path and name of the perl script 
      +01482 # interpreter (i.e. the result of `which perl').
      +01483 
      +01484 PERL_PATH              = /usr/bin/perl
      +01485 
      +01486 #---------------------------------------------------------------------------
      +01487 # Configuration options related to the dot tool
      +01488 #---------------------------------------------------------------------------
      +01489 
      +01490 # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
      +01491 # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
      +01492 # or super classes. Setting the tag to NO turns the diagrams off. Note that 
      +01493 # this option also works with HAVE_DOT disabled, but it is recommended to 
      +01494 # install and use dot, since it yields more powerful graphs.
      +01495 
      +01496 CLASS_DIAGRAMS         = YES
      +01497 
      +01498 # You can define message sequence charts within doxygen comments using the \msc 
      +01499 # command. Doxygen will then run the mscgen tool (see 
      +01500 # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 
      +01501 # documentation. The MSCGEN_PATH tag allows you to specify the directory where 
      +01502 # the mscgen tool resides. If left empty the tool is assumed to be found in the 
      +01503 # default search path.
      +01504 
      +01505 MSCGEN_PATH            = 
      +01506 
      +01507 # If set to YES, the inheritance and collaboration graphs will hide 
      +01508 # inheritance and usage relations if the target is undocumented 
      +01509 # or is not a class.
      +01510 
      +01511 HIDE_UNDOC_RELATIONS   = YES
      +01512 
      +01513 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
      +01514 # available from the path. This tool is part of Graphviz, a graph visualization 
      +01515 # toolkit from AT&T and Lucent Bell Labs. The other options in this section 
      +01516 # have no effect if this option is set to NO (the default)
      +01517 
      +01518 HAVE_DOT               = NO
      +01519 
      +01520 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is 
      +01521 # allowed to run in parallel. When set to 0 (the default) doxygen will 
      +01522 # base this on the number of processors available in the system. You can set it 
      +01523 # explicitly to a value larger than 0 to get control over the balance 
      +01524 # between CPU load and processing speed.
      +01525 
      +01526 DOT_NUM_THREADS        = 0
      +01527 
      +01528 # By default doxygen will write a font called Helvetica to the output 
      +01529 # directory and reference it in all dot files that doxygen generates. 
      +01530 # When you want a differently looking font you can specify the font name 
      +01531 # using DOT_FONTNAME. You need to make sure dot is able to find the font, 
      +01532 # which can be done by putting it in a standard location or by setting the 
      +01533 # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory 
      +01534 # containing the font.
      +01535 
      +01536 DOT_FONTNAME           = FreeSans
      +01537 
      +01538 # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. 
      +01539 # The default size is 10pt.
      +01540 
      +01541 DOT_FONTSIZE           = 10
      +01542 
      +01543 # By default doxygen will tell dot to use the output directory to look for the 
      +01544 # FreeSans.ttf font (which doxygen will put there itself). If you specify a 
      +01545 # different font using DOT_FONTNAME you can set the path where dot 
      +01546 # can find it using this tag.
      +01547 
      +01548 DOT_FONTPATH           = 
      +01549 
      +01550 # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
      +01551 # will generate a graph for each documented class showing the direct and 
      +01552 # indirect inheritance relations. Setting this tag to YES will force the 
      +01553 # the CLASS_DIAGRAMS tag to NO.
      +01554 
      +01555 CLASS_GRAPH            = YES
      +01556 
      +01557 # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
      +01558 # will generate a graph for each documented class showing the direct and 
      +01559 # indirect implementation dependencies (inheritance, containment, and 
      +01560 # class references variables) of the class with other documented classes.
      +01561 
      +01562 COLLABORATION_GRAPH    = YES
      +01563 
      +01564 # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
      +01565 # will generate a graph for groups, showing the direct groups dependencies
      +01566 
      +01567 GROUP_GRAPHS           = YES
      +01568 
      +01569 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
      +01570 # collaboration diagrams in a style similar to the OMG's Unified Modeling 
      +01571 # Language.
      +01572 
      +01573 UML_LOOK               = NO
      +01574 
      +01575 # If set to YES, the inheritance and collaboration graphs will show the 
      +01576 # relations between templates and their instances.
      +01577 
      +01578 TEMPLATE_RELATIONS     = NO
      +01579 
      +01580 # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
      +01581 # tags are set to YES then doxygen will generate a graph for each documented 
      +01582 # file showing the direct and indirect include dependencies of the file with 
      +01583 # other documented files.
      +01584 
      +01585 INCLUDE_GRAPH          = YES
      +01586 
      +01587 # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
      +01588 # HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
      +01589 # documented header file showing the documented files that directly or 
      +01590 # indirectly include this file.
      +01591 
      +01592 INCLUDED_BY_GRAPH      = YES
      +01593 
      +01594 # If the CALL_GRAPH and HAVE_DOT options are set to YES then 
      +01595 # doxygen will generate a call dependency graph for every global function 
      +01596 # or class method. Note that enabling this option will significantly increase 
      +01597 # the time of a run. So in most cases it will be better to enable call graphs 
      +01598 # for selected functions only using the \callgraph command.
      +01599 
      +01600 CALL_GRAPH             = YES
      +01601 
      +01602 # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then 
      +01603 # doxygen will generate a caller dependency graph for every global function 
      +01604 # or class method. Note that enabling this option will significantly increase 
      +01605 # the time of a run. So in most cases it will be better to enable caller 
      +01606 # graphs for selected functions only using the \callergraph command.
      +01607 
      +01608 CALLER_GRAPH           = YES
      +01609 
      +01610 # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
      +01611 # will generate a graphical hierarchy of all classes instead of a textual one.
      +01612 
      +01613 GRAPHICAL_HIERARCHY    = YES
      +01614 
      +01615 # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
      +01616 # then doxygen will show the dependencies a directory has on other directories 
      +01617 # in a graphical way. The dependency relations are determined by the #include 
      +01618 # relations between the files in the directories.
      +01619 
      +01620 DIRECTORY_GRAPH        = YES
      +01621 
      +01622 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
      +01623 # generated by dot. Possible values are png, svg, gif or svg. 
      +01624 # If left blank png will be used.
      +01625 
      +01626 DOT_IMAGE_FORMAT       = png
      +01627 
      +01628 # The tag DOT_PATH can be used to specify the path where the dot tool can be 
      +01629 # found. If left blank, it is assumed the dot tool can be found in the path.
      +01630 
      +01631 DOT_PATH               = 
      +01632 
      +01633 # The DOTFILE_DIRS tag can be used to specify one or more directories that 
      +01634 # contain dot files that are included in the documentation (see the 
      +01635 # \dotfile command).
      +01636 
      +01637 DOTFILE_DIRS           = 
      +01638 
      +01639 # The MSCFILE_DIRS tag can be used to specify one or more directories that 
      +01640 # contain msc files that are included in the documentation (see the 
      +01641 # \mscfile command).
      +01642 
      +01643 MSCFILE_DIRS           = 
      +01644 
      +01645 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
      +01646 # nodes that will be shown in the graph. If the number of nodes in a graph 
      +01647 # becomes larger than this value, doxygen will truncate the graph, which is 
      +01648 # visualized by representing a node as a red box. Note that doxygen if the 
      +01649 # number of direct children of the root node in a graph is already larger than 
      +01650 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note 
      +01651 # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
      +01652 
      +01653 DOT_GRAPH_MAX_NODES    = 50
      +01654 
      +01655 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
      +01656 # graphs generated by dot. A depth value of 3 means that only nodes reachable 
      +01657 # from the root by following a path via at most 3 edges will be shown. Nodes 
      +01658 # that lay further from the root node will be omitted. Note that setting this 
      +01659 # option to 1 or 2 may greatly reduce the computation time needed for large 
      +01660 # code bases. Also note that the size of a graph can be further restricted by 
      +01661 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
      +01662 
      +01663 MAX_DOT_GRAPH_DEPTH    = 1000
      +01664 
      +01665 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
      +01666 # background. This is disabled by default, because dot on Windows does not 
      +01667 # seem to support this out of the box. Warning: Depending on the platform used, 
      +01668 # enabling this option may lead to badly anti-aliased labels on the edges of 
      +01669 # a graph (i.e. they become hard to read).
      +01670 
      +01671 DOT_TRANSPARENT        = NO
      +01672 
      +01673 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
      +01674 # files in one run (i.e. multiple -o and -T options on the command line). This 
      +01675 # makes dot run faster, but since only newer versions of dot (>1.8.10) 
      +01676 # support this, this feature is disabled by default.
      +01677 
      +01678 DOT_MULTI_TARGETS      = NO
      +01679 
      +01680 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
      +01681 # generate a legend page explaining the meaning of the various boxes and 
      +01682 # arrows in the dot generated graphs.
      +01683 
      +01684 GENERATE_LEGEND        = YES
      +01685 
      +01686 # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
      +01687 # remove the intermediate dot files that are used to generate 
      +01688 # the various graphs.
      +01689 
      +01690 DOT_CLEANUP            = YES
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00071_source.html b/doc/api-0.9.2/a00071_source.html new file mode 100644 index 00000000..e1861467 --- /dev/null +++ b/doc/api-0.9.2/a00071_source.html @@ -0,0 +1,102 @@ + + + + +matrix_access.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      matrix_access.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-27
      +00005 // Updated : 2010-11-12
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtc/matrix_access.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtc_matrix_access
      +00014 #define glm_gtc_matrix_access
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTC_matrix_access extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtc{
      +00025 namespace matrix_access 
      +00026 {
      +00029 
      +00032         template <typename genType> 
      +00033         typename genType::row_type row(
      +00034                 genType const & m, 
      +00035                 int index);
      +00036 
      +00039     template <typename genType> 
      +00040         genType row(
      +00041                 genType const & m, 
      +00042                 int index, 
      +00043                 typename genType::row_type const & x);
      +00044 
      +00047         template <typename genType> 
      +00048         typename genType::col_type column(
      +00049                 genType const & m, 
      +00050                 int index);
      +00051 
      +00054         template <typename genType> 
      +00055         genType column(
      +00056                 genType const & m, 
      +00057                 int index, 
      +00058                 typename genType::col_type const & x);
      +00059 
      +00061 
      +00062 }//namespace matrix_access
      +00063 }//namespace gtc
      +00064 }//namespace glm
      +00065 
      +00066 #include "matrix_access.inl"
      +00067 
      +00068 namespace glm{using namespace gtc::matrix_access;}
      +00069 
      +00070 #endif//glm_gtc_matrix_access
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00072_source.html b/doc/api-0.9.2/a00072_source.html new file mode 100644 index 00000000..dc8c8a67 --- /dev/null +++ b/doc/api-0.9.2/a00072_source.html @@ -0,0 +1,87 @@ + + + + +matrix_cross_product.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      matrix_cross_product.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2006-11-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/matrix_cross_product.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_matrix_cross_product
      +00014 #define glm_gtx_matrix_cross_product
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_matrix_cross_product extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace matrix_cross_product 
      +00026 {
      +00029 
      +00032         template <typename T> 
      +00033         detail::tmat3x3<T> matrixCross3(
      +00034                 detail::tvec3<T> const & x);
      +00035                 
      +00038         template <typename T> 
      +00039         detail::tmat4x4<T> matrixCross4(
      +00040                 detail::tvec3<T> const & x);
      +00041 
      +00043 }//namespace matrix_cross_product
      +00044 }//namespace gtx
      +00045 }//namespace glm
      +00046 
      +00047 #include "matrix_cross_product.inl"
      +00048 
      +00049 namespace glm{using namespace gtx::matrix_cross_product;}
      +00050 
      +00051 #endif//glm_gtx_matrix_cross_product
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00073_source.html b/doc/api-0.9.2/a00073_source.html new file mode 100644 index 00000000..06eca8ce --- /dev/null +++ b/doc/api-0.9.2/a00073_source.html @@ -0,0 +1,244 @@ + + + + +matrix_integer.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      matrix_integer.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2011-01-20
      +00005 // Updated : 2011-01-20
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtc/matrix_integer.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtc_matrix_integer
      +00014 #define glm_gtc_matrix_integer
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTC_matrix_integer extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtc{
      +00025 namespace matrix_integer 
      +00026 {
      +00029 
      +00030         typedef detail::tmat2x2<highp_int>                              highp_imat2;    
      +00031         typedef detail::tmat3x3<highp_int>                              highp_imat3;    
      +00032         typedef detail::tmat4x4<highp_int>                              highp_imat4;    
      +00033 
      +00034         typedef detail::tmat2x2<highp_int>                              highp_imat2x2; 
      +00035         typedef detail::tmat2x3<highp_int>                              highp_imat2x3; 
      +00036         typedef detail::tmat2x4<highp_int>                              highp_imat2x4; 
      +00037         typedef detail::tmat3x2<highp_int>                              highp_imat3x2; 
      +00038         typedef detail::tmat3x3<highp_int>                              highp_imat3x3; 
      +00039         typedef detail::tmat3x4<highp_int>                              highp_imat3x4; 
      +00040         typedef detail::tmat4x2<highp_int>                              highp_imat4x2; 
      +00041         typedef detail::tmat4x3<highp_int>                              highp_imat4x3; 
      +00042         typedef detail::tmat4x4<highp_int>                              highp_imat4x4; 
      +00043 
      +00044         typedef detail::tmat2x2<mediump_int>                    mediump_imat2;  
      +00045         typedef detail::tmat3x3<mediump_int>                    mediump_imat3;  
      +00046         typedef detail::tmat4x4<mediump_int>                    mediump_imat4;  
      +00047 
      +00048         typedef detail::tmat2x2<mediump_int>                    mediump_imat2x2; 
      +00049         typedef detail::tmat2x3<mediump_int>                    mediump_imat2x3; 
      +00050         typedef detail::tmat2x4<mediump_int>                    mediump_imat2x4; 
      +00051         typedef detail::tmat3x2<mediump_int>                    mediump_imat3x2; 
      +00052         typedef detail::tmat3x3<mediump_int>                    mediump_imat3x3; 
      +00053         typedef detail::tmat3x4<mediump_int>                    mediump_imat3x4; 
      +00054         typedef detail::tmat4x2<mediump_int>                    mediump_imat4x2; 
      +00055         typedef detail::tmat4x3<mediump_int>                    mediump_imat4x3; 
      +00056         typedef detail::tmat4x4<mediump_int>                    mediump_imat4x4; 
      +00057 
      +00058         typedef detail::tmat2x2<lowp_int>                               lowp_imat2;     
      +00059         typedef detail::tmat3x3<lowp_int>                               lowp_imat3;     
      +00060         typedef detail::tmat4x4<lowp_int>                               lowp_imat4;     
      +00061 
      +00062         typedef detail::tmat2x2<lowp_int>                               lowp_imat2x2; 
      +00063         typedef detail::tmat2x3<lowp_int>                               lowp_imat2x3; 
      +00064         typedef detail::tmat2x4<lowp_int>                               lowp_imat2x4; 
      +00065         typedef detail::tmat3x2<lowp_int>                               lowp_imat3x2; 
      +00066         typedef detail::tmat3x3<lowp_int>                               lowp_imat3x3; 
      +00067         typedef detail::tmat3x4<lowp_int>                               lowp_imat3x4; 
      +00068         typedef detail::tmat4x2<lowp_int>                               lowp_imat4x2; 
      +00069         typedef detail::tmat4x3<lowp_int>                               lowp_imat4x3; 
      +00070         typedef detail::tmat4x4<lowp_int>                               lowp_imat4x4; 
      +00071 
      +00072         typedef detail::tmat2x2<highp_uint>                             highp_umat2; 
      +00073         typedef detail::tmat3x3<highp_uint>                             highp_umat3; 
      +00074         typedef detail::tmat4x4<highp_uint>                             highp_umat4; 
      +00075 
      +00076         typedef detail::tmat2x2<highp_uint>                             highp_umat2x2; 
      +00077         typedef detail::tmat2x3<highp_uint>                             highp_umat2x3; 
      +00078         typedef detail::tmat2x4<highp_uint>                             highp_umat2x4; 
      +00079         typedef detail::tmat3x2<highp_uint>                             highp_umat3x2; 
      +00080         typedef detail::tmat3x3<highp_uint>                             highp_umat3x3; 
      +00081         typedef detail::tmat3x4<highp_uint>                             highp_umat3x4; 
      +00082         typedef detail::tmat4x2<highp_uint>                             highp_umat4x2; 
      +00083         typedef detail::tmat4x3<highp_uint>                             highp_umat4x3; 
      +00084         typedef detail::tmat4x4<highp_uint>                             highp_umat4x4; 
      +00085 
      +00086         typedef detail::tmat2x2<mediump_uint>                   mediump_umat2; 
      +00087         typedef detail::tmat3x3<mediump_uint>                   mediump_umat3; 
      +00088         typedef detail::tmat4x4<mediump_uint>                   mediump_umat4; 
      +00089 
      +00090         typedef detail::tmat2x2<mediump_uint>                   mediump_umat2x2; 
      +00091         typedef detail::tmat2x3<mediump_uint>                   mediump_umat2x3; 
      +00092         typedef detail::tmat2x4<mediump_uint>                   mediump_umat2x4; 
      +00093         typedef detail::tmat3x2<mediump_uint>                   mediump_umat3x2; 
      +00094         typedef detail::tmat3x3<mediump_uint>                   mediump_umat3x3; 
      +00095         typedef detail::tmat3x4<mediump_uint>                   mediump_umat3x4; 
      +00096         typedef detail::tmat4x2<mediump_uint>                   mediump_umat4x2; 
      +00097         typedef detail::tmat4x3<mediump_uint>                   mediump_umat4x3; 
      +00098         typedef detail::tmat4x4<mediump_uint>                   mediump_umat4x4; 
      +00099 
      +00100         typedef detail::tmat2x2<lowp_uint>                              lowp_umat2;     
      +00101         typedef detail::tmat3x3<lowp_uint>                              lowp_umat3;     
      +00102         typedef detail::tmat4x4<lowp_uint>                              lowp_umat4;     
      +00103 
      +00104         typedef detail::tmat2x2<lowp_uint>                              lowp_umat2x2; 
      +00105         typedef detail::tmat2x3<lowp_uint>                              lowp_umat2x3; 
      +00106         typedef detail::tmat2x4<lowp_uint>                              lowp_umat2x4; 
      +00107         typedef detail::tmat3x2<lowp_uint>                              lowp_umat3x2; 
      +00108         typedef detail::tmat3x3<lowp_uint>                              lowp_umat3x3; 
      +00109         typedef detail::tmat3x4<lowp_uint>                              lowp_umat3x4; 
      +00110         typedef detail::tmat4x2<lowp_uint>                              lowp_umat4x2; 
      +00111         typedef detail::tmat4x3<lowp_uint>                              lowp_umat4x3; 
      +00112         typedef detail::tmat4x4<lowp_uint>                              lowp_umat4x4; 
      +00113 
      +00114 #if(defined(GLM_PRECISION_HIGHP_INT))
      +00115         typedef highp_imat2                                                             imat2; 
      +00116         typedef highp_imat3                                                             imat3; 
      +00117         typedef highp_imat4                                                             imat4; 
      +00118         typedef highp_imat2x2                                                   imat2x2; 
      +00119         typedef highp_imat2x3                                                   imat2x3; 
      +00120         typedef highp_imat2x4                                                   imat2x4; 
      +00121         typedef highp_imat3x2                                                   imat3x2; 
      +00122         typedef highp_imat3x3                                                   imat3x3; 
      +00123         typedef highp_imat3x4                                                   imat3x4; 
      +00124         typedef highp_imat4x2                                                   imat4x2; 
      +00125         typedef highp_imat4x3                                                   imat4x3; 
      +00126         typedef highp_imat4x4                                                   imat4x4; 
      +00127 #elif(defined(GLM_PRECISION_LOWP_INT))
      +00128         typedef lowp_imat2                                                              imat2; 
      +00129         typedef lowp_imat3                                                              imat3; 
      +00130         typedef lowp_imat4                                                              imat4; 
      +00131         typedef lowp_imat2x2                                                    imat2x2; 
      +00132         typedef lowp_imat2x3                                                    imat2x3; 
      +00133         typedef lowp_imat2x4                                                    imat2x4; 
      +00134         typedef lowp_imat3x2                                                    imat3x2; 
      +00135         typedef lowp_imat3x3                                                    imat3x3; 
      +00136         typedef lowp_imat3x4                                                    imat3x4; 
      +00137         typedef lowp_imat4x2                                                    imat4x2; 
      +00138         typedef lowp_imat4x3                                                    imat4x3; 
      +00139         typedef lowp_imat4x4                                                    imat4x4; 
      +00140 #else //if(defined(GLM_PRECISION_MEDIUMP_INT))
      +00141         typedef mediump_imat2                                                   imat2; 
      +00142         typedef mediump_imat3                                                   imat3; 
      +00143         typedef mediump_imat4                                                   imat4; 
      +00144         typedef mediump_imat2x2                                                 imat2x2; 
      +00145         typedef mediump_imat2x3                                                 imat2x3; 
      +00146         typedef mediump_imat2x4                                                 imat2x4; 
      +00147         typedef mediump_imat3x2                                                 imat3x2; 
      +00148         typedef mediump_imat3x3                                                 imat3x3; 
      +00149         typedef mediump_imat3x4                                                 imat3x4; 
      +00150         typedef mediump_imat4x2                                                 imat4x2; 
      +00151         typedef mediump_imat4x3                                                 imat4x3; 
      +00152         typedef mediump_imat4x4                                                 imat4x4; 
      +00153 #endif//GLM_PRECISION
      +00154 
      +00155 #if(defined(GLM_PRECISION_HIGHP_UINT))
      +00156         typedef highp_umat2                                                             umat2; 
      +00157         typedef highp_umat3                                                             umat3; 
      +00158         typedef highp_umat4                                                             umat4; 
      +00159         typedef highp_umat2x2                                                   umat2x2; 
      +00160         typedef highp_umat2x3                                                   umat2x3; 
      +00161         typedef highp_umat2x4                                                   umat2x4; 
      +00162         typedef highp_umat3x2                                                   umat3x2; 
      +00163         typedef highp_umat3x3                                                   umat3x3; 
      +00164         typedef highp_umat3x4                                                   umat3x4; 
      +00165         typedef highp_umat4x2                                                   umat4x2; 
      +00166         typedef highp_umat4x3                                                   umat4x3; 
      +00167         typedef highp_umat4x4                                                   umat4x4; 
      +00168 #elif(defined(GLM_PRECISION_LOWP_UINT))
      +00169         typedef lowp_umat2                                                              umat2; 
      +00170         typedef lowp_umat3                                                              umat3; 
      +00171         typedef lowp_umat4                                                              umat4; 
      +00172         typedef lowp_umat2x2                                                    umat2x2; 
      +00173         typedef lowp_umat2x3                                                    umat2x3; 
      +00174         typedef lowp_umat2x4                                                    umat2x4; 
      +00175         typedef lowp_umat3x2                                                    umat3x2; 
      +00176         typedef lowp_umat3x3                                                    umat3x3; 
      +00177         typedef lowp_umat3x4                                                    umat3x4; 
      +00178         typedef lowp_umat4x2                                                    umat4x2; 
      +00179         typedef lowp_umat4x3                                                    umat4x3; 
      +00180         typedef lowp_umat4x4                                                    umat4x4; 
      +00181 #else //if(defined(GLM_PRECISION_MEDIUMP_UINT))
      +00182         typedef mediump_umat2                                                   umat2; 
      +00183         typedef mediump_umat3                                                   umat3; 
      +00184         typedef mediump_umat4                                                   umat4; 
      +00185         typedef mediump_umat2x2                                                 umat2x2; 
      +00186         typedef mediump_umat2x3                                                 umat2x3; 
      +00187         typedef mediump_umat2x4                                                 umat2x4; 
      +00188         typedef mediump_umat3x2                                                 umat3x2; 
      +00189         typedef mediump_umat3x3                                                 umat3x3; 
      +00190         typedef mediump_umat3x4                                                 umat3x4; 
      +00191         typedef mediump_umat4x2                                                 umat4x2; 
      +00192         typedef mediump_umat4x3                                                 umat4x3; 
      +00193         typedef mediump_umat4x4                                                 umat4x4; 
      +00194 #endif//GLM_PRECISION
      +00195 
      +00197 
      +00198 }//namespace matrix_integer
      +00199 }//namespace gtc
      +00200 }//namespace glm
      +00201 
      +00202 namespace glm{using namespace gtc::matrix_integer;}
      +00203 
      +00204 #endif//glm_gtc_matrix_integer
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00074_source.html b/doc/api-0.9.2/a00074_source.html new file mode 100644 index 00000000..05b3f345 --- /dev/null +++ b/doc/api-0.9.2/a00074_source.html @@ -0,0 +1,98 @@ + + + + +matrix_interpolation.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      matrix_interpolation.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2011-03-05
      +00005 // Updated : 2011-03-05
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/matrix_interpolation.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_matric_interpolation
      +00013 // This extension has been written by Ghenadii Ursachi (the.asteroth@gmail.com)
      +00015 
      +00016 #ifndef glm_gtx_matrix_interpolation
      +00017 #define glm_gtx_matrix_interpolation
      +00018 
      +00019 // Dependency:
      +00020 //#include "../glm.hpp"
      +00021 
      +00022 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00023 #       pragma message("GLM: GLM_GTX_matrix_interpolation extension included")
      +00024 #endif
      +00025 
      +00026 namespace glm{
      +00027 namespace gtx{
      +00028 namespace matrix_interpolation 
      +00029 {
      +00032 
      +00035         template <typename T>
      +00036     void axisAngle(
      +00037         detail::tmat4x4<T> const & mat,
      +00038         detail::tvec3<T> & axis,
      +00039         T & angle);
      +00040 
      +00043         template <typename T>
      +00044     detail::tmat4x4<T> axisAngleMatrix(
      +00045         detail::tvec3<T> const & axis,
      +00046         T const angle);
      +00047 
      +00051         template <typename T>
      +00052     detail::tmat4x4<T> interpolate(
      +00053         detail::tmat4x4<T> const & m1,
      +00054         detail::tmat4x4<T> const & m2,
      +00055         T const delta);
      +00056 
      +00058 }//namespace matrix_interpolation
      +00059 }//namespace gtx
      +00060 }//namespace glm
      +00061 
      +00062 #include "matrix_interpolation.inl"
      +00063 
      +00064 namespace glm{using namespace gtx::matrix_interpolation;}
      +00065 
      +00066 #endif//glm_gtx_transform
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00075_source.html b/doc/api-0.9.2/a00075_source.html new file mode 100644 index 00000000..5fd39cb9 --- /dev/null +++ b/doc/api-0.9.2/a00075_source.html @@ -0,0 +1,87 @@ + + + + +matrix_inverse.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      matrix_inverse.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2010-12-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtc/matrix_inverse.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtc_matrix_inverse
      +00014 #define glm_gtc_matrix_inverse
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTC_matrix_inverse extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtc{
      +00025 namespace matrix_inverse 
      +00026 {
      +00029 
      +00032         template <typename genType> 
      +00033         genType affineInverse(genType const & m);
      +00034 
      +00037         template <typename genType> 
      +00038         GLM_FUNC_QUALIFIER typename genType::value_type inverseTranspose(
      +00039                 genType const & m);
      +00040 
      +00042 
      +00043 }//namespace matrix_inverse
      +00044 }//namespace gtc
      +00045 }//namespace glm
      +00046 
      +00047 #include "matrix_inverse.inl"
      +00048 
      +00049 namespace glm{using namespace gtc::matrix_inverse;}
      +00050 
      +00051 #endif//glm_gtc_matrix_inverse
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00076_source.html b/doc/api-0.9.2/a00076_source.html new file mode 100644 index 00000000..02e3ffc5 --- /dev/null +++ b/doc/api-0.9.2/a00076_source.html @@ -0,0 +1,139 @@ + + + + +matrix_major_storage.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      matrix_major_storage.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-04-19
      +00005 // Updated : 2009-02-19
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/matrix_major_storage.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_matrix_major_storage
      +00014 #define glm_gtx_matrix_major_storage
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_matrix_major_storage extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace matrix_major_storage 
      +00026 {
      +00029 
      +00032         template <typename T> 
      +00033         detail::tmat2x2<T> rowMajor2(
      +00034                 const detail::tvec2<T>& v1, 
      +00035                 const detail::tvec2<T>& v2);
      +00036                 
      +00039         template <typename T> 
      +00040         detail::tmat2x2<T> rowMajor2(
      +00041                 const detail::tmat2x2<T>& m);
      +00042 
      +00045         template <typename T> 
      +00046         detail::tmat3x3<T> rowMajor3(
      +00047                 const detail::tvec3<T>& v1, 
      +00048                 const detail::tvec3<T>& v2, 
      +00049                 const detail::tvec3<T>& v3);
      +00050 
      +00053         template <typename T> 
      +00054         detail::tmat3x3<T> rowMajor3(
      +00055                 const detail::tmat3x3<T>& m);
      +00056 
      +00059         template <typename T> 
      +00060         detail::tmat4x4<T> rowMajor4(
      +00061                 const detail::tvec4<T>& v1, 
      +00062                 const detail::tvec4<T>& v2,
      +00063                 const detail::tvec4<T>& v3, 
      +00064                 const detail::tvec4<T>& v4);
      +00065 
      +00068         template <typename T> 
      +00069         detail::tmat4x4<T> rowMajor4(
      +00070                 const detail::tmat4x4<T>& m);
      +00071 
      +00074         template <typename T> 
      +00075         detail::tmat2x2<T> colMajor2(
      +00076                 const detail::tvec2<T>& v1, 
      +00077                 const detail::tvec2<T>& v2);
      +00078                 
      +00081         template <typename T> 
      +00082         detail::tmat2x2<T> colMajor2(
      +00083                 const detail::tmat2x2<T>& m);
      +00084 
      +00087         template <typename T> 
      +00088         detail::tmat3x3<T> colMajor3(
      +00089                 const detail::tvec3<T>& v1, 
      +00090                 const detail::tvec3<T>& v2, 
      +00091                 const detail::tvec3<T>& v3);
      +00092                 
      +00095         template <typename T> 
      +00096         detail::tmat3x3<T> colMajor3(
      +00097                 const detail::tmat3x3<T>& m);
      +00098                 
      +00101         template <typename T> 
      +00102         detail::tmat4x4<T> colMajor4(
      +00103                 const detail::tvec4<T>& v1, 
      +00104                 const detail::tvec4<T>& v2, 
      +00105                 const detail::tvec4<T>& v3, 
      +00106                 const detail::tvec4<T>& v4);
      +00107                                 
      +00110         template <typename T> 
      +00111         detail::tmat4x4<T> colMajor4(
      +00112                 const detail::tmat4x4<T>& m);
      +00113 
      +00115 }//namespace matrix_major_storage
      +00116 }//namespace gtx
      +00117 }//namespace glm
      +00118 
      +00119 #include "matrix_major_storage.inl"
      +00120 
      +00121 namespace glm{using namespace gtx::matrix_major_storage;}
      +00122 
      +00123 #endif//glm_gtx_matrix_major_storage
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00077_source.html b/doc/api-0.9.2/a00077_source.html new file mode 100644 index 00000000..a2f0a74e --- /dev/null +++ b/doc/api-0.9.2/a00077_source.html @@ -0,0 +1,115 @@ + + + + +matrix_operation.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      matrix_operation.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-08-29
      +00005 // Updated : 2009-08-29
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/matrix_operation.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_matrix_operation
      +00014 #define glm_gtx_matrix_operation
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_matrix_operation extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace matrix_operation 
      +00026 {
      +00029 
      +00032         template <typename valType> 
      +00033         detail::tmat2x2<valType> diagonal2x2(
      +00034                 detail::tvec2<valType> const & v);
      +00035 
      +00038         template <typename valType> 
      +00039         detail::tmat2x3<valType> diagonal2x3(
      +00040                 detail::tvec2<valType> const & v);
      +00041 
      +00044         template <typename valType> 
      +00045         detail::tmat2x4<valType> diagonal2x4(
      +00046                 detail::tvec2<valType> const & v);
      +00047 
      +00050         template <typename valType> 
      +00051         detail::tmat3x2<valType> diagonal3x2(
      +00052                 detail::tvec2<valType> const & v);
      +00053 
      +00056         template <typename valType> 
      +00057         detail::tmat3x3<valType> diagonal3x3(
      +00058                 detail::tvec3<valType> const & v);
      +00059 
      +00062         template <typename valType> 
      +00063         detail::tmat3x4<valType> diagonal3x4(
      +00064                 detail::tvec3<valType> const & v);
      +00065 
      +00068         template <typename valType> 
      +00069         detail::tmat4x2<valType> diagonal4x2(
      +00070                 detail::tvec2<valType> const & v);
      +00071 
      +00074         template <typename valType> 
      +00075         detail::tmat4x3<valType> diagonal4x3(
      +00076                 detail::tvec3<valType> const & v);
      +00077 
      +00080         template <typename valType> 
      +00081         detail::tmat4x4<valType> diagonal4x4(
      +00082                 detail::tvec4<valType> const & v);
      +00083 
      +00085 }//namespace matrix_operation
      +00086 }//namespace gtx
      +00087 }//namespace glm
      +00088 
      +00089 #include "matrix_operation.inl"
      +00090 
      +00091 namespace glm{using namespace gtx::matrix_operation;}
      +00092 
      +00093 #endif//glm_gtx_matrix_operation
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00078_source.html b/doc/api-0.9.2/a00078_source.html new file mode 100644 index 00000000..cba9c6f5 --- /dev/null +++ b/doc/api-0.9.2/a00078_source.html @@ -0,0 +1,120 @@ + + + + +matrix_query.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      matrix_query.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-03-05
      +00005 // Updated : 2007-03-05
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/matrix_query.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_matrix_query
      +00013 
      +00014 #ifndef glm_gtx_matrix_query
      +00015 #define glm_gtx_matrix_query
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 
      +00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00021 #       pragma message("GLM: GLM_GTX_matrix_query extension included")
      +00022 #endif
      +00023 
      +00024 namespace glm{
      +00025 namespace gtx{
      +00026 namespace matrix_query 
      +00027 {
      +00030 
      +00033         template<typename T> 
      +00034         bool isNull(
      +00035                 const detail::tmat2x2<T>& m, 
      +00036                 const T epsilon = std::numeric_limits<T>::epsilon());
      +00037                 
      +00040         template<typename T> 
      +00041         bool isNull(
      +00042                 const detail::tmat3x3<T>& m, 
      +00043                 const T epsilon = std::numeric_limits<T>::epsilon());
      +00044                 
      +00047         template<typename T> 
      +00048         bool isNull(
      +00049                 const detail::tmat4x4<T>& m, 
      +00050                 const T epsilon = std::numeric_limits<T>::epsilon());
      +00051                         
      +00054         template<typename genType> 
      +00055         bool isIdentity(
      +00056                 const genType& m, 
      +00057                 const typename genType::value_type epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
      +00058 
      +00061         template<typename T> 
      +00062         bool isNormalized(
      +00063                 const detail::tmat2x2<T>& m, 
      +00064                 const T epsilon = std::numeric_limits<T>::epsilon());
      +00065                 
      +00068         template<typename T> 
      +00069         bool isNormalized(
      +00070                 const detail::tmat3x3<T>& m, 
      +00071                 const T epsilon = std::numeric_limits<T>::epsilon());
      +00072                 
      +00075         template<typename T> 
      +00076         bool isNormalized(
      +00077                 const detail::tmat4x4<T>& m, 
      +00078                 const T epsilon = std::numeric_limits<T>::epsilon());
      +00079 
      +00082         template<typename genType> 
      +00083         bool isOrthogonal(
      +00084                 const genType& m, 
      +00085                 const typename genType::value_type epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
      +00086 
      +00088 }//namespace matrix_query
      +00089 }//namespace gtx
      +00090 }//namespace glm
      +00091 
      +00092 #include "matrix_query.inl"
      +00093 
      +00094 namespace glm{using namespace gtx::matrix_query;}
      +00095 
      +00096 #endif//glm_gtx_matrix_query
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00079_source.html b/doc/api-0.9.2/a00079_source.html new file mode 100644 index 00000000..3115f7dd --- /dev/null +++ b/doc/api-0.9.2/a00079_source.html @@ -0,0 +1,170 @@ + + + + +matrix_transform.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      matrix_transform.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-04-29
      +00005 // Updated : 2009-04-29
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtc/matrix_transform.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTC_matrix_operation
      +00013 
      +00014 #ifndef glm_gtc_matrix_transform
      +00015 #define glm_gtc_matrix_transform
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 
      +00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00021 #       pragma message("GLM: GLM_GTC_matrix_transform extension included")
      +00022 #endif
      +00023 
      +00024 namespace glm{
      +00025 namespace gtc{
      +00026 namespace matrix_transform 
      +00027 {
      +00030 
      +00033         template <typename T> 
      +00034         detail::tmat4x4<T> translate(
      +00035                 detail::tmat4x4<T> const & m,
      +00036                 detail::tvec3<T> const & v);
      +00037                 
      +00040         template <typename T> 
      +00041         detail::tmat4x4<T> rotate(
      +00042                 detail::tmat4x4<T> const & m,
      +00043                 T const & angle, 
      +00044                 detail::tvec3<T> const & v);
      +00045 
      +00048         template <typename T> 
      +00049         detail::tmat4x4<T> scale(
      +00050                 detail::tmat4x4<T> const & m,
      +00051                 detail::tvec3<T> const & v);
      +00052 
      +00055         template <typename T> 
      +00056         detail::tmat4x4<T> ortho(
      +00057                 T const & left, 
      +00058                 T const & right, 
      +00059                 T const & bottom, 
      +00060                 T const & top, 
      +00061                 T const & zNear, 
      +00062                 T const & zFar);
      +00063 
      +00066     template <typename T> 
      +00067         detail::tmat4x4<T> ortho(
      +00068                 T const & left, 
      +00069                 T const & right, 
      +00070                 T const & bottom, 
      +00071                 T const & top);
      +00072 
      +00075         template <typename T> 
      +00076         detail::tmat4x4<T> frustum(
      +00077                 T const & left, 
      +00078                 T const & right, 
      +00079                 T const & bottom, 
      +00080                 T const & top, 
      +00081                 T const & nearVal, 
      +00082                 T const & farVal);
      +00083 
      +00086         template <typename T> 
      +00087         detail::tmat4x4<T> perspective(
      +00088                 T const & fovy, 
      +00089                 T const & aspect, 
      +00090                 T const & zNear, 
      +00091                 T const & zFar);
      +00092 
      +00095         template <typename valType> 
      +00096         detail::tmat4x4<valType> perspectiveFov(
      +00097                 valType const & fov, 
      +00098                 valType const & width, 
      +00099                 valType const & height, 
      +00100                 valType const & zNear, 
      +00101                 valType const & zFar);
      +00102 
      +00105     template <typename T> 
      +00106         detail::tmat4x4<T> infinitePerspective(
      +00107                 T fovy, T aspect, T zNear);
      +00108 
      +00111     template <typename T> 
      +00112         detail::tmat4x4<T> tweakedInfinitePerspective(
      +00113                 T fovy, T aspect, T zNear);
      +00114 
      +00117         template <typename T, typename U> 
      +00118         detail::tvec3<T> project(
      +00119                 detail::tvec3<T> const & obj, 
      +00120                 detail::tmat4x4<T> const & model, 
      +00121                 detail::tmat4x4<T> const & proj, 
      +00122                 detail::tvec4<U> const & viewport);
      +00123 
      +00126         template <typename T, typename U> 
      +00127         detail::tvec3<T> unProject(
      +00128                 detail::tvec3<T> const & win, 
      +00129                 detail::tmat4x4<T> const & model, 
      +00130                 detail::tmat4x4<T> const & proj, 
      +00131                 detail::tvec4<U> const & viewport);
      +00132 
      +00135         template <typename T, typename U> 
      +00136         detail::tmat4x4<T> pickMatrix(
      +00137                 detail::tvec2<T> const & center, 
      +00138                 detail::tvec2<T> const & delta, 
      +00139                 detail::tvec4<U> const & viewport);
      +00140 
      +00143         template <typename T> 
      +00144         detail::tmat4x4<T> lookAt(
      +00145                 detail::tvec3<T> const & eye, 
      +00146                 detail::tvec3<T> const & center, 
      +00147                 detail::tvec3<T> const & up);
      +00148 
      +00150 }//namespace matrix_transform
      +00151 }//namespace gtc
      +00152 }//namespace glm
      +00153 
      +00154 #include "matrix_transform.inl"
      +00155 
      +00156 namespace glm{using namespace gtc::matrix_transform;}
      +00157 
      +00158 #endif//glm_gtc_matrix_transform
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00080_source.html b/doc/api-0.9.2/a00080_source.html new file mode 100644 index 00000000..08267aa8 --- /dev/null +++ b/doc/api-0.9.2/a00080_source.html @@ -0,0 +1,85 @@ + + + + +mixed_product.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      mixed_product.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-04-03
      +00005 // Updated : 2008-09-17
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/mixed_product.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_mixed_product
      +00014 #define glm_gtx_mixed_product
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_mixed_product extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace mixed_product 
      +00026 {
      +00029 
      +00031         template <typename valType> 
      +00032         valType mixedProduct(
      +00033                 detail::tvec3<valType> const & v1, 
      +00034                 detail::tvec3<valType> const & v2, 
      +00035                 detail::tvec3<valType> const & v3);
      +00036 
      +00038 }// namespace mixed_product
      +00039 }// namespace gtx
      +00040 }// namespace glm
      +00041 
      +00042 #include "mixed_product.inl"
      +00043 
      +00044 namespace glm{using namespace gtx::mixed_product;}
      +00045 
      +00046 #endif//glm_gtx_mixed_product
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00081_source.html b/doc/api-0.9.2/a00081_source.html new file mode 100644 index 00000000..35246bcb --- /dev/null +++ b/doc/api-0.9.2/a00081_source.html @@ -0,0 +1,89 @@ + + + + +multiple.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      multiple.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-10-26
      +00005 // Updated : 2009-10-26
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/multiple.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_multiple
      +00014 #define glm_gtx_multiple
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_multiple extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace multiple 
      +00026 {
      +00029 
      +00032         template <typename genType> 
      +00033         genType higherMultiple(
      +00034                 genType const & Source, 
      +00035                 genType const & Multiple);
      +00036 
      +00039         template <typename genType> 
      +00040         genType lowerMultiple(
      +00041                 genType const & Source, 
      +00042                 genType const & Multiple);
      +00043 
      +00045 }//namespace multiple
      +00046 }//namespace gtx
      +00047 }//namespace glm
      +00048 
      +00049 #include "multiple.inl"
      +00050 
      +00051 namespace glm{using namespace gtx::multiple;}
      +00052 
      +00053 #endif//glm_gtx_multiple
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00082_source.html b/doc/api-0.9.2/a00082_source.html new file mode 100644 index 00000000..fc850940 --- /dev/null +++ b/doc/api-0.9.2/a00082_source.html @@ -0,0 +1,96 @@ + + + + +noise.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      noise.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Based on the work of Stefan Gustavson and Ashima Arts on "webgl-noise": 
      +00005 // https://github.com/ashima/webgl-noise 
      +00006 // Following Stefan Gustavson's paper "Simplex noise demystified": 
      +00007 // http://www.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf
      +00009 // Created : 2011-04-21
      +00010 // Updated : 2011-04-21
      +00011 // Licence : This source is under MIT License
      +00012 // File    : glm/gtx/noise.hpp
      +00014 // Dependency:
      +00015 // - GLM core
      +00017 
      +00018 #ifndef glm_gtx_noise
      +00019 #define glm_gtx_noise
      +00020 
      +00021 // Dependency:
      +00022 #include "../glm.hpp"
      +00023 
      +00024 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00025 #       pragma message("GLM: GLM_GTX_noise extension included")
      +00026 #endif
      +00027 
      +00028 namespace glm{
      +00029 namespace gtx{
      +00030 namespace noise 
      +00031 {
      +00034 
      +00037         template <typename T, template<typename> class vecType> 
      +00038     T perlin(
      +00039                 vecType<T> const & p);
      +00040                 
      +00043         template <typename T, template<typename> class vecType> 
      +00044     T perlin(
      +00045                 vecType<T> const & p, 
      +00046                 vecType<T> const & rep);
      +00047 
      +00050         template <typename T, template<typename> class vecType> 
      +00051     T simplex(
      +00052                 vecType<T> const & p);
      +00053 
      +00055 }//namespace noise
      +00056 }//namespace gtx
      +00057 }//namespace glm
      +00058 
      +00059 #include "noise.inl"
      +00060 
      +00061 namespace glm{using namespace gtx::noise;}
      +00062 
      +00063 #endif//glm_gtx_noise
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00083_source.html b/doc/api-0.9.2/a00083_source.html new file mode 100644 index 00000000..14c9288e --- /dev/null +++ b/doc/api-0.9.2/a00083_source.html @@ -0,0 +1,152 @@ + + + + +norm.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      norm.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2008-07-24
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/norm.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_quaternion
      +00013 // ToDo:
      +00014 // - Study the validity of the notion of length2 to quaternion
      +00016 
      +00017 #ifndef glm_gtx_norm
      +00018 #define glm_gtx_norm
      +00019 
      +00020 // Dependency:
      +00021 #include "../glm.hpp"
      +00022 #include "../gtx/quaternion.hpp"
      +00023 
      +00024 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00025 #       pragma message("GLM: GLM_GTX_norm extension included")
      +00026 #endif
      +00027 
      +00028 namespace glm{
      +00029 namespace gtx{
      +00030 namespace norm 
      +00031 {
      +00034 
      +00037         template <typename T> 
      +00038         T length2(
      +00039                 const T x);
      +00040 
      +00043         template <typename T> 
      +00044         T length2(
      +00045                 const detail::tvec2<T> & x);
      +00046 
      +00049         template <typename T>
      +00050         T length2(
      +00051                 const detail::tvec3<T>& x);
      +00052                 
      +00055         template <typename T> 
      +00056         T length2(
      +00057                 const detail::tvec4<T>& x);
      +00058                 
      +00061         template <typename T>
      +00062         T length2(
      +00063                 const detail::tquat<T>& q);
      +00064 
      +00067         template <typename T>
      +00068         T distance2(
      +00069                 const T p0, 
      +00070                 const T p1);
      +00071                 
      +00074         template <typename T> 
      +00075         T distance2(
      +00076                 const detail::tvec2<T>& p0, 
      +00077                 const detail::tvec2<T>& p1);
      +00078 
      +00081         template <typename T>
      +00082         T distance2(
      +00083                 const detail::tvec3<T>& p0,
      +00084                 const detail::tvec3<T>& p1);
      +00085 
      +00088         template <typename T>
      +00089         T distance2(
      +00090                 const detail::tvec4<T>& p0, 
      +00091                 const detail::tvec4<T>& p1);
      +00092 
      +00095         template <typename T>
      +00096         T l1Norm(
      +00097                 const detail::tvec3<T>& x,
      +00098                 const detail::tvec3<T>& y);
      +00099                 
      +00102         template <typename T> 
      +00103         T l1Norm(
      +00104                 const detail::tvec3<T>& v);
      +00105                 
      +00108         template <typename T> 
      +00109         T l2Norm(
      +00110                 const detail::tvec3<T>& x, 
      +00111                 const detail::tvec3<T>& y);
      +00112                 
      +00115         template <typename T> 
      +00116         T l2Norm(
      +00117                 const detail::tvec3<T>& x);
      +00118                 
      +00121         template <typename T> 
      +00122         T lxNorm(
      +00123                 const detail::tvec3<T>& x,
      +00124                 const detail::tvec3<T>& y,
      +00125                 unsigned int Depth);
      +00126 
      +00129         template <typename T>
      +00130         T lxNorm(
      +00131                 const detail::tvec3<T>& x,
      +00132                 unsigned int Depth);
      +00133 
      +00135 }//namespace norm
      +00136 }//namespace gtx
      +00137 }//namespace glm
      +00138 
      +00139 #include "norm.inl"
      +00140 
      +00141 namespace glm{using namespace gtx::norm;}
      +00142 
      +00143 #endif//glm_gtx_norm
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00084_source.html b/doc/api-0.9.2/a00084_source.html new file mode 100644 index 00000000..a9f8d3cd --- /dev/null +++ b/doc/api-0.9.2/a00084_source.html @@ -0,0 +1,85 @@ + + + + +normal.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      normal.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2006-11-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/normal.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_normal
      +00014 #define glm_gtx_normal
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_normal extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace normal 
      +00026 {
      +00029 
      +00032     template <typename T> 
      +00033         detail::tvec3<T> triangleNormal(
      +00034                 detail::tvec3<T> const & p1, 
      +00035                 detail::tvec3<T> const & p2, 
      +00036                 detail::tvec3<T> const & p3);
      +00037 
      +00039 }//namespace normal
      +00040 }//namespace gtx
      +00041 }//namespace glm
      +00042 
      +00043 #include "normal.inl"
      +00044 
      +00045 namespace glm{using namespace gtx::normal;}
      +00046 
      +00047 #endif//glm_gtx_normal
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00085_source.html b/doc/api-0.9.2/a00085_source.html new file mode 100644 index 00000000..b2f869de --- /dev/null +++ b/doc/api-0.9.2/a00085_source.html @@ -0,0 +1,93 @@ + + + + +normalize_dot.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      normalize_dot.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-09-28
      +00005 // Updated : 2008-10-07
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/normalize_dot.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_fast_square_root
      +00013 
      +00014 #ifndef glm_gtx_normalize_dot
      +00015 #define glm_gtx_normalize_dot
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 #include "../gtx/fast_square_root.hpp"
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00022 #       pragma message("GLM: GLM_GTX_normalize_dot extension included")
      +00023 #endif
      +00024 
      +00025 namespace glm{
      +00026 namespace gtx{
      +00027 namespace normalize_dot 
      +00028 {
      +00029         using namespace gtx::fast_square_root;
      +00030 
      +00033 
      +00037         template <typename genType> 
      +00038         typename genType::value_type normalizeDot(
      +00039                 genType const & x, 
      +00040                 genType const & y);
      +00041 
      +00045         template <typename genType> 
      +00046         typename genType::value_type fastNormalizeDot(
      +00047                 genType const & x, 
      +00048                 genType const & y);
      +00049 
      +00051 }//namespace normalize_dot
      +00052 }//namespace gtx
      +00053 }//namespace glm
      +00054 
      +00055 #include "normalize_dot.inl"
      +00056 
      +00057 namespace glm{using namespace gtx::normalize_dot;}
      +00058 
      +00059 #endif//glm_gtx_normalize_dot
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00086_source.html b/doc/api-0.9.2/a00086_source.html new file mode 100644 index 00000000..6e6f5050 --- /dev/null +++ b/doc/api-0.9.2/a00086_source.html @@ -0,0 +1,106 @@ + + + + +number_precision.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      number_precision.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-05-10
      +00005 // Updated : 2009-06-04
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/number_precision.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTC_type_precision
      +00012 // - GLM_GTC_quaternion
      +00014 
      +00015 #ifndef glm_gtx_number_precision
      +00016 #define glm_gtx_number_precision
      +00017 
      +00018 // Dependency:
      +00019 #include "../glm.hpp"
      +00020 #include "../gtc/type_precision.hpp"
      +00021 
      +00022 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00023 #       pragma message("GLM: GLM_GTX_number_precision extension included")
      +00024 #endif
      +00025 
      +00026 namespace glm{
      +00027 namespace gtx{
      +00028 namespace number_precision 
      +00029 {
      +00030         using namespace gtc::type_precision;
      +00031 
      +00033         // Unsigned int vector types 
      +00034 
      +00037 
      +00038         typedef u8                      u8vec1;         
      +00039         typedef u16                     u16vec1;    
      +00040         typedef u32                     u32vec1;    
      +00041         typedef u64                     u64vec1;    
      +00042 
      +00044         // Float vector types 
      +00045 
      +00046         typedef f16                     f16vec1;    
      +00047         typedef f32                     f32vec1;    
      +00048         typedef f64                     f64vec1;    
      +00049 
      +00051         // Float matrix types 
      +00052 
      +00053         typedef f16                     f16mat1;    
      +00054         typedef f16                     f16mat1x1;      
      +00055         typedef f32                     f32mat1;        
      +00056         typedef f32                     f32mat1x1;      
      +00057         typedef f64                     f64mat1;        
      +00058         typedef f64                     f64mat1x1;      
      +00059 
      +00061 }//namespace number_precision
      +00062 }//namespace gtx
      +00063 }//namespace glm
      +00064 
      +00065 #include "number_precision.inl"
      +00066 
      +00067 namespace glm{using namespace gtx::number_precision;}
      +00068 
      +00069 #endif//glm_gtx_number_precision
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00087_source.html b/doc/api-0.9.2/a00087_source.html new file mode 100644 index 00000000..dd8eb634 --- /dev/null +++ b/doc/api-0.9.2/a00087_source.html @@ -0,0 +1,149 @@ + + + + +ocl_type.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      ocl_type.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-05-07
      +00005 // Updated : 2009-05-07
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/number_precision.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_ocl_type
      +00014 #define glm_gtx_ocl_type
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_ocl_type extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace ocl_type 
      +00026 {
      +00028         // Scalar types 
      +00029 
      +00032 
      +00033         typedef detail::int8                                            cl_char;                
      +00034         typedef detail::int16                                           cl_short;               
      +00035         typedef detail::int32                                           cl_int;                 
      +00036         typedef detail::int64                                           cl_long;                
      +00037 
      +00038         typedef detail::uint8                                           cl_uchar;               
      +00039         typedef detail::uint16                                          cl_ushort;              
      +00040         typedef detail::uint32                                          cl_uint;                
      +00041         typedef detail::uint64                                          cl_ulong;               
      +00042 
      +00043         typedef detail::float16                                         cl_half;        
      +00044         typedef detail::float32                                         cl_float;       
      +00045 
      +00046 
      +00047         typedef detail::int8                                            cl_char1;               
      +00048         typedef detail::int16                                           cl_short1;              
      +00049         typedef detail::int32                                           cl_int1;                        
      +00050         typedef detail::int64                                           cl_long1;               
      +00051 
      +00052         typedef detail::uint8                                           cl_uchar1;              
      +00053         typedef detail::uint16                                          cl_ushort1;             
      +00054         typedef detail::uint32                                          cl_uint1;               
      +00055         typedef detail::uint64                                          cl_ulong1;              
      +00056 
      +00057         //typedef detail::float16                                               cl_half1;       //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)
      +00058         typedef detail::float32                                         cl_float1;      
      +00059 
      +00060 
      +00061         typedef detail::tvec2<detail::int8>                     cl_char2;               
      +00062         typedef detail::tvec2<detail::int16>            cl_short2;              
      +00063         typedef detail::tvec2<detail::int32>            cl_int2;                        
      +00064         typedef detail::tvec2<detail::int64>            cl_long2;               
      +00065 
      +00066         typedef detail::tvec2<detail::uint8>            cl_uchar2;              
      +00067         typedef detail::tvec2<detail::uint16>           cl_ushort2;             
      +00068         typedef detail::tvec2<detail::uint32>           cl_uint2;               
      +00069         typedef detail::tvec2<detail::uint64>           cl_ulong2;              
      +00070 
      +00071         //typedef detail::tvec2<detail::float16>                cl_half2;       //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)
      +00072         typedef detail::tvec2<detail::float32>          cl_float2;      
      +00073 
      +00074 
      +00075         typedef detail::tvec3<detail::int8>                     cl_char3;               
      +00076         typedef detail::tvec3<detail::int16>            cl_short3;              
      +00077         typedef detail::tvec3<detail::int32>            cl_int3;                        
      +00078         typedef detail::tvec3<detail::int64>            cl_long3;               
      +00079 
      +00080         typedef detail::tvec3<detail::uint8>            cl_uchar3;              
      +00081         typedef detail::tvec3<detail::uint16>           cl_ushort3;             
      +00082         typedef detail::tvec3<detail::uint32>           cl_uint3;               
      +00083         typedef detail::tvec3<detail::uint64>           cl_ulong3;              
      +00084 
      +00085         //typedef detail::tvec3<detail::float16>                cl_half3;       //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)
      +00086         typedef detail::tvec3<detail::float32>          cl_float3;      
      +00087 
      +00088 
      +00089         typedef detail::tvec4<detail::int8>                     cl_char4;               
      +00090         typedef detail::tvec4<detail::int16>            cl_short4;              
      +00091         typedef detail::tvec4<detail::int32>            cl_int4;                        
      +00092         typedef detail::tvec4<detail::int64>            cl_long4;               
      +00093         typedef detail::tvec4<detail::uint8>            cl_uchar4;              
      +00094         typedef detail::tvec4<detail::uint16>           cl_ushort4;             
      +00095         typedef detail::tvec4<detail::uint32>           cl_uint4;               
      +00096         typedef detail::tvec4<detail::uint64>           cl_ulong4;              
      +00097 
      +00098         //typedef detail::tvec4<detail::float16>                cl_half4;       //!< \brief Half-precision floating-point scalar. (from GLM_GTX_ocl_type extension)
      +00099         typedef detail::tvec4<detail::float32>          cl_float4;      
      +00100 
      +00102 }//namespace ocl_type
      +00103 }//namespace gtx
      +00104 }//namespace glm
      +00105 
      +00106 #include "ocl_type.inl"
      +00107 
      +00108 namespace glm{using namespace gtx::ocl_type;}
      +00109 
      +00110 #endif//glm_gtx_ocl_type
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00088_source.html b/doc/api-0.9.2/a00088_source.html new file mode 100644 index 00000000..e5798135 --- /dev/null +++ b/doc/api-0.9.2/a00088_source.html @@ -0,0 +1,96 @@ + + + + +optimum_pow.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      optimum_pow.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2006-11-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/optimum_pow.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_optimum_pow
      +00014 #define glm_gtx_optimum_pow
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_optimum_pow extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace optimum_pow 
      +00026 {
      +00029 
      +00032     template <typename genType> 
      +00033         genType pow2(const genType& x);
      +00034 
      +00037     template <typename genType> 
      +00038         genType pow3(const genType& x);
      +00039 
      +00042         template <typename genType> 
      +00043         genType pow4(const genType& x);
      +00044         
      +00047     bool powOfTwo(int num);
      +00048 
      +00051     detail::tvec2<bool> powOfTwo(const detail::tvec2<int>& x);
      +00052 
      +00055     detail::tvec3<bool> powOfTwo(const detail::tvec3<int>& x);
      +00056 
      +00059     detail::tvec4<bool> powOfTwo(const detail::tvec4<int>& x);
      +00060 
      +00062 }//namespace optimum_pow
      +00063 }//namespace gtx
      +00064 }//namespace glm
      +00065 
      +00066 #include "optimum_pow.inl"
      +00067 
      +00068 namespace glm{using namespace gtx::optimum_pow;}
      +00069 
      +00070 #endif//glm_gtx_optimum_pow
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00089_source.html b/doc/api-0.9.2/a00089_source.html new file mode 100644 index 00000000..244c37a0 --- /dev/null +++ b/doc/api-0.9.2/a00089_source.html @@ -0,0 +1,88 @@ + + + + +orthonormalize.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      orthonormalize.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2006-11-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/orthonormalize.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_orthonormalize
      +00014 #define glm_gtx_orthonormalize
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_orthonormalize extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace orthonormalize 
      +00026 {
      +00029 
      +00032         template <typename T> 
      +00033         detail::tmat3x3<T> orthonormalize(
      +00034                 const detail::tmat3x3<T>& m);
      +00035                 
      +00038         template <typename T> 
      +00039         detail::tvec3<T> orthonormalize(
      +00040                 const detail::tvec3<T>& x, 
      +00041                 const detail::tvec3<T>& y);
      +00042 
      +00044 }//namespace orthonormalize
      +00045 }//namespace gtx
      +00046 }//namespace glm
      +00047 
      +00048 #include "orthonormalize.inl"
      +00049 
      +00050 namespace glm{using namespace gtx::orthonormalize;}
      +00051 
      +00052 #endif//glm_gtx_orthonormalize
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00090_source.html b/doc/api-0.9.2/a00090_source.html new file mode 100644 index 00000000..392c2aa4 --- /dev/null +++ b/doc/api-0.9.2/a00090_source.html @@ -0,0 +1,47 @@ + + + + +pages.doxy Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      pages.doxy
      +
      +
      +
      00001 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00091_source.html b/doc/api-0.9.2/a00091_source.html new file mode 100644 index 00000000..b5c58035 --- /dev/null +++ b/doc/api-0.9.2/a00091_source.html @@ -0,0 +1,96 @@ + + + + +perpendicular.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      perpendicular.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2009-03-06
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/perpendicular.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_projection
      +00013 
      +00014 #ifndef glm_gtx_perpendicular
      +00015 #define glm_gtx_perpendicular
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 #include "../gtx/projection.hpp"
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00022 #       pragma message("GLM: GLM_GTX_perpendicular extension included")
      +00023 #endif
      +00024 
      +00025 namespace glm{
      +00026 namespace gtx{
      +00027 namespace perpendicular 
      +00028 {
      +00031 
      +00034         template <typename T> 
      +00035         detail::tvec2<T> perp(
      +00036                 detail::tvec2<T> const & x, 
      +00037                 detail::tvec2<T> const & Normal);
      +00038 
      +00041         template <typename T> 
      +00042         detail::tvec3<T> perp(
      +00043                 detail::tvec3<T> const & x, 
      +00044                 detail::tvec3<T> const & Normal);
      +00045 
      +00048         template <typename T> 
      +00049         detail::tvec4<T> perp(
      +00050                 detail::tvec4<T> const & x, 
      +00051                 detail::tvec4<T> const & Normal);
      +00052 
      +00054 }//namespace perpendicular
      +00055 }//namespace gtx
      +00056 }//namespace glm
      +00057 
      +00058 #include "perpendicular.inl"
      +00059 
      +00060 namespace glm{using namespace gtx::perpendicular;}
      +00061 
      +00062 #endif//glm_gtx_perpendicular
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00092_source.html b/doc/api-0.9.2/a00092_source.html new file mode 100644 index 00000000..2de0e0c2 --- /dev/null +++ b/doc/api-0.9.2/a00092_source.html @@ -0,0 +1,85 @@ + + + + +polar_coordinates.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      polar_coordinates.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-03-06
      +00005 // Updated : 2009-05-01
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/polar_coordinates.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_polar_coordinates
      +00014 #define glm_gtx_polar_coordinates
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_polar_coordinates extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace polar_coordinates 
      +00026 {
      +00029 
      +00032         template <typename T> 
      +00033         detail::tvec3<T> polar(const detail::tvec3<T>& euclidean);
      +00034 
      +00037         template <typename T> 
      +00038         detail::tvec3<T> euclidean(const detail::tvec3<T>& polar);
      +00039 
      +00041 }//namespace polar_coordinates
      +00042 }//namespace gtx
      +00043 }//namespace glm
      +00044 
      +00045 #include "polar_coordinates.inl"
      +00046 
      +00047 namespace glm{using namespace gtx::polar_coordinates;}
      +00048 
      +00049 #endif//glm_gtx_polar_coordinates
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00093_source.html b/doc/api-0.9.2/a00093_source.html new file mode 100644 index 00000000..df90dc5d --- /dev/null +++ b/doc/api-0.9.2/a00093_source.html @@ -0,0 +1,94 @@ + + + + +projection.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      projection.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2009-03-06
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/projection.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_projection
      +00014 #define glm_gtx_projection
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_projection extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace projection 
      +00026 {
      +00029 
      +00032         template <typename T> 
      +00033         detail::tvec2<T> proj(
      +00034                 detail::tvec2<T> const & x, 
      +00035                 detail::tvec2<T> const & Normal);
      +00036                 
      +00039         template <typename T> 
      +00040         detail::tvec3<T> proj(
      +00041                 detail::tvec3<T> const & x, 
      +00042                 detail::tvec3<T> const & Normal);
      +00043 
      +00046         template <typename T> 
      +00047         detail::tvec4<T> proj(
      +00048                 detail::tvec4<T> const & x, 
      +00049                 detail::tvec4<T> const & Normal);
      +00050 
      +00052 }//namespace projection
      +00053 }//namespace gtx
      +00054 }//namespace glm
      +00055 
      +00056 #include "projection.inl"
      +00057 
      +00058 namespace glm{using namespace gtx::projection;}
      +00059 
      +00060 #endif//glm_gtx_projection
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00094_source.html b/doc/api-0.9.2/a00094_source.html new file mode 100644 index 00000000..f50c8ab7 --- /dev/null +++ b/doc/api-0.9.2/a00094_source.html @@ -0,0 +1,242 @@ + + + + +quaternion.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      quaternion.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-05-21
      +00005 // Updated : 2010-02-04
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtc/quaternion.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTC_half_float
      +00013 // ToDo:
      +00014 // - Study constructors with angles and axis
      +00015 // - Study constructors with vec3 that are the imaginary component of quaternion
      +00017 
      +00018 #ifndef glm_gtc_quaternion
      +00019 #define glm_gtc_quaternion
      +00020 
      +00021 // Dependency:
      +00022 #include "../glm.hpp"
      +00023 #include "../gtc/half_float.hpp"
      +00024 
      +00025 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00026 #       pragma message("GLM: GLM_GTC_quaternion extension included")
      +00027 #endif
      +00028 
      +00029 namespace glm{
      +00030 namespace detail
      +00031 {
      +00035         template <typename T> 
      +00036         struct tquat// : public genType<T, tquat>
      +00037         {
      +00038                 typedef T value_type;
      +00039 
      +00040         public:
      +00041                 value_type x, y, z, w;
      +00042 
      +00043                 // Constructors
      +00044                 tquat();
      +00045                 explicit tquat(
      +00046                         value_type const & s, 
      +00047                         tvec3<T> const & v);
      +00048                 explicit tquat(
      +00049                         value_type const & w, 
      +00050                         value_type const & x, 
      +00051                         value_type const & y, 
      +00052                         value_type const & z);
      +00053 
      +00054                 // Convertions
      +00055                 //explicit tquat(valType const & pitch, valType const & yaw, valType const & roll);
      +00057                 explicit tquat(
      +00058                         tvec3<T> const & eulerAngles);
      +00059                 explicit tquat(
      +00060                         tmat3x3<T> const & m);
      +00061                 explicit tquat(
      +00062                         tmat4x4<T> const & m);
      +00063 
      +00064                 // Accesses
      +00065                 value_type & operator[](int i);
      +00066                 value_type const & operator[](int i) const;
      +00067 
      +00068                 // Operators
      +00069                 tquat<T> & operator*=(value_type const & s);
      +00070                 tquat<T> & operator/=(value_type const & s);
      +00071         };
      +00072 
      +00073         template <typename T> 
      +00074         detail::tquat<T> operator- (
      +00075                 detail::tquat<T> const & q);
      +00076 
      +00077         template <typename T> 
      +00078         detail::tquat<T> operator+ ( 
      +00079                 detail::tquat<T> const & q, 
      +00080                 detail::tquat<T> const & p); 
      +00081 
      +00082         template <typename T> 
      +00083         detail::tquat<T> operator* ( 
      +00084                 detail::tquat<T> const & q, 
      +00085                 detail::tquat<T> const & p); 
      +00086 
      +00087         template <typename T> 
      +00088         detail::tvec3<T> operator* (
      +00089                 detail::tquat<T> const & q, 
      +00090                 detail::tvec3<T> const & v);
      +00091 
      +00092         template <typename T> 
      +00093         detail::tvec3<T> operator* (
      +00094                 detail::tvec3<T> const & v,
      +00095                 detail::tquat<T> const & q);
      +00096 
      +00097         template <typename T> 
      +00098         detail::tvec4<T> operator* (
      +00099                 detail::tquat<T> const & q, 
      +00100                 detail::tvec4<T> const & v);
      +00101 
      +00102         template <typename T> 
      +00103         detail::tvec4<T> operator* (
      +00104                 detail::tvec4<T> const & v,
      +00105                 detail::tquat<T> const & q);
      +00106 
      +00107         template <typename T> 
      +00108         detail::tquat<T> operator* (
      +00109                 detail::tquat<T> const & q, 
      +00110                 typename detail::tquat<T>::value_type const & s);
      +00111 
      +00112         template <typename T> 
      +00113         detail::tquat<T> operator* (
      +00114                 typename detail::tquat<T>::value_type const & s,
      +00115                 detail::tquat<T> const & q);
      +00116 
      +00117         template <typename T> 
      +00118         detail::tquat<T> operator/ (
      +00119                 detail::tquat<T> const & q, 
      +00120                 typename detail::tquat<T>::value_type const & s);
      +00121 
      +00122 } //namespace detail
      +00123 
      +00124 namespace gtc{
      +00125 namespace quaternion 
      +00126 {
      +00129 
      +00132     template <typename T> 
      +00133         typename detail::tquat<T>::value_type length(
      +00134                 detail::tquat<T> const & q);
      +00135 
      +00138         template <typename T> 
      +00139         detail::tquat<T> normalize(
      +00140                 detail::tquat<T> const & q);
      +00141                 
      +00144         template <typename T> 
      +00145         typename detail::tquat<T>::value_type dot(
      +00146                 detail::tquat<T> const & q1, 
      +00147                 detail::tquat<T> const & q2);
      +00148 
      +00151         template <typename T> 
      +00152         GLM_DEPRECATED detail::tquat<T> cross(
      +00153                 detail::tquat<T> const & q1, 
      +00154                 detail::tquat<T> const & q2);
      +00155                 
      +00158         template <typename T> 
      +00159         detail::tquat<T> mix(
      +00160                 detail::tquat<T> const & x, 
      +00161                 detail::tquat<T> const & y, 
      +00162                 T const & a);
      +00163                 
      +00166     template <typename T> 
      +00167         detail::tquat<T> conjugate(
      +00168                 detail::tquat<T> const & q);
      +00169 
      +00172     template <typename T> 
      +00173         detail::tquat<T> inverse(
      +00174                 detail::tquat<T> const & q);
      +00175 
      +00178         template <typename T> 
      +00179         detail::tquat<T> rotate(
      +00180                 detail::tquat<T> const & q, 
      +00181                 typename detail::tquat<T>::value_type const & angle, 
      +00182                 detail::tvec3<T> const & v);
      +00183 
      +00186     template <typename T> 
      +00187         detail::tmat3x3<T> mat3_cast(
      +00188                 detail::tquat<T> const & x);
      +00189 
      +00192         template <typename T> 
      +00193         detail::tmat4x4<T> mat4_cast(
      +00194                 detail::tquat<T> const & x);
      +00195 
      +00198         template <typename T> 
      +00199         detail::tquat<T> quat_cast(
      +00200                 detail::tmat3x3<T> const & x);
      +00201 
      +00204         template <typename T> 
      +00205         detail::tquat<T> quat_cast(
      +00206                 detail::tmat4x4<T> const & x);
      +00207 
      +00210     typedef detail::tquat<float> quat;
      +00211 
      +00214         typedef detail::tquat<detail::thalf>    hquat;
      +00215 
      +00218         typedef detail::tquat<float>    fquat;
      +00219 
      +00222         typedef detail::tquat<double>   dquat;
      +00223 
      +00226         typedef detail::tquat<lowp_float>               lowp_quat;
      +00227 
      +00230         typedef detail::tquat<mediump_float>    mediump_quat;
      +00231 
      +00234         typedef detail::tquat<highp_float>              highp_quat;
      +00236 
      +00237 } //namespace quaternion
      +00238 } //namespace gtc
      +00239 } //namespace glm
      +00240 
      +00241 #include "quaternion.inl"
      +00242 
      +00243 namespace glm{using namespace gtc::quaternion;}
      +00244 
      +00245 #endif//glm_gtc_quaternion
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00095_source.html b/doc/api-0.9.2/a00095_source.html new file mode 100644 index 00000000..a247ede5 --- /dev/null +++ b/doc/api-0.9.2/a00095_source.html @@ -0,0 +1,205 @@ + + + + +quaternion.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      quaternion.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2009-05-21
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/quaternion.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 // ToDo:
      +00013 // - Study constructors with angles and axis
      +00014 // - Study constructors with vec3 that are the imaginary component of quaternion
      +00016 
      +00017 #ifndef glm_gtx_quaternion
      +00018 #define glm_gtx_quaternion
      +00019 
      +00020 // Dependency:
      +00021 #include "../glm.hpp"
      +00022 #include "../gtc/quaternion.hpp"
      +00023 
      +00024 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00025 #       pragma message("GLM: GLM_GTX_quaternion extension included")
      +00026 #endif
      +00027 
      +00028 namespace glm{
      +00029 namespace gtx{
      +00030 namespace quaternion 
      +00031 {
      +00032         using namespace gtc::quaternion;
      +00033 
      +00036 
      +00039         template <typename valType> 
      +00040         detail::tvec3<valType> cross(
      +00041                 detail::tquat<valType> const & q, 
      +00042                 detail::tvec3<valType> const & v);
      +00043 
      +00046         template <typename valType> 
      +00047         detail::tvec3<valType> cross(
      +00048                 detail::tvec3<valType> const & v, 
      +00049                 detail::tquat<valType> const & q);
      +00050 
      +00054         template <typename valType> 
      +00055         detail::tquat<valType> squad(
      +00056                 detail::tquat<valType> const & q1, 
      +00057                 detail::tquat<valType> const & q2, 
      +00058                 detail::tquat<valType> const & s1, 
      +00059                 detail::tquat<valType> const & s2, 
      +00060                 valType const & h);
      +00061 
      +00064         template <typename valType> 
      +00065         detail::tquat<valType> intermediate(
      +00066                 detail::tquat<valType> const & prev, 
      +00067                 detail::tquat<valType> const & curr, 
      +00068                 detail::tquat<valType> const & next);
      +00069 
      +00072     template <typename valType> 
      +00073         detail::tquat<valType> exp(
      +00074                 detail::tquat<valType> const & q, 
      +00075                 valType const & exponent);
      +00076 
      +00079     template <typename valType> 
      +00080         detail::tquat<valType> log(
      +00081                 detail::tquat<valType> const & q);
      +00082 
      +00085     template <typename valType> 
      +00086         detail::tquat<valType> pow(
      +00087                 detail::tquat<valType> const & x, 
      +00088                 valType const & y);
      +00089 
      +00092         //template <typename valType> 
      +00093         //detail::tquat<valType> sqrt(
      +00094         //      detail::tquat<valType> const & q);
      +00095 
      +00098         template <typename valType> 
      +00099         detail::tvec3<valType> rotate(
      +00100                 detail::tquat<valType> const & q, 
      +00101                 detail::tvec3<valType> const & v);
      +00102 
      +00105         template <typename valType> 
      +00106         detail::tvec4<valType> rotate(
      +00107                 detail::tquat<valType> const & q, 
      +00108                 detail::tvec4<valType> const & v);
      +00109                 
      +00112         template <typename valType> 
      +00113         valType angle(
      +00114                 detail::tquat<valType> const & x);
      +00115 
      +00118         template <typename valType> 
      +00119         detail::tvec3<valType> axis(
      +00120                 detail::tquat<valType> const & x);
      +00121 
      +00124         template <typename valType> 
      +00125         detail::tquat<valType> angleAxis(
      +00126                 valType const & angle, 
      +00127                 valType const & x, 
      +00128                 valType const & y, 
      +00129                 valType const & z);
      +00130 
      +00133         template <typename valType> 
      +00134         detail::tquat<valType> angleAxis(
      +00135                 valType const & angle, 
      +00136                 detail::tvec3<valType> const & axis);
      +00137 
      +00140         template <typename valType> 
      +00141         valType extractRealComponent(
      +00142                 detail::tquat<valType> const & q);
      +00143 
      +00146         template <typename valType> 
      +00147         valType roll(
      +00148                 detail::tquat<valType> const & x);
      +00149 
      +00152     template <typename valType> 
      +00153         valType pitch(
      +00154                 detail::tquat<valType> const & x);
      +00155 
      +00158         template <typename valType> 
      +00159         valType yaw(
      +00160                 detail::tquat<valType> const & x);
      +00161                 
      +00164         template <typename valType> 
      +00165         detail::tvec3<valType> eulerAngles(
      +00166                 detail::tquat<valType> const & x);
      +00167 
      +00170     template <typename valType> 
      +00171         detail::tmat3x3<valType> toMat3(
      +00172                 detail::tquat<valType> const & x){return gtc::quaternion::mat3_cast(x);}
      +00173 
      +00176         template <typename valType> 
      +00177         detail::tmat4x4<valType> toMat4(
      +00178                 detail::tquat<valType> const & x){return gtc::quaternion::mat4_cast(x);}
      +00179 
      +00182         template <typename valType> 
      +00183         detail::tquat<valType> toQuat(
      +00184                 detail::tmat3x3<valType> const & x){return gtc::quaternion::quat_cast(x);}
      +00185 
      +00188         template <typename valType> 
      +00189         detail::tquat<valType> toQuat(
      +00190                 detail::tmat4x4<valType> const & x){return gtc::quaternion::quat_cast(x);}
      +00191 
      +00194         template <typename T>
      +00195         detail::tquat<T> shortMix(
      +00196                 detail::tquat<T> const & x, 
      +00197                 detail::tquat<T> const & y, 
      +00198                 T const & a);
      +00199 
      +00202         template <typename T>
      +00203         detail::tquat<T> fastMix(
      +00204                 detail::tquat<T> const & x, 
      +00205                 detail::tquat<T> const & y, 
      +00206                 T const & a);
      +00207 
      +00209 }//namespace quaternion
      +00210 }//namespace gtx
      +00211 } //namespace glm
      +00212 
      +00213 #include "quaternion.inl"
      +00214 
      +00215 namespace glm{using namespace gtx::quaternion;}
      +00216 
      +00217 #endif//glm_gtx_quaternion
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00096_source.html b/doc/api-0.9.2/a00096_source.html new file mode 100644 index 00000000..fe2cbb42 --- /dev/null +++ b/doc/api-0.9.2/a00096_source.html @@ -0,0 +1,127 @@ + + + + +random.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      random.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-01-16
      +00005 // Updated : 2007-08-30
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/random.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_vecx
      +00012 // - GLM_GTX_half_float
      +00014 
      +00015 #ifndef glm_gtx_random
      +00016 #define glm_gtx_random
      +00017 
      +00018 // Dependency:
      +00019 #include "../glm.hpp"
      +00020 #include "../gtc/half_float.hpp"
      +00021 
      +00022 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00023 #       pragma message("GLM: GLM_GTX_random extension included")
      +00024 #endif
      +00025 
      +00026 namespace glm{
      +00027 namespace gtx{
      +00028 namespace random 
      +00029 {
      +00032 
      +00035     template <typename T> T signedRand1();
      +00036         
      +00037         template <> float signedRand1();                                                                                     
      +00038     template <> double signedRand1();                                                                                   
      +00039     template <typename T> detail::tvec2<T> signedRand2();                                                                           
      +00040     template <typename T> detail::tvec3<T> signedRand3();                                                                           
      +00041     template <typename T> detail::tvec4<T> signedRand4();                                                                           
      +00042     
      +00043         template <typename T> detail::tvec2<T> normalizedRand2();                                                                          
      +00044         template <typename T> detail::tvec2<T> normalizedRand2(T Min, T Max);                                                         
      +00045         template <typename T> detail::tvec3<T> normalizedRand3();                                                                          
      +00046         template <typename T> detail::tvec3<T> normalizedRand3(T Min, T Max);                                                        
      +00047 
      +00048     template <typename T> T compRand1();                                                                                       
      +00049         template <> float compRand1();                                                                                         
      +00050     template <> double compRand1();                                                                                      
      +00051     template <typename T> T compRand1(T Min, T Max);                                                                     
      +00052     template <typename T> detail::tvec2<T> compRand2(T Min, T Max);                                                              
      +00053     template <typename T> detail::tvec3<T> compRand3(T Min, T Max);                                                             
      +00054     template <typename T> detail::tvec4<T> compRand4(T Min, T Max);                                                              
      +00055     template <typename T> detail::tvec2<T> compRand2(const detail::tvec2<T>& Min, const detail::tvec2<T>& Max);                                
      +00056     template <typename T> detail::tvec3<T> compRand3(const detail::tvec3<T>& Min, const detail::tvec3<T>& Max);                                
      +00057     template <typename T> detail::tvec3<T> compRand4(const detail::tvec4<T>& Min, const detail::tvec4<T>& Max);                                
      +00058 
      +00059     template <typename T> detail::tvec2<T> vecRand2();                                                                                 
      +00060     template <typename T> detail::tvec2<T> vecRand2(T MinRadius, T MaxRadius);                                        
      +00061     template <typename T> detail::tvec3<T> vecRand3();                                                                                 
      +00062     template <typename T> detail::tvec3<T> vecRand3(T MinRadius, T MaxRadius);                                        
      +00063     template <typename T> detail::tvec4<T> vecRand4();                                                                                 
      +00064     template <typename T> detail::tvec4<T> vecRand4(T MinRadius, T MaxRadius);                                        
      +00065 
      +00066     template <typename T> T gaussRand1(T mean, T std_deviation);                                           
      +00067     template <typename T> detail::tvec2<T> gaussRand2(T mean, T std_deviation);                                   
      +00068     template <typename T> detail::tvec3<T> gaussRand3(T mean, T std_deviation);                                   
      +00069     template <typename T> detail::tvec4<T> gaussRand4(T mean, T std_deviation);                                   
      +00070     template <typename T> detail::tvec2<T> gaussRand2(const detail::tvec2<T>& mean, T std_deviation);                    
      +00071     template <typename T> detail::tvec3<T> gaussRand3(const detail::tvec3<T>& mean, T std_deviation);                    
      +00072     template <typename T> detail::tvec4<T> gaussRand4(const detail::tvec4<T>& mean, T std_deviation);                    
      +00073     template <typename T> detail::tvec2<T> gaussRand2(T  mean, const detail::tvec2<T>& std_deviation);                   
      +00074     template <typename T> detail::tvec3<T> gaussRand3(T  mean, const detail::tvec3<T>& std_deviation);                   
      +00075     template <typename T> detail::tvec4<T> gaussRand4(T  mean, const detail::tvec4<T>& std_deviation);                   
      +00076     template <typename T> detail::tvec2<T> gaussRand2(const detail::tvec2<T>& mean, const detail::tvec2<T>& std_deviation);     
      +00077     template <typename T> detail::tvec3<T> gaussRand3(const detail::tvec3<T>& mean, const detail::tvec3<T>& std_deviation);     
      +00078     template <typename T> detail::tvec4<T> gaussRand4(const detail::tvec4<T>& mean, const detail::tvec4<T>& std_deviation);     
      +00079 
      +00081 }//namespace random
      +00082 }//namespace gtx
      +00083 }//namespace glm
      +00084 
      +00085 #include "random.inl"
      +00086 
      +00087 namespace glm{using namespace gtx::random;}
      +00088 
      +00089 #endif//glm_gtx_random
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00097_source.html b/doc/api-0.9.2/a00097_source.html new file mode 100644 index 00000000..6608cb78 --- /dev/null +++ b/doc/api-0.9.2/a00097_source.html @@ -0,0 +1,90 @@ + + + + +raw_data.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      raw_data.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-11-19
      +00005 // Updated : 2010-01-28
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/raw_data.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_raw_data
      +00014 #define glm_gtx_raw_data
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 #include "../gtc/type_precision.hpp"
      +00019 
      +00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00021 #       pragma message("GLM: GLM_GTX_raw_data extension included")
      +00022 #endif
      +00023 
      +00024 namespace glm{
      +00025 namespace gtx{
      +00026 namespace raw_data 
      +00027 {
      +00028         using namespace gtc::type_precision;
      +00029 
      +00032 
      +00035         typedef uint8           byte;
      +00036 
      +00039         typedef uint16          word;
      +00040 
      +00043         typedef uint32          dword;
      +00044 
      +00047         typedef uint64          qword;
      +00048 
      +00050 }// namespace raw_data
      +00051 }// namespace gtx
      +00052 }// namespace glm
      +00053 
      +00054 #include "raw_data.inl"
      +00055 
      +00056 namespace glm{using namespace gtx::raw_data;}
      +00057 
      +00058 #endif//glm_gtx_raw_data
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00098_source.html b/doc/api-0.9.2/a00098_source.html new file mode 100644 index 00000000..a332b1ed --- /dev/null +++ b/doc/api-0.9.2/a00098_source.html @@ -0,0 +1,113 @@ + + + + +reciprocal.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      reciprocal.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-10-09
      +00005 // Updated : 2008-10-09
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/reciprocal.hpp
      +00009 
      +00010 #ifndef glm_gtx_reciprocal
      +00011 #define glm_gtx_reciprocal
      +00012 
      +00013 // Dependency:
      +00014 #include "../glm.hpp"
      +00015 
      +00016 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00017 #       pragma message("GLM: GLM_GTX_reciprocal extension included")
      +00018 #endif
      +00019 
      +00020 namespace glm{
      +00021 namespace gtx{
      +00022 namespace reciprocal 
      +00023 {
      +00026 
      +00030         template <typename genType> 
      +00031         genType sec(genType const & angle);
      +00032 
      +00036         template <typename genType> 
      +00037         genType csc(genType const & angle);
      +00038                 
      +00042         template <typename genType> 
      +00043         genType cot(genType const & angle);
      +00044 
      +00047         template <typename genType> 
      +00048         genType asec(genType const & x);
      +00049 
      +00052         template <typename genType> 
      +00053         genType acsc(genType const & x);
      +00054                 
      +00057         template <typename genType> 
      +00058         genType acot(genType const & x);
      +00059 
      +00062         template <typename genType> 
      +00063         genType sech(genType const & angle);
      +00064 
      +00067         template <typename genType> 
      +00068         genType csch(genType const & angle);
      +00069                 
      +00072         template <typename genType> 
      +00073         genType coth(genType const & angle);
      +00074 
      +00077         template <typename genType> 
      +00078         genType asech(genType const & x);
      +00079 
      +00082         template <typename genType> 
      +00083         genType acsch(genType const & x);
      +00084                 
      +00087         template <typename genType> 
      +00088         genType acoth(genType const & x);
      +00089 
      +00091 }//namespace reciprocal
      +00092 }//namespace gtx
      +00093 }//namespace glm
      +00094 
      +00095 #include "reciprocal.inl"
      +00096 
      +00097 namespace glm{using namespace gtx::reciprocal;}
      +00098 
      +00099 #endif//glm_gtx_reciprocal
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00099_source.html b/doc/api-0.9.2/a00099_source.html new file mode 100644 index 00000000..5d4e4620 --- /dev/null +++ b/doc/api-0.9.2/a00099_source.html @@ -0,0 +1,134 @@ + + + + +rotate_vector.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      rotate_vector.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-11-02
      +00005 // Updated : 2009-02-19
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/rotate_vector.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_rotate_vector
      +00014 #define glm_gtx_rotate_vector
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 #include "../gtx/transform.hpp"
      +00019 
      +00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00021 #       pragma message("GLM: GLM_GTX_rotate_vector extension included")
      +00022 #endif
      +00023 
      +00024 namespace glm{
      +00025 namespace gtx{
      +00026 namespace rotate_vector 
      +00027 {
      +00028         using namespace transform;
      +00029 
      +00032 
      +00035         template <typename T> 
      +00036         detail::tvec2<T> rotate(
      +00037         detail::tvec2<T> const & v, 
      +00038                 T const & angle);
      +00039                 
      +00042         template <typename T> 
      +00043         detail::tvec3<T> rotate(
      +00044         detail::tvec3<T> const & v, 
      +00045                 T const & angle, 
      +00046         detail::tvec3<T> const & normal);
      +00047                 
      +00050         template <typename T> 
      +00051         detail::tvec4<T> rotate(
      +00052         detail::tvec4<T> const & v, 
      +00053         T const & angle, 
      +00054                 detail::tvec3<T> const & normal);
      +00055                 
      +00058         template <typename T> 
      +00059         detail::tvec3<T> rotateX(
      +00060         detail::tvec3<T> const & v, 
      +00061                 T const & angle);
      +00062 
      +00065         template <typename T> 
      +00066         detail::tvec3<T> rotateY(
      +00067                 detail::tvec3<T> const & v, 
      +00068                 T const & angle);
      +00069                 
      +00072         template <typename T> 
      +00073         detail::tvec3<T> rotateZ(
      +00074         detail::tvec3<T> const & v, 
      +00075                 T const & angle);
      +00076                 
      +00079         template <typename T> 
      +00080         detail::tvec4<T> rotateX(
      +00081         detail::tvec4<T> const & v, 
      +00082                 T const & angle);
      +00083                 
      +00086         template <typename T> 
      +00087         detail::tvec4<T> rotateY(
      +00088         detail::tvec4<T> const & v, 
      +00089                 T const & angle);
      +00090                 
      +00093         template <typename T> 
      +00094         detail::tvec4<T> rotateZ(
      +00095         detail::tvec4<T> const & v, 
      +00096                 T const & angle);
      +00097                 
      +00100         template <typename T> 
      +00101         detail::tmat4x4<T> orientation(
      +00102         detail::tvec3<T> const & Normal, 
      +00103         detail::tvec3<T> const & Up);
      +00104 
      +00106 }//namespace rotate_vector
      +00107 }//namespace gtx
      +00108 }//namespace glm
      +00109 
      +00110 #include "rotate_vector.inl"
      +00111 
      +00112 namespace glm{using namespace gtx::rotate_vector;}
      +00113 
      +00114 #endif//glm_gtx_rotate_vector
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00100_source.html b/doc/api-0.9.2/a00100_source.html new file mode 100644 index 00000000..414f21bb --- /dev/null +++ b/doc/api-0.9.2/a00100_source.html @@ -0,0 +1,515 @@ + + + + +setup.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      setup.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-11-13
      +00005 // Updated : 2011-01-26
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/setup.hpp
      +00009 
      +00010 #ifndef glm_setup
      +00011 #define glm_setup
      +00012 
      +00014 // Version
      +00015 
      +00016 #define GLM_VERSION                                     92
      +00017 #define GLM_VERSION_MAJOR                       0
      +00018 #define GLM_VERSION_MINOR                       9
      +00019 #define GLM_VERSION_PATCH                       2
      +00020 #define GLM_VERSION_REVISION            6
      +00021 
      +00023 // Compiler
      +00024 
      +00025 // User defines: GLM_FORCE_COMPILER_UNKNOWN
      +00026 // TODO ? __llvm__ 
      +00027 
      +00028 #define GLM_COMPILER_UNKNOWN            0x00000000
      +00029 
      +00030 // Visual C++ defines
      +00031 #define GLM_COMPILER_VC                         0x01000000
      +00032 #define GLM_COMPILER_VC2                        0x01000010
      +00033 #define GLM_COMPILER_VC4                        0x01000020
      +00034 #define GLM_COMPILER_VC5                        0x01000030
      +00035 #define GLM_COMPILER_VC6                        0x01000040
      +00036 #define GLM_COMPILER_VC2002                     0x01000050
      +00037 #define GLM_COMPILER_VC2003                     0x01000060
      +00038 #define GLM_COMPILER_VC2005                     0x01000070
      +00039 #define GLM_COMPILER_VC2008                     0x01000080
      +00040 #define GLM_COMPILER_VC2010                     0x01000090
      +00041 #define GLM_COMPILER_VC2011                     0x010000A0
      +00042 
      +00043 // GCC defines
      +00044 #define GLM_COMPILER_GCC            0x02000000
      +00045 #define GLM_COMPILER_GCC_LLVM       0x02000001
      +00046 #define GLM_COMPILER_GCC_CLANG      0x02000002
      +00047 #define GLM_COMPILER_GCC30                      0x02000010
      +00048 #define GLM_COMPILER_GCC31                      0x02000020
      +00049 #define GLM_COMPILER_GCC32                      0x02000030
      +00050 #define GLM_COMPILER_GCC33                      0x02000040
      +00051 #define GLM_COMPILER_GCC34                      0x02000050
      +00052 #define GLM_COMPILER_GCC35                      0x02000060
      +00053 #define GLM_COMPILER_GCC40                      0x02000070
      +00054 #define GLM_COMPILER_GCC41                      0x02000080
      +00055 #define GLM_COMPILER_GCC42                      0x02000090
      +00056 #define GLM_COMPILER_GCC43                      0x020000A0
      +00057 #define GLM_COMPILER_GCC44                      0x020000B0
      +00058 #define GLM_COMPILER_GCC45                      0x020000C0
      +00059 #define GLM_COMPILER_GCC46                      0x020000D0
      +00060 #define GLM_COMPILER_GCC47                      0x020000E0
      +00061 #define GLM_COMPILER_GCC48                      0x020000F0
      +00062 #define GLM_COMPILER_GCC49                      0x02000100
      +00063 #define GLM_COMPILER_GCC50                      0x02000200
      +00064 
      +00065 // G++ command line to display defined
      +00066 // echo "" | g++ -E -dM -x c++ - | sort
      +00067 
      +00068 // Borland C++ defines. How to identify BC?
      +00069 #define GLM_COMPILER_BC                         0x04000000
      +00070 #define GLM_COMPILER_BCB4                       0x04000100
      +00071 #define GLM_COMPILER_BCB5                       0x04000200
      +00072 #define GLM_COMPILER_BCB6                       0x04000300
      +00073 //#define GLM_COMPILER_BCBX                     0x04000400 // What's the version value?
      +00074 #define GLM_COMPILER_BCB2009            0x04000500
      +00075 
      +00076 // CodeWarrior
      +00077 #define GLM_COMPILER_CODEWARRIOR        0x08000000
      +00078 
      +00079 // CUDA
      +00080 #define GLM_COMPILER_CUDA           0x10000000
      +00081 #define GLM_COMPILER_CUDA30                     0x10000010
      +00082 #define GLM_COMPILER_CUDA31                     0x10000020
      +00083 #define GLM_COMPILER_CUDA32                     0x10000030
      +00084 #define GLM_COMPILER_CUDA40                     0x10000040
      +00085 
      +00086 // Clang
      +00087 #define GLM_COMPILER_CLANG          0x20000000
      +00088 #define GLM_COMPILER_CLANG26            0x20000010
      +00089 #define GLM_COMPILER_CLANG27            0x20000020
      +00090 #define GLM_COMPILER_CLANG28            0x20000030
      +00091 #define GLM_COMPILER_CLANG29            0x20000040
      +00092 
      +00093 // LLVM GCC
      +00094 #define GLM_COMPILER_LLVM_GCC           0x40000000
      +00095 
      +00096 // Build model
      +00097 #define GLM_MODEL_32                            0x00000010
      +00098 #define GLM_MODEL_64                            0x00000020
      +00099 
      +00100 // Force generic C++ compiler
      +00101 #ifdef GLM_FORCE_COMPILER_UNKNOWN
      +00102 #               define GLM_COMPILER GLM_COMPILER_UNKNOWN
      +00103 
      +00104 // CUDA
      +00105 #elif defined(__CUDACC__)
      +00106 #       define GLM_COMPILER GLM_COMPILER_CUDA
      +00107 
      +00108 // Visual C++
      +00109 #elif defined(_MSC_VER)
      +00110 #       if _MSC_VER == 900
      +00111 #               define GLM_COMPILER GLM_COMPILER_VC2
      +00112 #       elif _MSC_VER == 1000
      +00113 #               define GLM_COMPILER GLM_COMPILER_VC4
      +00114 #       elif _MSC_VER == 1100
      +00115 #               define GLM_COMPILER GLM_COMPILER_VC5
      +00116 #       elif _MSC_VER == 1200
      +00117 #               define GLM_COMPILER GLM_COMPILER_VC6
      +00118 #       elif _MSC_VER == 1300
      +00119 #               define GLM_COMPILER GLM_COMPILER_VC2002
      +00120 #       elif _MSC_VER == 1310
      +00121 #               define GLM_COMPILER GLM_COMPILER_VC2003
      +00122 #       elif _MSC_VER == 1400
      +00123 #               define GLM_COMPILER GLM_COMPILER_VC2005
      +00124 #       elif _MSC_VER == 1500
      +00125 #               define GLM_COMPILER GLM_COMPILER_VC2008
      +00126 #       elif _MSC_VER == 1600
      +00127 #               define GLM_COMPILER GLM_COMPILER_VC2010
      +00128 #       elif _MSC_VER == 1700
      +00129 #               define GLM_COMPILER GLM_COMPILER_VC2011
      +00130 #       else//_MSC_VER
      +00131 #               define GLM_COMPILER GLM_COMPILER_VC
      +00132 #       endif//_MSC_VER
      +00133 
      +00134 // G++
      +00135 #elif defined(__GNUC__) || defined(__llvm__) || defined(__clang__)
      +00136 #   if defined (__llvm__)
      +00137 #       define GLM_COMPILER_GCC_EXTRA GLM_COMPILER_GCC_LLVM
      +00138 #   elif defined (__clang__)
      +00139 #       define GLM_COMPILER_GCC_EXTRA GLM_COMPILER_GCC_CLANG
      +00140 #   else
      +00141 #       define GLM_COMPILER_GCC_EXTRA 0
      +00142 #   endif
      +00143 #
      +00144 #       if   (__GNUC__ == 3) && (__GNUC_MINOR__ == 2)
      +00145 #               define GLM_COMPILER GLM_COMPILER_GCC32
      +00146 #       elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 3)
      +00147 #               define GLM_COMPILER GLM_COMPILER_GCC33
      +00148 #       elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 4)
      +00149 #               define GLM_COMPILER GLM_COMPILER_GCC34
      +00150 #       elif (__GNUC__ == 3) && (__GNUC_MINOR__ == 5)
      +00151 #               define GLM_COMPILER GLM_COMPILER_GCC35
      +00152 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 0)
      +00153 #               define GLM_COMPILER (GLM_COMPILER_GCC40 | GLM_COMPILER_GCC_EXTRA)
      +00154 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 1)
      +00155 #               define GLM_COMPILER (GLM_COMPILER_GCC41 | GLM_COMPILER_GCC_EXTRA)
      +00156 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 2)
      +00157 #               define GLM_COMPILER (GLM_COMPILER_GCC42 | GLM_COMPILER_GCC_EXTRA)
      +00158 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 3)
      +00159 #               define GLM_COMPILER (GLM_COMPILER_GCC43 | GLM_COMPILER_GCC_EXTRA)
      +00160 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 4)
      +00161 #               define GLM_COMPILER (GLM_COMPILER_GCC44 | GLM_COMPILER_GCC_EXTRA)
      +00162 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 5)
      +00163 #               define GLM_COMPILER (GLM_COMPILER_GCC45 | GLM_COMPILER_GCC_EXTRA)
      +00164 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
      +00165 #               define GLM_COMPILER (GLM_COMPILER_GCC46 | GLM_COMPILER_GCC_EXTRA)
      +00166 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 7)
      +00167 #               define GLM_COMPILER (GLM_COMPILER_GCC47 | GLM_COMPILER_GCC_EXTRA)
      +00168 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
      +00169 #               define GLM_COMPILER (GLM_COMPILER_GCC48 | GLM_COMPILER_GCC_EXTRA)
      +00170 #       elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 9)
      +00171 #               define GLM_COMPILER (GLM_COMPILER_GCC49 | GLM_COMPILER_GCC_EXTRA)
      +00172 #       elif (__GNUC__ == 5) && (__GNUC_MINOR__ == 0)
      +00173 #               define GLM_COMPILER (GLM_COMPILER_GCC50 | GLM_COMPILER_GCC_EXTRA)
      +00174 #       else
      +00175 #               define GLM_COMPILER (GLM_COMPILER_GCC | GLM_COMPILER_GCC_EXTRA)
      +00176 #       endif
      +00177 
      +00178 // Borland C++
      +00179 #elif defined(_BORLANDC_)
      +00180 #       if defined(VER125)
      +00181 #               define GLM_COMPILER GLM_COMPILER_BCB4
      +00182 #       elif defined(VER130)
      +00183 #               define GLM_COMPILER GLM_COMPILER_BCB5
      +00184 #       elif defined(VER140)
      +00185 #               define GLM_COMPILER GLM_COMPILER_BCB6
      +00186 #       elif defined(VER200)
      +00187 #               define GLM_COMPILER GLM_COMPILER_BCB2009
      +00188 #       else
      +00189 #               define GLM_COMPILER GLM_COMPILER_BC
      +00190 #       endif
      +00191 
      +00192 // Codewarrior
      +00193 #elif defined(__MWERKS__)
      +00194 #       define GLM_COMPILER GLM_COMPILER_CODEWARRIOR
      +00195 
      +00196 #else
      +00197 #       define GLM_COMPILER GLM_COMPILER_UNKNOWN
      +00198 #endif
      +00199 
      +00200 #ifndef GLM_COMPILER
      +00201 #error "GLM_COMPILER undefined, your compiler may not be supported by GLM. Add #define GLM_COMPILER 0 to ignore this message."
      +00202 #endif//GLM_COMPILER
      +00203 
      +00204 // Report compiler detection
      +00205 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPILER_DISPLAYED))
      +00206 #       define GLM_MESSAGE_COMPILER_DISPLAYED
      +00207 #       if(GLM_COMPILER & GLM_COMPILER_CUDA)
      +00208 #               pragma message("GLM: CUDA compiler detected")
      +00209 #       elif(GLM_COMPILER & GLM_COMPILER_VC)
      +00210 #               pragma message("GLM: Visual C++ compiler detected")
      +00211 #       elif(GLM_COMPILER & GLM_COMPILER_CLANG)
      +00212 #               pragma message("GLM: Clang compiler detected")
      +00213 #       elif(GLM_COMPILER & GLM_COMPILER_LLVM_GCC)
      +00214 #               pragma message("GLM: LLVM GCC compiler detected")
      +00215 #       elif(GLM_COMPILER & GLM_COMPILER_GCC)
      +00216 #       if(GLM_COMPILER == GLM_COMPILER_GCC_LLVM)
      +00217 #           pragma message("GLM: LLVM GCC compiler detected")
      +00218 #       elif(GLM_COMPILER == GLM_COMPILER_GCC_CLANG)
      +00219 #           pragma message("GLM: CLANG compiler detected")
      +00220 #       else
      +00221 #           pragma message("GLM: GCC compiler detected")
      +00222 #       endif
      +00223 #       elif(GLM_COMPILER & GLM_COMPILER_BC)
      +00224 #               pragma message("GLM: Borland compiler detected but not supported")
      +00225 #       elif(GLM_COMPILER & GLM_COMPILER_CODEWARRIOR)
      +00226 #               pragma message("GLM: Codewarrior compiler detected but not supported")
      +00227 #       else
      +00228 #               pragma message("GLM: Compiler not detected")
      +00229 #       endif
      +00230 #endif//GLM_MESSAGE
      +00231 
      +00233 // Build model //
      +00234 
      +00235 #if(GLM_COMPILER & GLM_COMPILER_VC)
      +00236 #       if defined(_M_X64)
      +00237 #               define GLM_MODEL        GLM_MODEL_64
      +00238 #       else
      +00239 #               define GLM_MODEL        GLM_MODEL_32
      +00240 #       endif//_M_X64
      +00241 #elif(GLM_COMPILER & GLM_COMPILER_GCC)
      +00242 #       if(defined(__WORDSIZE) && (__WORDSIZE == 64)) || defined(__arch64__) || defined(__LP64__) || defined(__x86_64__)
      +00243 #               define GLM_MODEL        GLM_MODEL_64
      +00244 #       else
      +00245 #               define GLM_MODEL        GLM_MODEL_32
      +00246 #       endif//
      +00247 #else
      +00248 #       define GLM_MODEL        GLM_MODEL_32
      +00249 #endif//
      +00250 
      +00251 #if(!defined(GLM_MODEL) && GLM_COMPILER != 0)
      +00252 #error "GLM_MODEL undefined, your compiler may not be supported by GLM. Add #define GLM_MODEL 0 to ignore this message."
      +00253 #endif//GLM_MODEL
      +00254 
      +00255 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_MODEL_DISPLAYED))
      +00256 #       define GLM_MESSAGE_MODEL_DISPLAYED
      +00257 #       if(GLM_MODEL == GLM_MODEL_64)
      +00258 #               pragma message("GLM: 64 bits model")
      +00259 #       elif(GLM_MODEL == GLM_MODEL_32)
      +00260 #               pragma message("GLM: 32 bits model")
      +00261 #       endif//GLM_MODEL
      +00262 #endif//GLM_MESSAGE
      +00263 
      +00265 // C++ Version //
      +00266 
      +00267 // User defines: GLM_FORCE_CXX98
      +00268 
      +00269 #define GLM_LANG_CXX                    0
      +00270 #define GLM_LANG_CXX98                  1
      +00271 #define GLM_LANG_CXX0X                  2
      +00272 #define GLM_LANG_CXXMS                  3
      +00273 #define GLM_LANG_CXXGNU                 4
      +00274 
      +00275 #if(defined(GLM_FORCE_CXX98))
      +00276 #       define GLM_LANG GLM_LANG_CXX98
      +00277 #elif(((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC) && defined(__GXX_EXPERIMENTAL_CXX0X__)) // -std=c++0x or -std=gnu++0x
      +00278 #       define GLM_LANG GLM_LANG_CXX0X
      +00279 #elif(GLM_COMPILER == GLM_COMPILER_VC2010) //_MSC_EXTENSIONS for MS language extensions
      +00280 #       define GLM_LANG GLM_LANG_CXX0X
      +00281 #elif(((GLM_COMPILER & GLM_COMPILER_GCC) == GLM_COMPILER_GCC) && defined(__STRICT_ANSI__))
      +00282 #       define GLM_LANG GLM_LANG_CXX98
      +00283 #elif(((GLM_COMPILER & GLM_COMPILER_VC) == GLM_COMPILER_VC) && !defined(_MSC_EXTENSIONS))
      +00284 #       define GLM_LANG GLM_LANG_CXX98
      +00285 #else
      +00286 #       define GLM_LANG GLM_LANG_CXX
      +00287 #endif
      +00288 
      +00289 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_LANG_DISPLAYED))
      +00290 #       define GLM_MESSAGE_LANG_DISPLAYED
      +00291 #       if(GLM_LANG == GLM_LANG_CXX98)
      +00292 #               pragma message("GLM: C++98")
      +00293 #       elif(GLM_LANG == GLM_LANG_CXX0X)
      +00294 #               pragma message("GLM: C++0x")
      +00295 #       endif//GLM_MODEL
      +00296 #endif//GLM_MESSAGE
      +00297 
      +00299 // Platform 
      +00300 
      +00301 // User defines: GLM_FORCE_PURE GLM_FORCE_SSE2 GLM_FORCE_AVX
      +00302 
      +00303 #define GLM_ARCH_PURE           0x0000 //(0x0000)
      +00304 #define GLM_ARCH_SSE2           0x0001 //(0x0001)
      +00305 #define GLM_ARCH_SSE3           0x0003 //(0x0002 | GLM_ARCH_SSE2)
      +00306 #define GLM_ARCH_AVX            0x0007 //(0x0004 | GLM_ARCH_SSE3 | GLM_ARCH_SSE2)
      +00307 
      +00308 #if(defined(GLM_FORCE_PURE))
      +00309 #       define GLM_ARCH GLM_ARCH_PURE
      +00310 #elif(defined(GLM_FORCE_AVX))
      +00311 #       define GLM_ARCH GLM_ARCH_AVX
      +00312 #elif(defined(GLM_FORCE_SSE3))
      +00313 #       define GLM_ARCH GLM_ARCH_SSE3
      +00314 #elif(defined(GLM_FORCE_SSE2))
      +00315 #       define GLM_ARCH GLM_ARCH_SSE2
      +00316 #elif((GLM_COMPILER & GLM_COMPILER_VC) && (defined(_M_IX86) || defined(_M_X64)))
      +00317 #       if(defined(_M_CEE_PURE))
      +00318 #               define GLM_ARCH GLM_ARCH_PURE
      +00319 #       elif(GLM_COMPILER >= GLM_COMPILER_VC2010)
      +00320 #               if(_MSC_FULL_VER >= 160031118) //160031118: VC2010 SP1 beta full version
      +00321 #                       define GLM_ARCH GLM_ARCH_AVX //GLM_ARCH_AVX (Require SP1)
      +00322 #               else
      +00323 #                       define GLM_ARCH GLM_ARCH_SSE3
      +00324 #               endif
      +00325 #       elif(GLM_COMPILER >= GLM_COMPILER_VC2008) 
      +00326 #               define GLM_ARCH GLM_ARCH_SSE3
      +00327 #       elif(GLM_COMPILER >= GLM_COMPILER_VC2005)
      +00328 #               define GLM_ARCH GLM_ARCH_SSE2
      +00329 #       else
      +00330 #               define GLM_ARCH GLM_ARCH_PURE
      +00331 #       endif
      +00332 #elif(GLM_COMPILER & GLM_COMPILER_LLVM_GCC)
      +00333 #       if(defined(__AVX__))
      +00334 #               define GLM_ARCH GLM_ARCH_AVX
      +00335 #       elif(defined(__SSE3__))
      +00336 #               define GLM_ARCH GLM_ARCH_SSE3
      +00337 #       elif(defined(__SSE2__))
      +00338 #               define GLM_ARCH GLM_ARCH_SSE2
      +00339 #       else
      +00340 #               define GLM_ARCH GLM_ARCH_PURE
      +00341 #       endif
      +00342 #elif((GLM_COMPILER & GLM_COMPILER_GCC) && (defined(__i386__) || defined(__x86_64__)))
      +00343 #       if(defined(__AVX__))
      +00344 #               define GLM_ARCH GLM_ARCH_AVX
      +00345 #       elif(defined(__SSE3__))
      +00346 #               define GLM_ARCH GLM_ARCH_SSE3
      +00347 #       elif(defined(__SSE2__))
      +00348 #               define GLM_ARCH GLM_ARCH_SSE2
      +00349 #       else
      +00350 #               define GLM_ARCH GLM_ARCH_PURE
      +00351 #       endif
      +00352 #else
      +00353 #       define GLM_ARCH GLM_ARCH_PURE
      +00354 #endif
      +00355 
      +00356 #if(GLM_ARCH != GLM_ARCH_PURE)
      +00357 #if((GLM_ARCH & GLM_ARCH_AVX) == GLM_ARCH_AVX)
      +00358 #       include <immintrin.h>
      +00359 #endif//GLM_ARCH
      +00360 #if((GLM_ARCH & GLM_ARCH_SSE3) == GLM_ARCH_SSE3)
      +00361 #       include <pmmintrin.h>
      +00362 #endif//GLM_ARCH
      +00363 #if((GLM_ARCH & GLM_ARCH_SSE2) == GLM_ARCH_SSE2)
      +00364 #       include <emmintrin.h>
      +00365 #endif//GLM_ARCH
      +00366 #endif//(GLM_ARCH != GLM_ARCH_PURE)
      +00367 
      +00368 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_ARCH_DISPLAYED))
      +00369 #       define GLM_MESSAGE_ARCH_DISPLAYED
      +00370 #       if(GLM_ARCH == GLM_ARCH_PURE)
      +00371 #               pragma message("GLM: Platform independent")
      +00372 #       elif(GLM_ARCH == GLM_ARCH_SSE2)
      +00373 #               pragma message("GLM: SSE2 build platform")
      +00374 #       elif(GLM_ARCH == GLM_ARCH_SSE3)
      +00375 #               pragma message("GLM: SSE3 build platform")
      +00376 #       elif(GLM_ARCH == GLM_ARCH_AVX)
      +00377 #               pragma message("GLM: AVX build platform")
      +00378 #       endif//GLM_ARCH
      +00379 #endif//GLM_MESSAGE
      +00380 
      +00382 // Components
      +00383 
      +00384 //#define GLM_FORCE_ONLY_XYZW
      +00385 #define GLM_COMPONENT_GLSL_NAMES                        0 
      +00386 #define GLM_COMPONENT_ONLY_XYZW                         1 // To disable multiple vector component names access.
      +00387 #define GLM_COMPONENT_MS_EXT                            2 // To use anonymous union to provide multiple component names access for class valType. Visual C++ only.
      +00388 
      +00389 #ifndef GLM_FORCE_ONLY_XYZW
      +00390 #       if((GLM_COMPILER & GLM_COMPILER_VC) && defined(_MSC_EXTENSIONS))
      +00391 #               define GLM_COMPONENT GLM_COMPONENT_MS_EXT
      +00392 #       else
      +00393 #               define GLM_COMPONENT GLM_COMPONENT_GLSL_NAMES
      +00394 #       endif
      +00395 #else
      +00396 #       define GLM_COMPONENT GLM_COMPONENT_ONLY_XYZW
      +00397 #endif
      +00398 
      +00399 #if((GLM_COMPONENT == GLM_COMPONENT_MS_EXT) && !(GLM_COMPILER & GLM_COMPILER_VC))
      +00400 #       error "GLM_COMPONENT value is GLM_COMPONENT_MS_EXT but this is not allowed with the current compiler."
      +00401 #endif
      +00402 
      +00403 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_COMPONENT_DISPLAYED))
      +00404 #       define GLM_MESSAGE_COMPONENT_DISPLAYED
      +00405 #       if(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
      +00406 #               pragma message("GLM: GLSL multiple vector component names")
      +00407 #       elif(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
      +00408 #               pragma message("GLM: x,y,z,w vector component names only")
      +00409 #       elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)
      +00410 #               pragma message("GLM: Multiple vector component names through Visual C++ language extensions")
      +00411 #       else
      +00412 #               error "GLM_COMPONENT value unknown"
      +00413 #       endif//GLM_MESSAGE_COMPONENT_DISPLAYED
      +00414 #endif//GLM_MESSAGE
      +00415 
      +00417 // Static assert
      +00418 
      +00419 #if(GLM_LANG == GLM_LANG_CXX0X)
      +00420 #       define GLM_STATIC_ASSERT(x, message) static_assert(x, message)
      +00421 #elif(defined(BOOST_STATIC_ASSERT))
      +00422 #       define GLM_STATIC_ASSERT(x, message) BOOST_STATIC_ASSERT(x)
      +00423 #elif(GLM_COMPILER & GLM_COMPILER_VC)
      +00424 #       define GLM_STATIC_ASSERT(x, message) typedef char __CASSERT__##__LINE__[(x) ? 1 : -1]
      +00425 #else
      +00426 #       define GLM_STATIC_ASSERT(x, message)
      +00427 #       define GLM_STATIC_ASSERT_NULL
      +00428 #endif//GLM_LANG
      +00429 
      +00431 // Qualifiers 
      +00432 
      +00433 // User defines: GLM_FORCE_INLINE GLM_FORCE_CUDA
      +00434 
      +00435 #if(defined(GLM_FORCE_CUDA) || (GLM_COMPILER & GLM_COMPILER_CUDA))
      +00436 #   define GLM_CUDA_FUNC_DEF __device__ __host__ 
      +00437 #       define GLM_CUDA_FUNC_DECL __device__ __host__ 
      +00438 #else
      +00439 #   define GLM_CUDA_FUNC_DEF
      +00440 #       define GLM_CUDA_FUNC_DECL
      +00441 #endif
      +00442 
      +00443 #if GLM_COMPILER & GLM_COMPILER_GCC
      +00444 #define GLM_VAR_USED __attribute__ ((unused))
      +00445 #else
      +00446 #define GLM_VAR_USED
      +00447 #endif
      +00448 
      +00449 #if(defined(GLM_FORCE_INLINE))
      +00450 #   if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2005))
      +00451 #       define GLM_INLINE __forceinline
      +00452 #   elif((GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC34))
      +00453 #       define GLM_INLINE __attribute__((always_inline))
      +00454 #   else
      +00455 #       define GLM_INLINE inline
      +00456 #   endif//GLM_COMPILER
      +00457 #else
      +00458 #   define GLM_INLINE inline
      +00459 #endif//defined(GLM_FORCE_INLINE)
      +00460 
      +00461 #define GLM_FUNC_DECL GLM_CUDA_FUNC_DECL
      +00462 #define GLM_FUNC_QUALIFIER GLM_CUDA_FUNC_DEF GLM_INLINE
      +00463 
      +00465 // Swizzle operators
      +00466 
      +00467 // User defines: GLM_SWIZZLE_XYZW GLM_SWIZZLE_RGBA GLM_SWIZZLE_STQP GLM_SWIZZLE
      +00468 
      +00469 #if(defined(GLM_MESSAGES) && !defined(GLM_MESSAGE_SWIZZLE_DISPLAYED))
      +00470 #       define GLM_MESSAGE_SWIZZLE_DISPLAYED
      +00471 #       if(defined(GLM_SWIZZLE))
      +00472 #               pragma message("GLM: Full swizzling operator enabled")
      +00473 #       elif(!defined(GLM_SWIZZLE_XYZW) && !defined(GLM_SWIZZLE_RGBA) && !defined(GLM_SWIZZLE_STQP) && !defined(GLM_SWIZZLE))
      +00474 #               pragma message("GLM: No swizzling operator enabled")
      +00475 #       else
      +00476 #               pragma message("GLM: Partial swizzling operator enabled")
      +00477 #       endif
      +00478 #endif//GLM_MESSAGE
      +00479 
      +00480 #endif//glm_setup
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00101_source.html b/doc/api-0.9.2/a00101_source.html new file mode 100644 index 00000000..f79aa581 --- /dev/null +++ b/doc/api-0.9.2/a00101_source.html @@ -0,0 +1,205 @@ + + + + +simd_mat4.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      simd_mat4.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-05-07
      +00005 // Updated : 2009-05-07
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/simd_vec4.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - intrinsic
      +00013 
      +00014 #ifndef glm_gtx_simd_mat4
      +00015 #define glm_gtx_simd_mat4
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 
      +00020 #if(GLM_ARCH & GLM_ARCH_SSE2)
      +00021 #       include "../core/intrinsic_matrix.hpp"
      +00022 #       include "../gtx/simd_vec4.hpp"
      +00023 #else
      +00024 #       error "GLM: GLM_GTX_simd_mat4 requires compiler support of SSE2 through intrinsics"
      +00025 #endif
      +00026 
      +00027 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00028 #       pragma message("GLM: GLM_GTX_simd_mat4 extension included")
      +00029 #endif
      +00030 
      +00031 namespace glm{
      +00032 namespace detail
      +00033 {
      +00036         GLM_ALIGNED_STRUCT(16) fmat4x4SIMD
      +00037         {
      +00038                 enum ctor{null};
      +00039 
      +00040                 typedef float value_type;
      +00041                 typedef fvec4SIMD col_type;
      +00042                 typedef fvec4SIMD row_type;
      +00043                 typedef std::size_t size_type;
      +00044                 static size_type value_size();
      +00045                 static size_type col_size();
      +00046                 static size_type row_size();
      +00047                 static bool is_matrix();
      +00048 
      +00049                 fvec4SIMD Data[4];
      +00050 
      +00052                 // Constructors
      +00053 
      +00054                 fmat4x4SIMD();
      +00055                 explicit fmat4x4SIMD(float const & s);
      +00056                 explicit fmat4x4SIMD(
      +00057                         float const & x0, float const & y0, float const & z0, float const & w0,
      +00058                         float const & x1, float const & y1, float const & z1, float const & w1,
      +00059                         float const & x2, float const & y2, float const & z2, float const & w2,
      +00060                         float const & x3, float const & y3, float const & z3, float const & w3);
      +00061                 explicit fmat4x4SIMD(
      +00062                         fvec4SIMD const & v0,
      +00063                         fvec4SIMD const & v1,
      +00064                         fvec4SIMD const & v2,
      +00065                         fvec4SIMD const & v3);
      +00066                 explicit fmat4x4SIMD(
      +00067                         tmat4x4<float> const & m);
      +00068 
      +00069                 // Conversions
      +00070                 //template <typename U> 
      +00071                 //explicit tmat4x4(tmat4x4<U> const & m);
      +00072 
      +00073                 //explicit tmat4x4(tmat2x2<T> const & x);
      +00074                 //explicit tmat4x4(tmat3x3<T> const & x);
      +00075                 //explicit tmat4x4(tmat2x3<T> const & x);
      +00076                 //explicit tmat4x4(tmat3x2<T> const & x);
      +00077                 //explicit tmat4x4(tmat2x4<T> const & x);
      +00078                 //explicit tmat4x4(tmat4x2<T> const & x);
      +00079                 //explicit tmat4x4(tmat3x4<T> const & x);
      +00080                 //explicit tmat4x4(tmat4x3<T> const & x);
      +00081 
      +00082                 // Accesses
      +00083                 fvec4SIMD & operator[](size_type i);
      +00084                 fvec4SIMD const & operator[](size_type i) const;
      +00085 
      +00086                 // Unary updatable operators
      +00087                 fmat4x4SIMD & operator= (fmat4x4SIMD const & m);
      +00088                 fmat4x4SIMD & operator+= (float const & s);
      +00089                 fmat4x4SIMD & operator+= (fmat4x4SIMD const & m);
      +00090                 fmat4x4SIMD & operator-= (float const & s);
      +00091                 fmat4x4SIMD & operator-= (fmat4x4SIMD const & m);
      +00092                 fmat4x4SIMD & operator*= (float const & s);
      +00093                 fmat4x4SIMD & operator*= (fmat4x4SIMD const & m);
      +00094                 fmat4x4SIMD & operator/= (float const & s);
      +00095                 fmat4x4SIMD & operator/= (fmat4x4SIMD const & m);
      +00096                 fmat4x4SIMD & operator++ ();
      +00097                 fmat4x4SIMD & operator-- ();
      +00098         };
      +00099 
      +00100         // Binary operators
      +00101         fmat4x4SIMD operator+ (fmat4x4SIMD const & m, float const & s);
      +00102         fmat4x4SIMD operator+ (float const & s, fmat4x4SIMD const & m);
      +00103         fmat4x4SIMD operator+ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
      +00104             
      +00105         fmat4x4SIMD operator- (fmat4x4SIMD const & m, float const & s);
      +00106         fmat4x4SIMD operator- (float const & s, fmat4x4SIMD const & m);
      +00107         fmat4x4SIMD operator- (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
      +00108 
      +00109         fmat4x4SIMD operator* (fmat4x4SIMD const & m, float const & s);
      +00110         fmat4x4SIMD operator* (float const & s, fmat4x4SIMD const & m);
      +00111 
      +00112         fvec4SIMD operator* (fmat4x4SIMD const & m, fvec4SIMD const & v);
      +00113         fvec4SIMD operator* (fvec4SIMD const & v, fmat4x4SIMD const & m);
      +00114 
      +00115         fmat4x4SIMD operator* (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
      +00116 
      +00117         fmat4x4SIMD operator/ (fmat4x4SIMD const & m, float const & s);
      +00118         fmat4x4SIMD operator/ (float const & s, fmat4x4SIMD const & m);
      +00119 
      +00120         fvec4SIMD operator/ (fmat4x4SIMD const & m, fvec4SIMD const & v);
      +00121         fvec4SIMD operator/ (fvec4SIMD const & v, fmat4x4SIMD const & m);
      +00122 
      +00123         fmat4x4SIMD operator/ (fmat4x4SIMD const & m1, fmat4x4SIMD const & m2);
      +00124 
      +00125         // Unary constant operators
      +00126         fmat4x4SIMD const operator-  (fmat4x4SIMD const & m);
      +00127         fmat4x4SIMD const operator-- (fmat4x4SIMD const & m, int);
      +00128         fmat4x4SIMD const operator++ (fmat4x4SIMD const & m, int);
      +00129 }//namespace detail
      +00130 
      +00131 namespace gtx{
      +00132 namespace simd_mat4 
      +00133 {
      +00134         typedef detail::fmat4x4SIMD simdMat4;
      +00135 
      +00138 
      +00141         detail::tmat4x4<float> mat4_cast(
      +00142                 detail::fmat4x4SIMD const & x);
      +00143 
      +00147         detail::fmat4x4SIMD matrixCompMult(
      +00148                 detail::fmat4x4SIMD const & x,
      +00149                 detail::fmat4x4SIMD const & y);
      +00150 
      +00155         detail::fmat4x4SIMD outerProduct(
      +00156                 detail::fvec4SIMD const & c,
      +00157                 detail::fvec4SIMD const & r);
      +00158 
      +00161         detail::fmat4x4SIMD transpose(
      +00162                 detail::fmat4x4SIMD const & x);
      +00163 
      +00166         float determinant(
      +00167                 detail::fmat4x4SIMD const & m);
      +00168 
      +00171         detail::fmat4x4SIMD inverse(
      +00172                 detail::fmat4x4SIMD const & m);
      +00173 
      +00175 }// namespace simd_mat4
      +00176 }// namespace gtx
      +00177 }// namespace glm
      +00178 
      +00179 #include "simd_mat4.inl"
      +00180 
      +00181 namespace glm{using namespace gtx::simd_mat4;}
      +00182 
      +00183 #endif//glm_gtx_simd_mat4
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00102_source.html b/doc/api-0.9.2/a00102_source.html new file mode 100644 index 00000000..c6a29600 --- /dev/null +++ b/doc/api-0.9.2/a00102_source.html @@ -0,0 +1,334 @@ + + + + +simd_vec4.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      simd_vec4.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-05-07
      +00005 // Updated : 2009-05-07
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/simd_vec4.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - intrinsic
      +00013 
      +00014 #ifndef glm_gtx_simd_vec4
      +00015 #define glm_gtx_simd_vec4
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 
      +00020 #if(GLM_ARCH & GLM_ARCH_SSE2)
      +00021 #       include "../core/intrinsic_common.hpp"
      +00022 #       include "../core/intrinsic_geometric.hpp"
      +00023 #else
      +00024 #       error "GLM: GLM_GTX_simd_vec4 requires compiler support of SSE2 through intrinsics"
      +00025 #endif
      +00026 
      +00027 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00028 #       pragma message("GLM: GLM_GTX_simd_vec4 extension included")
      +00029 #endif
      +00030 
      +00031 namespace glm{
      +00032 namespace detail
      +00033 {
      +00036         GLM_ALIGNED_STRUCT(16) fvec4SIMD
      +00037         {
      +00038                 enum ctor{null};
      +00039                 typedef __m128 value_type;
      +00040                 typedef std::size_t size_type;
      +00041                 static size_type value_size();
      +00042 
      +00043                 typedef fvec4SIMD type;
      +00044                 typedef tvec4<bool> bool_type;
      +00045 
      +00046                 __m128 Data;
      +00047 
      +00049                 // Implicit basic constructors
      +00050 
      +00051                 fvec4SIMD();
      +00052                 fvec4SIMD(__m128 const & Data);
      +00053                 fvec4SIMD(fvec4SIMD const & v);
      +00054 
      +00056                 // Explicit basic constructors
      +00057 
      +00058                 explicit fvec4SIMD(
      +00059                         ctor);
      +00060                 explicit fvec4SIMD(
      +00061                         float const & s);
      +00062                 explicit fvec4SIMD(
      +00063                         float const & x, 
      +00064                         float const & y, 
      +00065                         float const & z, 
      +00066                         float const & w);
      +00067                 explicit fvec4SIMD(
      +00068                         tvec4<float> const & v);
      +00069 
      +00072 
      +00073                 fvec4SIMD(vec2 const & v, float const & s1, float const & s2);
      +00074                 fvec4SIMD(float const & s1, vec2 const & v, float const & s2);
      +00075                 fvec4SIMD(float const & s1, float const & s2, vec2 const & v);
      +00076                 fvec4SIMD(vec3 const & v, float const & s);
      +00077                 fvec4SIMD(float const & s, vec3 const & v);
      +00078                 fvec4SIMD(vec2 const & v1, vec2 const & v2);
      +00079                 //fvec4SIMD(ivec4SIMD const & v);
      +00080 
      +00082                 // Unary arithmetic operators
      +00083 
      +00084                 fvec4SIMD& operator= (fvec4SIMD const & v);
      +00085                 fvec4SIMD& operator+=(fvec4SIMD const & v);
      +00086                 fvec4SIMD& operator-=(fvec4SIMD const & v);
      +00087                 fvec4SIMD& operator*=(fvec4SIMD const & v);
      +00088                 fvec4SIMD& operator/=(fvec4SIMD const & v);
      +00089 
      +00090                 fvec4SIMD& operator+=(float const & s);
      +00091                 fvec4SIMD& operator-=(float const & s);
      +00092                 fvec4SIMD& operator*=(float const & s);
      +00093                 fvec4SIMD& operator/=(float const & s);
      +00094 
      +00095                 fvec4SIMD& operator++();
      +00096                 fvec4SIMD& operator--();
      +00097 
      +00099                 // Swizzle operators
      +00100 
      +00101                 template <comp X, comp Y, comp Z, comp W>
      +00102                 fvec4SIMD& swizzle();
      +00103                 template <comp X, comp Y, comp Z, comp W>
      +00104                 fvec4SIMD swizzle() const;
      +00105                 template <comp X, comp Y, comp Z>
      +00106                 fvec4SIMD swizzle() const;
      +00107                 template <comp X, comp Y>
      +00108                 fvec4SIMD swizzle() const;
      +00109                 template <comp X>
      +00110                 fvec4SIMD swizzle() const;
      +00111         };
      +00112 }//namespace detail
      +00113 
      +00114 namespace gtx{
      +00115 namespace simd_vec4 
      +00116 {
      +00117         typedef glm::detail::fvec4SIMD simdVec4;
      +00118 
      +00121 
      +00124         detail::tvec4<float> vec4_cast(
      +00125                 detail::fvec4SIMD const & x);
      +00126 
      +00129         detail::fvec4SIMD abs(detail::fvec4SIMD const & x);
      +00130 
      +00133         detail::fvec4SIMD sign(detail::fvec4SIMD const & x);
      +00134 
      +00137         detail::fvec4SIMD floor(detail::fvec4SIMD const & x);
      +00138 
      +00142         detail::fvec4SIMD trunc(detail::fvec4SIMD const & x);
      +00143 
      +00150         detail::fvec4SIMD round(detail::fvec4SIMD const & x);
      +00151 
      +00156         //detail::fvec4SIMD roundEven(detail::fvec4SIMD const & x);
      +00157 
      +00161         detail::fvec4SIMD ceil(detail::fvec4SIMD const & x);
      +00162 
      +00165         detail::fvec4SIMD fract(detail::fvec4SIMD const & x);
      +00166 
      +00170         detail::fvec4SIMD mod(
      +00171                 detail::fvec4SIMD const & x, 
      +00172                 detail::fvec4SIMD const & y);
      +00173 
      +00177         detail::fvec4SIMD mod(
      +00178                 detail::fvec4SIMD const & x, 
      +00179                 float const & y);
      +00180 
      +00186         //detail::fvec4SIMD modf(
      +00187         //      detail::fvec4SIMD const & x, 
      +00188         //      detail::fvec4SIMD & i);
      +00189 
      +00192         detail::fvec4SIMD min(
      +00193                 detail::fvec4SIMD const & x, 
      +00194                 detail::fvec4SIMD const & y);
      +00195 
      +00196         detail::fvec4SIMD min(
      +00197                 detail::fvec4SIMD const & x, 
      +00198                 float const & y);
      +00199 
      +00202         detail::fvec4SIMD max(
      +00203                 detail::fvec4SIMD const & x, 
      +00204                 detail::fvec4SIMD const & y);
      +00205 
      +00206         detail::fvec4SIMD max(
      +00207                 detail::fvec4SIMD const & x, 
      +00208                 float const & y);
      +00209 
      +00213         detail::fvec4SIMD clamp(
      +00214                 detail::fvec4SIMD const & x, 
      +00215                 detail::fvec4SIMD const & minVal, 
      +00216                 detail::fvec4SIMD const & maxVal); 
      +00217 
      +00218         detail::fvec4SIMD clamp(
      +00219                 detail::fvec4SIMD const & x, 
      +00220                 float const & minVal, 
      +00221                 float const & maxVal); 
      +00222 
      +00246         // \todo Test when 'a' is a boolean.
      +00248         detail::fvec4SIMD mix(
      +00249                 detail::fvec4SIMD const & x, 
      +00250                 detail::fvec4SIMD const & y, 
      +00251                 detail::fvec4SIMD const & a);
      +00252 
      +00255         detail::fvec4SIMD step(
      +00256                 detail::fvec4SIMD const & edge, 
      +00257                 detail::fvec4SIMD const & x);
      +00258 
      +00259         detail::fvec4SIMD step(
      +00260                 float const & edge, 
      +00261                 detail::fvec4SIMD const & x);
      +00262 
      +00273         detail::fvec4SIMD smoothstep(
      +00274                 detail::fvec4SIMD const & edge0, 
      +00275                 detail::fvec4SIMD const & edge1, 
      +00276                 detail::fvec4SIMD const & x);
      +00277 
      +00278         detail::fvec4SIMD smoothstep(
      +00279                 float const & edge0, 
      +00280                 float const & edge1, 
      +00281                 detail::fvec4SIMD const & x);
      +00282 
      +00289         //bvec4 isnan(detail::fvec4SIMD const & x);
      +00290 
      +00297         //bvec4 isinf(detail::fvec4SIMD const & x);
      +00298 
      +00303         //detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const & value);
      +00304 
      +00311         //detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const & value);
      +00312 
      +00315         detail::fvec4SIMD fma(
      +00316                 detail::fvec4SIMD const & a, 
      +00317                 detail::fvec4SIMD const & b, 
      +00318                 detail::fvec4SIMD const & c);
      +00319 
      +00329         //detail::fvec4SIMD frexp(detail::fvec4SIMD const & x, detail::ivec4SIMD & exp);
      +00330 
      +00337         //detail::fvec4SIMD ldexp(detail::fvec4SIMD const & x, detail::ivec4SIMD const & exp);
      +00338 
      +00341         float length(
      +00342                 detail::fvec4SIMD const & x);
      +00343 
      +00347         float fastLength(
      +00348                 detail::fvec4SIMD const & x);
      +00349 
      +00353         float niceLength(
      +00354                 detail::fvec4SIMD const & x);
      +00355 
      +00358         detail::fvec4SIMD length4(
      +00359                 detail::fvec4SIMD const & x);
      +00360 
      +00364         detail::fvec4SIMD fastLength4(
      +00365                 detail::fvec4SIMD const & x);
      +00366 
      +00370         detail::fvec4SIMD niceLength4(
      +00371                 detail::fvec4SIMD const & x);
      +00372 
      +00375         float distance(
      +00376                 detail::fvec4SIMD const & p0,
      +00377                 detail::fvec4SIMD const & p1);
      +00378 
      +00381         detail::fvec4SIMD distance4(
      +00382                 detail::fvec4SIMD const & p0,
      +00383                 detail::fvec4SIMD const & p1);
      +00384 
      +00387         float simdDot(
      +00388                 detail::fvec4SIMD const & x,
      +00389                 detail::fvec4SIMD const & y);
      +00390 
      +00393         detail::fvec4SIMD dot4(
      +00394                 detail::fvec4SIMD const & x,
      +00395                 detail::fvec4SIMD const & y);
      +00396 
      +00399         detail::fvec4SIMD cross(
      +00400                 detail::fvec4SIMD const & x,
      +00401                 detail::fvec4SIMD const & y);
      +00402 
      +00405         detail::fvec4SIMD normalize(
      +00406                 detail::fvec4SIMD const & x);
      +00407 
      +00411         detail::fvec4SIMD fastNormalize(
      +00412                 detail::fvec4SIMD const & x);
      +00413 
      +00416         detail::fvec4SIMD simdFaceforward(
      +00417                 detail::fvec4SIMD const & N,
      +00418                 detail::fvec4SIMD const & I,
      +00419                 detail::fvec4SIMD const & Nref);
      +00420 
      +00424         detail::fvec4SIMD reflect(
      +00425                 detail::fvec4SIMD const & I,
      +00426                 detail::fvec4SIMD const & N);
      +00427 
      +00432         detail::fvec4SIMD refract(
      +00433                 detail::fvec4SIMD const & I,
      +00434                 detail::fvec4SIMD const & N,
      +00435                 float const & eta);
      +00436 
      +00439         detail::fvec4SIMD sqrt(
      +00440                 detail::fvec4SIMD const & x);
      +00441 
      +00445         detail::fvec4SIMD niceSqrt(
      +00446                 detail::fvec4SIMD const & x);
      +00447 
      +00451         detail::fvec4SIMD fastSqrt(
      +00452                 detail::fvec4SIMD const & x);
      +00453 
      +00456         detail::fvec4SIMD inversesqrt(
      +00457                 detail::fvec4SIMD const & x);
      +00458 
      +00462         detail::fvec4SIMD fastInversesqrt(
      +00463                 detail::fvec4SIMD const & x);
      +00464 
      +00466 }//namespace simd_vec4
      +00467 }//namespace gtx
      +00468 }//namespace glm
      +00469 
      +00470 #include "simd_vec4.inl"
      +00471 
      +00472 namespace glm{using namespace gtx::simd_vec4;}
      +00473 
      +00474 #endif//glm_gtx_simd_vec4
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00103_source.html b/doc/api-0.9.2/a00103_source.html new file mode 100644 index 00000000..a00bd1bf --- /dev/null +++ b/doc/api-0.9.2/a00103_source.html @@ -0,0 +1,104 @@ + + + + +simplex.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      simplex.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2011-04-09
      +00005 // Updated : 2011-04-09
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/simplex.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_simplex
      +00014 #define glm_gtx_simplex
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_simplex extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace spline 
      +00026 {
      +00029             
      +00032     template <typename genType> 
      +00033     genType catmullRom(
      +00034                         genType const & v1, 
      +00035                         genType const & v2, 
      +00036                         genType const & v3, 
      +00037                         genType const & v4, 
      +00038                         typename genType::value_type const & s);
      +00039             
      +00042     template <typename genType> 
      +00043     genType hermite(
      +00044                     genType const & v1, 
      +00045                     genType const & t1, 
      +00046                     genType const & v2, 
      +00047                     genType const & t2, 
      +00048                     typename genType::value_type const & s);
      +00049             
      +00052     template <typename genType> 
      +00053     genType cubic(
      +00054                     genType const & v1, 
      +00055                     genType const & v2, 
      +00056                     genType const & v3, 
      +00057                     genType const & v4, 
      +00058                     typename genType::value_type const & s);
      +00059             
      +00061 }// namespace simplex
      +00062 }// namespace gtx
      +00063 }// namespace glm
      +00064 
      +00065 #include "simplex.inl"
      +00066 
      +00067 namespace glm{using namespace gtx::simplex;}
      +00068 
      +00069 #endif//glm_gtx_spline
      +00070 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00104_source.html b/doc/api-0.9.2/a00104_source.html new file mode 100644 index 00000000..48e65312 --- /dev/null +++ b/doc/api-0.9.2/a00104_source.html @@ -0,0 +1,107 @@ + + + + +spline.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      spline.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-01-25
      +00005 // Updated : 2009-02-19
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/spline.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_spline
      +00014 #define glm_gtx_spline
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 #include "../gtx/optimum_pow.hpp"
      +00019 
      +00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00021 #       pragma message("GLM: GLM_GTX_spline extension included")
      +00022 #endif
      +00023 
      +00024 namespace glm{
      +00025 namespace gtx{
      +00026 namespace spline 
      +00027 {
      +00028         using namespace gtx::optimum_pow;
      +00029 
      +00032 
      +00035         template <typename genType> 
      +00036         genType catmullRom(
      +00037                 genType const & v1, 
      +00038                 genType const & v2, 
      +00039                 genType const & v3, 
      +00040                 genType const & v4, 
      +00041                 typename genType::value_type const & s);
      +00042                 
      +00045     template <typename genType> 
      +00046         genType hermite(
      +00047                 genType const & v1, 
      +00048                 genType const & t1, 
      +00049                 genType const & v2, 
      +00050                 genType const & t2, 
      +00051                 typename genType::value_type const & s);
      +00052                 
      +00055         template <typename genType> 
      +00056         genType cubic(
      +00057                 genType const & v1, 
      +00058                 genType const & v2, 
      +00059                 genType const & v3, 
      +00060                 genType const & v4, 
      +00061                 typename genType::value_type const & s);
      +00062 
      +00064 }//namespace spline
      +00065 }//namespace gtx
      +00066 }//namespace glm
      +00067 
      +00068 #include "spline.inl"
      +00069 
      +00070 namespace glm{using namespace gtx::spline;}
      +00071 
      +00072 #endif//glm_gtx_spline
      +00073 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00105_source.html b/doc/api-0.9.2/a00105_source.html new file mode 100644 index 00000000..80d02960 --- /dev/null +++ b/doc/api-0.9.2/a00105_source.html @@ -0,0 +1,115 @@ + + + + +std_based_type.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      std_based_type.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-06-08
      +00005 // Updated : 2008-06-08
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/std_based_type.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_std_based_type
      +00014 #define glm_gtx_std_based_type
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 #include <cstdlib>
      +00019 
      +00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00021 #       pragma message("GLM: GLM_GTX_std_based_type extension included")
      +00022 #endif
      +00023 
      +00024 namespace glm{
      +00025 namespace gtx{
      +00026 namespace std_based_type 
      +00027 {
      +00028         typedef detail::tvec2<std::size_t>              size2;
      +00029         typedef detail::tvec3<std::size_t>              size3;
      +00030         typedef detail::tvec4<std::size_t>              size4;
      +00031 
      +00032         typedef detail::tvec2<signed char>              scvec2;
      +00033         typedef detail::tvec3<signed char>              scvec3;
      +00034         typedef detail::tvec4<signed char>              scvec4;
      +00035 
      +00036         typedef detail::tvec2<unsigned char>    ucvec2;
      +00037         typedef detail::tvec3<unsigned char>    ucvec3;
      +00038         typedef detail::tvec4<unsigned char>    ucvec4;
      +00039 
      +00040         typedef detail::tvec2<signed short>             ssvec2;
      +00041         typedef detail::tvec3<signed short>             ssvec3;
      +00042         typedef detail::tvec4<signed short>             ssvec4;
      +00043 
      +00044         typedef detail::tvec2<unsigned short>   usvec2;
      +00045         typedef detail::tvec3<unsigned short>   usvec3;
      +00046         typedef detail::tvec4<unsigned short>   usvec4;
      +00047 
      +00048         typedef detail::tvec2<signed int>               sivec2;
      +00049         typedef detail::tvec3<signed int>               sivec3;
      +00050         typedef detail::tvec4<signed int>               sivec4;
      +00051 
      +00052         typedef detail::tvec2<unsigned int>             uivec2;
      +00053         typedef detail::tvec3<unsigned int>             uivec3;
      +00054         typedef detail::tvec4<unsigned int>             uivec4;
      +00055 
      +00056         typedef detail::tvec2<signed long>              slvec2;
      +00057         typedef detail::tvec3<signed long>              slvec3;
      +00058         typedef detail::tvec4<signed long>              slvec4;
      +00059 
      +00060         typedef detail::tvec2<unsigned long>    ulvec2;
      +00061         typedef detail::tvec3<unsigned long>    ulvec3;
      +00062         typedef detail::tvec4<unsigned long>    ulvec4;
      +00063 
      +00064 }//namespace std_based_type
      +00065 }//namespace gtx
      +00066 }//namespace glm
      +00067 
      +00068 #include "std_based_type.inl"
      +00069 
      +00070 namespace glm{using namespace gtx::std_based_type;}
      +00071 
      +00072 #endif//glm_gtx_std_based_type
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00106_source.html b/doc/api-0.9.2/a00106_source.html new file mode 100644 index 00000000..519c697e --- /dev/null +++ b/doc/api-0.9.2/a00106_source.html @@ -0,0 +1,95 @@ + + + + +string_cast.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      string_cast.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-04-26
      +00005 // Updated : 2010-01-28
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/string_cast.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTC_half_float
      +00012 // - GLM_GTX_integer
      +00013 // - GLM_GTX_quaternion
      +00015 
      +00016 #ifndef glm_gtx_string_cast
      +00017 #define glm_gtx_string_cast
      +00018 
      +00019 // Dependency:
      +00020 #include "../glm.hpp"
      +00021 #include "../gtc/half_float.hpp"
      +00022 #include "../gtx/integer.hpp"
      +00023 #include "../gtx/unsigned_int.hpp"
      +00024 #include "../gtx/quaternion.hpp"
      +00025 #include <string>
      +00026 
      +00027 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00028 #       pragma message("GLM: GLM_GTX_string_cast extension included")
      +00029 #endif
      +00030 
      +00031 namespace glm{
      +00032 namespace gtx{
      +00033 namespace string_cast 
      +00034 {
      +00035         using namespace gtc::half_float; 
      +00036         using namespace gtx::integer; 
      +00037         using namespace gtx::unsigned_int; 
      +00038         using namespace gtx::quaternion; 
      +00039 
      +00042 
      +00045         template <typename genType> 
      +00046         std::string to_string(genType const & x);
      +00047 
      +00049 }//namespace string_cast
      +00050 }//namespace gtx
      +00051 }//namespace glm
      +00052 
      +00053 #include "string_cast.inl"
      +00054 
      +00055 namespace glm{using namespace gtx::string_cast;}
      +00056 
      +00057 #endif//glm_gtx_string_cast
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00107_source.html b/doc/api-0.9.2/a00107_source.html new file mode 100644 index 00000000..a17c68a3 --- /dev/null +++ b/doc/api-0.9.2/a00107_source.html @@ -0,0 +1,397 @@ + + + + +swizzle.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      swizzle.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2010-02-20
      +00005 // Updated : 2010-02-20
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtc/swizzle.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtc_swizzle
      +00014 #define glm_gtc_swizzle
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 #include "../gtc/type_precision.hpp"
      +00019 
      +00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00021 #       pragma message("GLM: GLM_GTC_swizzle extension included")
      +00022 #endif
      +00023 
      +00024 namespace glm{
      +00025 namespace gtc{
      +00026 namespace swizzle 
      +00027 {
      +00028         using namespace gtc::half_float;
      +00029 
      +00030         template <typename T, template <typename> class vecType>
      +00031         T const & swizzle(      
      +00032                 vecType<T> const & v,
      +00033                 comp x);
      +00034 
      +00035         template <typename T, template <typename> class vecType>
      +00036         detail::tvec2<T> const & swizzle(
      +00037                 vecType<T> const & v,
      +00038                 comp x, comp y);
      +00039 
      +00040         template <typename T, template <typename> class vecType>
      +00041         detail::tvec3<T> const & swizzle(
      +00042                 vecType<T> const & v,
      +00043                 comp x, comp y, comp z);
      +00044 
      +00045         template <typename T, template <typename> class vecType>
      +00046         detail::tvec4<T> const & swizzle(
      +00047                 vecType<T> const & v,
      +00048                 comp x, comp y, comp z, comp w);
      +00049 
      +00050         template <typename T, template <typename> class vecType>
      +00051         T & swizzle(
      +00052                 vecType<T> & v,
      +00053                 comp x);
      +00054 
      +00055         template <typename T, template <typename> class vecType>
      +00056         detail::tref2<T> swizzle(
      +00057                 vecType<T> & v,
      +00058                 comp x, comp y);
      +00059 
      +00060         template <typename T, template <typename> class vecType>
      +00061         detail::tref3<T> swizzle(
      +00062                 vecType<T> & v,
      +00063                 comp x, comp y, comp z);
      +00064 
      +00065         template <typename T, template <typename> class vecType>
      +00066         detail::tref4<T> swizzle(
      +00067                 vecType<T> & v,
      +00068                 comp x, comp y, comp z, comp w);
      +00069 
      +00070 #       define static_swizzle1_const(TYPE, SIZE)                                                        \
      +00071                 template <comp x>                                                                               \
      +00072                 GLM_FUNC_QUALIFIER TYPE swizzle(detail::tvec##SIZE<TYPE> const & v)     \
      +00073                 {return v[x];}                                                                                  
      +00074                                                                                                                                 
      +00075 #       define static_swizzle1_ref(TYPE, SIZE)                                                                  \
      +00076                 template <comp x>                                                                                                       \
      +00077                 GLM_FUNC_QUALIFIER TYPE& swizzle(detail::tvec##SIZE<TYPE> & v)          \
      +00078                 {return v[x];}
      +00079 
      +00080         static_swizzle1_ref(detail::float16, 2)
      +00081         static_swizzle1_ref(detail::float16, 3)
      +00082         static_swizzle1_ref(detail::float16, 4)
      +00083         static_swizzle1_ref(detail::float32, 2)
      +00084         static_swizzle1_ref(detail::float32, 3)
      +00085         static_swizzle1_ref(detail::float32, 4)
      +00086         static_swizzle1_ref(detail::float64, 2)
      +00087         static_swizzle1_ref(detail::float64, 3)
      +00088         static_swizzle1_ref(detail::float64, 4)
      +00089 
      +00090         static_swizzle1_ref(detail::int8,  2)
      +00091         static_swizzle1_ref(detail::int8,  3)
      +00092         static_swizzle1_ref(detail::int8,  4)
      +00093         static_swizzle1_ref(detail::int16, 2)
      +00094         static_swizzle1_ref(detail::int16, 3)
      +00095         static_swizzle1_ref(detail::int16, 4)
      +00096         static_swizzle1_ref(detail::int32, 2)
      +00097         static_swizzle1_ref(detail::int32, 3)
      +00098         static_swizzle1_ref(detail::int32, 4)
      +00099         static_swizzle1_ref(detail::int64, 2)
      +00100         static_swizzle1_ref(detail::int64, 3)
      +00101         static_swizzle1_ref(detail::int64, 4)
      +00102 
      +00103         static_swizzle1_ref(detail::uint8,  2)
      +00104         static_swizzle1_ref(detail::uint8,  3)
      +00105         static_swizzle1_ref(detail::uint8,  4)
      +00106         static_swizzle1_ref(detail::uint16, 2)
      +00107         static_swizzle1_ref(detail::uint16, 3)
      +00108         static_swizzle1_ref(detail::uint16, 4)
      +00109         static_swizzle1_ref(detail::uint32, 2)
      +00110         static_swizzle1_ref(detail::uint32, 3)
      +00111         static_swizzle1_ref(detail::uint32, 4)
      +00112         static_swizzle1_ref(detail::uint64, 2)
      +00113         static_swizzle1_ref(detail::uint64, 3)
      +00114         static_swizzle1_ref(detail::uint64, 4)
      +00115 /*
      +00116 #       define static_swizzle2_const(TYPE) \
      +00117                 template <comp x, comp y> \
      +00118                 GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \
      +00119                 {return TYPE(v[x], v[y]);}
      +00120 
      +00121 #       define static_swizzle3_const(TYPE) \
      +00122                 template <comp x, comp y, comp z> \
      +00123                 GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \
      +00124                 {return TYPE(v[x], v[y], v[z]);}
      +00125 
      +00126 #       define static_swizzle4_const(TYPE) \
      +00127                 template <comp x, comp y, comp z, comp w> \
      +00128                 GLM_FUNC_QUALIFIER TYPE swizzle(TYPE const & v) \
      +00129                 {return TYPE(v[x], v[y], v[z], v[w]);}
      +00130 */
      +00131 
      +00132 #       define static_swizzle2_const(TYPE, SIZE)                                                                        \
      +00133                 template <comp x, comp y>                                                                                               \
      +00134                 GLM_FUNC_QUALIFIER detail::tvec2<TYPE> swizzle(detail::tvec##SIZE<TYPE> const & v)      \
      +00135                 {return detail::tvec2<TYPE>(v[x], v[y]);}
      +00136 
      +00137 #       define static_swizzle3_const(TYPE, SIZE)                                                                        \
      +00138                 template <comp x, comp y, comp z>                                                                               \
      +00139                 GLM_FUNC_QUALIFIER detail::tvec3<TYPE> swizzle(detail::tvec##SIZE<TYPE> const & v)      \
      +00140                 {return detail::tvec3<TYPE>(v[x], v[y], v[z]);}
      +00141 
      +00142 #       define static_swizzle4_const(TYPE, SIZE)                                                                        \
      +00143                 template <comp x, comp y, comp z, comp w>                                                               \
      +00144                 GLM_FUNC_QUALIFIER detail::tvec4<TYPE> swizzle(detail::tvec##SIZE<TYPE> const & v)      \
      +00145                 {return detail::tvec4<TYPE>(v[x], v[y], v[z], v[w]);}
      +00146 
      +00147 
      +00148         static_swizzle2_const(glm::f16, 2)
      +00149         static_swizzle2_const(glm::f16, 3)
      +00150         static_swizzle2_const(glm::f16, 4)
      +00151         static_swizzle2_const(glm::f32, 2)
      +00152         static_swizzle2_const(glm::f32, 3)
      +00153         static_swizzle2_const(glm::f32, 4)
      +00154         static_swizzle2_const(glm::f64, 2)
      +00155         static_swizzle2_const(glm::f64, 3)
      +00156         static_swizzle2_const(glm::f64, 4)
      +00157 
      +00158         static_swizzle2_const(glm::i8, 2)
      +00159         static_swizzle2_const(glm::i8, 3)
      +00160         static_swizzle2_const(glm::i8, 4)
      +00161         static_swizzle2_const(glm::i16, 2)
      +00162         static_swizzle2_const(glm::i16, 3)
      +00163         static_swizzle2_const(glm::i16, 4)
      +00164         static_swizzle2_const(glm::i32, 2)
      +00165         static_swizzle2_const(glm::i32, 3)
      +00166         static_swizzle2_const(glm::i32, 4)
      +00167         static_swizzle2_const(glm::i64, 2)
      +00168         static_swizzle2_const(glm::i64, 3)
      +00169         static_swizzle2_const(glm::i64, 4)
      +00170 
      +00171         static_swizzle2_const(glm::u8, 2)
      +00172         static_swizzle2_const(glm::u8, 3)
      +00173         static_swizzle2_const(glm::u8, 4)
      +00174         static_swizzle2_const(glm::u16, 2)
      +00175         static_swizzle2_const(glm::u16, 3)
      +00176         static_swizzle2_const(glm::u16, 4)
      +00177         static_swizzle2_const(glm::u32, 2)
      +00178         static_swizzle2_const(glm::u32, 3)
      +00179         static_swizzle2_const(glm::u32, 4)
      +00180         static_swizzle2_const(glm::u64, 2)
      +00181         static_swizzle2_const(glm::u64, 3)
      +00182         static_swizzle2_const(glm::u64, 4)
      +00183 
      +00184         static_swizzle3_const(glm::f16, 2)
      +00185         static_swizzle3_const(glm::f16, 3)
      +00186         static_swizzle3_const(glm::f16, 4)
      +00187         static_swizzle3_const(glm::f32, 2)
      +00188         static_swizzle3_const(glm::f32, 3)
      +00189         static_swizzle3_const(glm::f32, 4)
      +00190         static_swizzle3_const(glm::f64, 2)
      +00191         static_swizzle3_const(glm::f64, 3)
      +00192         static_swizzle3_const(glm::f64, 4)
      +00193 
      +00194         static_swizzle3_const(glm::i8, 2)
      +00195         static_swizzle3_const(glm::i8, 3)
      +00196         static_swizzle3_const(glm::i8, 4)
      +00197         static_swizzle3_const(glm::i16, 2)
      +00198         static_swizzle3_const(glm::i16, 3)
      +00199         static_swizzle3_const(glm::i16, 4)
      +00200         static_swizzle3_const(glm::i32, 2)
      +00201         static_swizzle3_const(glm::i32, 3)
      +00202         static_swizzle3_const(glm::i32, 4)
      +00203         static_swizzle3_const(glm::i64, 2)
      +00204         static_swizzle3_const(glm::i64, 3)
      +00205         static_swizzle3_const(glm::i64, 4)
      +00206 
      +00207         static_swizzle3_const(glm::u8, 2)
      +00208         static_swizzle3_const(glm::u8, 3)
      +00209         static_swizzle3_const(glm::u8, 4)
      +00210         static_swizzle3_const(glm::u16, 2)
      +00211         static_swizzle3_const(glm::u16, 3)
      +00212         static_swizzle3_const(glm::u16, 4)
      +00213         static_swizzle3_const(glm::u32, 2)
      +00214         static_swizzle3_const(glm::u32, 3)
      +00215         static_swizzle3_const(glm::u32, 4)
      +00216         static_swizzle3_const(glm::u64, 2)
      +00217         static_swizzle3_const(glm::u64, 3)
      +00218         static_swizzle3_const(glm::u64, 4)
      +00219 
      +00220         static_swizzle4_const(glm::f16, 2)
      +00221         static_swizzle4_const(glm::f16, 3)
      +00222         static_swizzle4_const(glm::f16, 4)
      +00223         static_swizzle4_const(glm::f32, 2)
      +00224         static_swizzle4_const(glm::f32, 3)
      +00225         static_swizzle4_const(glm::f32, 4)
      +00226         static_swizzle4_const(glm::f64, 2)
      +00227         static_swizzle4_const(glm::f64, 3)
      +00228         static_swizzle4_const(glm::f64, 4)
      +00229 
      +00230         static_swizzle4_const(glm::i8, 2)
      +00231         static_swizzle4_const(glm::i8, 3)
      +00232         static_swizzle4_const(glm::i8, 4)
      +00233         static_swizzle4_const(glm::i16, 2)
      +00234         static_swizzle4_const(glm::i16, 3)
      +00235         static_swizzle4_const(glm::i16, 4)
      +00236         static_swizzle4_const(glm::i32, 2)
      +00237         static_swizzle4_const(glm::i32, 3)
      +00238         static_swizzle4_const(glm::i32, 4)
      +00239         static_swizzle4_const(glm::i64, 2)
      +00240         static_swizzle4_const(glm::i64, 3)
      +00241         static_swizzle4_const(glm::i64, 4)
      +00242 
      +00243         static_swizzle4_const(glm::u8, 2)
      +00244         static_swizzle4_const(glm::u8, 3)
      +00245         static_swizzle4_const(glm::u8, 4)
      +00246         static_swizzle4_const(glm::u16, 2)
      +00247         static_swizzle4_const(glm::u16, 3)
      +00248         static_swizzle4_const(glm::u16, 4)
      +00249         static_swizzle4_const(glm::u32, 2)
      +00250         static_swizzle4_const(glm::u32, 3)
      +00251         static_swizzle4_const(glm::u32, 4)
      +00252         static_swizzle4_const(glm::u64, 2)
      +00253         static_swizzle4_const(glm::u64, 3)
      +00254         static_swizzle4_const(glm::u64, 4)
      +00255 
      +00256 #       define static_swizzle2_ref(TYPE, SIZE) \
      +00257                 template <glm::comp x, glm::comp y> \
      +00258                 GLM_FUNC_QUALIFIER glm::detail::tref2<TYPE> swizzle(detail::tvec##SIZE<TYPE> & v) \
      +00259                 {return glm::detail::tref2<TYPE>(v[x], v[y]);}  
      +00260 
      +00261 #       define static_swizzle3_ref(TYPE, SIZE) \
      +00262                 template <glm::comp x, glm::comp y, glm::comp z> \
      +00263                 GLM_FUNC_QUALIFIER glm::detail::tref3<TYPE> swizzle(detail::tvec##SIZE<TYPE> & v) \
      +00264                 {return glm::detail::tref3<TYPE>(v[x], v[y], v[z]);}    
      +00265 
      +00266 #       define static_swizzle4_ref(TYPE, SIZE) \
      +00267                 template <glm::comp x, glm::comp y, glm::comp z, glm::comp w> \
      +00268                 GLM_FUNC_QUALIFIER glm::detail::tref4<TYPE> swizzle(detail::tvec##SIZE<TYPE> & v) \
      +00269                 {return glm::detail::tref4<TYPE>(v[x], v[y], v[z], v[w]);}      
      +00270 
      +00271         static_swizzle2_ref(glm::f16, 2)
      +00272         static_swizzle2_ref(glm::f16, 3)
      +00273         static_swizzle2_ref(glm::f16, 4)
      +00274         static_swizzle2_ref(glm::f32, 2)
      +00275         static_swizzle2_ref(glm::f32, 3)
      +00276         static_swizzle2_ref(glm::f32, 4)
      +00277         static_swizzle2_ref(glm::f64, 2)
      +00278         static_swizzle2_ref(glm::f64, 3)
      +00279         static_swizzle2_ref(glm::f64, 4)
      +00280 
      +00281         static_swizzle2_ref(glm::i8, 2)
      +00282         static_swizzle2_ref(glm::i8, 3)
      +00283         static_swizzle2_ref(glm::i8, 4)
      +00284         static_swizzle2_ref(glm::i16, 2)
      +00285         static_swizzle2_ref(glm::i16, 3)
      +00286         static_swizzle2_ref(glm::i16, 4)
      +00287         static_swizzle2_ref(glm::i32, 2)
      +00288         static_swizzle2_ref(glm::i32, 3)
      +00289         static_swizzle2_ref(glm::i32, 4)
      +00290         static_swizzle2_ref(glm::i64, 2)
      +00291         static_swizzle2_ref(glm::i64, 3)
      +00292         static_swizzle2_ref(glm::i64, 4)
      +00293 
      +00294         static_swizzle2_ref(glm::u8, 2)
      +00295         static_swizzle2_ref(glm::u8, 3)
      +00296         static_swizzle2_ref(glm::u8, 4)
      +00297         static_swizzle2_ref(glm::u16, 2)
      +00298         static_swizzle2_ref(glm::u16, 3)
      +00299         static_swizzle2_ref(glm::u16, 4)
      +00300         static_swizzle2_ref(glm::u32, 2)
      +00301         static_swizzle2_ref(glm::u32, 3)
      +00302         static_swizzle2_ref(glm::u32, 4)
      +00303         static_swizzle2_ref(glm::u64, 2)
      +00304         static_swizzle2_ref(glm::u64, 3)
      +00305         static_swizzle2_ref(glm::u64, 4)
      +00306 
      +00307         static_swizzle3_ref(glm::f16, 3)
      +00308         static_swizzle3_ref(glm::f16, 4)
      +00309         static_swizzle3_ref(glm::f32, 3)
      +00310         static_swizzle3_ref(glm::f32, 4)
      +00311         static_swizzle3_ref(glm::f64, 3)
      +00312         static_swizzle3_ref(glm::f64, 4)
      +00313 
      +00314         static_swizzle3_ref(glm::i8, 3)
      +00315         static_swizzle3_ref(glm::i8, 4)
      +00316         static_swizzle3_ref(glm::i16, 3)
      +00317         static_swizzle3_ref(glm::i16, 4)
      +00318         static_swizzle3_ref(glm::i32, 3)
      +00319         static_swizzle3_ref(glm::i32, 4)
      +00320         static_swizzle3_ref(glm::i64, 3)
      +00321         static_swizzle3_ref(glm::i64, 4)
      +00322 
      +00323         static_swizzle3_ref(glm::u8, 3)
      +00324         static_swizzle3_ref(glm::u8, 4)
      +00325         static_swizzle3_ref(glm::u16, 3)
      +00326         static_swizzle3_ref(glm::u16, 4)
      +00327         static_swizzle3_ref(glm::u32, 3)
      +00328         static_swizzle3_ref(glm::u32, 4)
      +00329         static_swizzle3_ref(glm::u64, 3)
      +00330         static_swizzle3_ref(glm::u64, 4)
      +00331 
      +00332         static_swizzle4_ref(glm::f16, 4)
      +00333         static_swizzle4_ref(glm::f32, 4)
      +00334         static_swizzle4_ref(glm::f64, 4)
      +00335 
      +00336         static_swizzle4_ref(glm::i8, 4)
      +00337         static_swizzle4_ref(glm::i16, 4)
      +00338         static_swizzle4_ref(glm::i32, 4)
      +00339         static_swizzle4_ref(glm::i64, 4)
      +00340 
      +00341         static_swizzle4_ref(glm::u8, 4)
      +00342         static_swizzle4_ref(glm::u16, 4)
      +00343         static_swizzle4_ref(glm::u32, 4)
      +00344         static_swizzle4_ref(glm::u64, 4)
      +00345 
      +00346 }//namespace swizzle
      +00347 }//namespace gtc
      +00348 }//namespace glm
      +00349 
      +00350 #include "swizzle.inl"
      +00351 
      +00352 namespace glm{using namespace gtc::swizzle;}
      +00353 
      +00354 #endif//glm_gtc_swizzle
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00108_source.html b/doc/api-0.9.2/a00108_source.html new file mode 100644 index 00000000..96dbcdd8 --- /dev/null +++ b/doc/api-0.9.2/a00108_source.html @@ -0,0 +1,125 @@ + + + + +transform.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      transform.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2009-04-29
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/transform.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTC_matric_transform
      +00013 
      +00014 #ifndef glm_gtx_transform
      +00015 #define glm_gtx_transform
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 #include "../gtc/matrix_transform.hpp"
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00022 #       pragma message("GLM: GLM_GTX_transform extension included")
      +00023 #endif
      +00024 
      +00025 namespace glm{
      +00026 namespace gtx{
      +00027 namespace transform 
      +00028 {
      +00029         using namespace gtc::matrix_transform; 
      +00030 
      +00033 
      +00036         template <typename T> 
      +00037         detail::tmat4x4<T> translate(
      +00038                 T x, T y, T z);
      +00039                 
      +00042         template <typename T> 
      +00043         detail::tmat4x4<T> translate(
      +00044                 detail::tmat4x4<T> const & m, 
      +00045                 T x, T y, T z);
      +00046                 
      +00049         template <typename T> 
      +00050         detail::tmat4x4<T> translate(
      +00051                 detail::tvec3<T> const & v);
      +00052 
      +00055         template <typename T> 
      +00056         detail::tmat4x4<T> rotate(
      +00057                 T angle, 
      +00058                 T x, T y, T z);
      +00059 
      +00062         template <typename T> 
      +00063         detail::tmat4x4<T> rotate(
      +00064                 T angle, 
      +00065                 detail::tvec3<T> const & v);
      +00066 
      +00069         template <typename T> 
      +00070         detail::tmat4x4<T> rotate(
      +00071                 detail::tmat4x4<T> const & m, 
      +00072                 T angle, 
      +00073                 T x, T y, T z);
      +00074                 
      +00077         template <typename T> 
      +00078         detail::tmat4x4<T> scale(
      +00079                 T x, T y, T z);
      +00080                 
      +00083         template <typename T> 
      +00084         detail::tmat4x4<T> scale(
      +00085                 detail::tmat4x4<T> const & m, 
      +00086                 T x, T y, T z);
      +00087 
      +00090         template <typename T> 
      +00091         detail::tmat4x4<T> scale(
      +00092                 detail::tvec3<T> const & v);
      +00093 
      +00095 }//namespace transform
      +00096 }//namespace gtx
      +00097 }//namespace glm
      +00098 
      +00099 #include "transform.inl"
      +00100 
      +00101 namespace glm{using namespace gtx::transform;}
      +00102 
      +00103 #endif//glm_gtx_transform
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00109_source.html b/doc/api-0.9.2/a00109_source.html new file mode 100644 index 00000000..adfc8e15 --- /dev/null +++ b/doc/api-0.9.2/a00109_source.html @@ -0,0 +1,140 @@ + + + + +transform2.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      transform2.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-21
      +00005 // Updated : 2006-11-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/transform2.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_transform
      +00013 
      +00014 #ifndef glm_gtx_transform2
      +00015 #define glm_gtx_transform2
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 #include "../gtx/transform.hpp"
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00022 #       pragma message("GLM: GLM_GTX_transform2 extension included")
      +00023 #endif
      +00024 
      +00025 namespace glm{
      +00026 namespace gtx{
      +00027 namespace transform2 
      +00028 {
      +00029         using namespace gtx::transform;
      +00030 
      +00033 
      +00036         template <typename T> 
      +00037         detail::tmat3x3<T> shearX2D(
      +00038                 detail::tmat3x3<T> const & m, 
      +00039                 T y);
      +00040 
      +00043         template <typename T> 
      +00044         detail::tmat3x3<T> shearY2D(
      +00045                 detail::tmat3x3<T> const & m, 
      +00046                 T x);
      +00047 
      +00050         template <typename T> 
      +00051         detail::tmat4x4<T> shearX3D(
      +00052                 const detail::tmat4x4<T> & m,
      +00053                 T y, 
      +00054                 T z);
      +00055                 
      +00058         template <typename T> 
      +00059         detail::tmat4x4<T> shearY3D(
      +00060                 const detail::tmat4x4<T> & m, 
      +00061                 T x, 
      +00062                 T z);
      +00063                 
      +00066         template <typename T> 
      +00067         detail::tmat4x4<T> shearZ3D(
      +00068                 const detail::tmat4x4<T> & m, 
      +00069                 T x, 
      +00070                 T y);
      +00071 
      +00072         //template <typename T> GLM_FUNC_QUALIFIER detail::tmat4x4<T> shear(const detail::tmat4x4<T> & m, shearPlane, planePoint, angle)
      +00073         // Identity + tan(angle) * cross(Normal, OnPlaneVector)     0
      +00074         // - dot(PointOnPlane, normal) * OnPlaneVector              1
      +00075 
      +00076         // Reflect functions seem to don't work
      +00077         //template <typename T> detail::tmat3x3<T> reflect2D(const detail::tmat3x3<T> & m, const detail::tvec3<T>& normal){return reflect2DGTX(m, normal);}                                                                     //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
      +00078         //template <typename T> detail::tmat4x4<T> reflect3D(const detail::tmat4x4<T> & m, const detail::tvec3<T>& normal){return reflect3DGTX(m, normal);}                                                                     //!< \brief Build a reflection matrix (from GLM_GTX_transform2 extension)
      +00079                 
      +00082         template <typename T> 
      +00083         detail::tmat3x3<T> proj2D(
      +00084                 const detail::tmat3x3<T> & m, 
      +00085                 const detail::tvec3<T>& normal);
      +00086                                 
      +00089         template <typename T> 
      +00090         detail::tmat4x4<T> proj3D(
      +00091                 const detail::tmat4x4<T> & m, 
      +00092                 const detail::tvec3<T>& normal);
      +00093 
      +00096         template <typename valType> 
      +00097         detail::tmat4x4<valType> scaleBias(
      +00098                 valType scale, 
      +00099                 valType bias);
      +00100 
      +00103         template <typename valType> 
      +00104         detail::tmat4x4<valType> scaleBias(
      +00105                 detail::tmat4x4<valType> const & m, 
      +00106                 valType scale, 
      +00107                 valType bias);
      +00108 
      +00110 }// namespace transform2
      +00111 }// namespace gtx
      +00112 }// namespace glm
      +00113 
      +00114 #include "transform2.inl"
      +00115 
      +00116 namespace glm{using namespace gtx::transform2;}
      +00117 
      +00118 #endif//glm_gtx_transform2
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00110_source.html b/doc/api-0.9.2/a00110_source.html new file mode 100644 index 00000000..ecd6009a --- /dev/null +++ b/doc/api-0.9.2/a00110_source.html @@ -0,0 +1,253 @@ + + + + +type.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-01-08
      +00005 // Updated : 2008-01-08
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type.hpp
      +00009 
      +00010 #ifndef glm_core_type
      +00011 #define glm_core_type
      +00012 
      +00013 #include "type_half.hpp"
      +00014 #include "type_float.hpp"
      +00015 #include "type_int.hpp"
      +00016 
      +00017 #include "type_gentype.hpp"
      +00018 
      +00019 #include "type_vec1.hpp"
      +00020 #include "type_vec2.hpp"
      +00021 #include "type_vec3.hpp"
      +00022 #include "type_vec4.hpp"
      +00023 
      +00024 #include "type_mat2x2.hpp"
      +00025 #include "type_mat2x3.hpp"
      +00026 #include "type_mat2x4.hpp"
      +00027 #include "type_mat3x2.hpp"
      +00028 #include "type_mat3x3.hpp"
      +00029 #include "type_mat3x4.hpp"
      +00030 #include "type_mat4x2.hpp"
      +00031 #include "type_mat4x3.hpp"
      +00032 #include "type_mat4x4.hpp"
      +00033 
      +00034 namespace glm{
      +00035 namespace core{
      +00036 namespace type
      +00037 {
      +00039         // Float definition
      +00040 
      +00041 #if(defined(GLM_PRECISION_HIGHP_FLOAT))
      +00042         typedef precision::highp_vec2           vec2;
      +00043         typedef precision::highp_vec3           vec3;
      +00044         typedef precision::highp_vec4           vec4;
      +00045         typedef precision::highp_mat2x2         mat2x2;
      +00046         typedef precision::highp_mat2x3         mat2x3;
      +00047         typedef precision::highp_mat2x4         mat2x4;
      +00048         typedef precision::highp_mat3x2         mat3x2;
      +00049         typedef precision::highp_mat3x3         mat3x3;
      +00050         typedef precision::highp_mat3x4         mat3x4;
      +00051         typedef precision::highp_mat4x2         mat4x2;
      +00052         typedef precision::highp_mat4x3         mat4x3;
      +00053         typedef precision::highp_mat4x4         mat4x4;
      +00054 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
      +00055         typedef precision::mediump_vec2         vec2;
      +00056         typedef precision::mediump_vec3         vec3;
      +00057         typedef precision::mediump_vec4         vec4;
      +00058         typedef precision::mediump_mat2x2       mat2x2;
      +00059         typedef precision::mediump_mat2x3       mat2x3;
      +00060         typedef precision::mediump_mat2x4       mat2x4;
      +00061         typedef precision::mediump_mat3x2       mat3x2;
      +00062         typedef precision::mediump_mat3x3       mat3x3;
      +00063         typedef precision::mediump_mat3x4       mat3x4;
      +00064         typedef precision::mediump_mat4x2       mat4x2;
      +00065         typedef precision::mediump_mat4x3       mat4x3;
      +00066         typedef precision::mediump_mat4x4       mat4x4;
      +00067 #elif(defined(GLM_PRECISION_LOWP_FLOAT))
      +00068         typedef precision::lowp_vec2                    vec2;
      +00069         typedef precision::lowp_vec3                    vec3;
      +00070         typedef precision::lowp_vec4                    vec4;
      +00071         typedef precision::lowp_mat2x2                  mat2x2;
      +00072         typedef precision::lowp_mat2x3                  mat2x3;
      +00073         typedef precision::lowp_mat2x4                  mat2x4;
      +00074         typedef precision::lowp_mat3x2                  mat3x2;
      +00075         typedef precision::lowp_mat3x3                  mat3x3;
      +00076         typedef precision::lowp_mat3x4                  mat3x4;
      +00077         typedef precision::lowp_mat4x2                  mat4x2;
      +00078         typedef precision::lowp_mat4x3                  mat4x3;
      +00079         typedef precision::lowp_mat4x4                  mat4x4;
      +00080 #else
      +00081 
      +00082 
      +00083 
      +00084         typedef precision::mediump_vec2         vec2;
      +00085 
      +00089         typedef precision::mediump_vec3         vec3;
      +00090 
      +00094         typedef precision::mediump_vec4         vec4;
      +00095 
      +00099         typedef precision::mediump_mat2x2               mat2x2;
      +00100 
      +00104         typedef precision::mediump_mat2x3               mat2x3;
      +00105 
      +00109         typedef precision::mediump_mat2x4               mat2x4;
      +00110 
      +00114         typedef precision::mediump_mat3x2               mat3x2;
      +00115 
      +00119         typedef precision::mediump_mat3x3               mat3x3;
      +00120 
      +00124         typedef precision::mediump_mat3x4               mat3x4;
      +00125 
      +00129         typedef precision::mediump_mat4x2               mat4x2;
      +00130 
      +00134         typedef precision::mediump_mat4x3               mat4x3;
      +00135 
      +00139         typedef precision::mediump_mat4x4               mat4x4;
      +00140 
      +00141 #endif//GLM_PRECISION
      +00142 
      +00146         typedef mat2x2                                                  mat2;
      +00147 
      +00151         typedef mat3x3                                                  mat3;
      +00152 
      +00156         typedef mat4x4                                                  mat4;
      +00157 
      +00159         // Signed integer definition
      +00160 
      +00161 #if(defined(GLM_PRECISION_HIGHP_INT))
      +00162         typedef precision::highp_ivec2                  ivec2;
      +00163         typedef precision::highp_ivec3                  ivec3;
      +00164         typedef precision::highp_ivec4                  ivec4;
      +00165 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
      +00166         typedef precision::mediump_ivec2                ivec2;
      +00167         typedef precision::mediump_ivec3                ivec3;
      +00168         typedef precision::mediump_ivec4                ivec4;
      +00169 #elif(defined(GLM_PRECISION_LOWP_INT))
      +00170         typedef precision::lowp_ivec2                   ivec2;
      +00171         typedef precision::lowp_ivec3                   ivec3;
      +00172         typedef precision::lowp_ivec4                   ivec4;
      +00173 #else
      +00174 
      +00175 
      +00176 
      +00177         typedef precision::mediump_ivec2                ivec2;
      +00178 
      +00182         typedef precision::mediump_ivec3                ivec3;
      +00183 
      +00187         typedef precision::mediump_ivec4                ivec4;
      +00188 #endif//GLM_PRECISION
      +00189 
      +00191         // Unsigned integer definition
      +00192 
      +00193 #if(defined(GLM_PRECISION_HIGHP_UINT))
      +00194         typedef precision::highp_uvec2                  uvec2;
      +00195         typedef precision::highp_uvec3                  uvec3;
      +00196         typedef precision::highp_uvec4                  uvec4;
      +00197 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
      +00198         typedef precision::mediump_uvec2                uvec2;
      +00199         typedef precision::mediump_uvec3                uvec3;
      +00200         typedef precision::mediump_uvec4                uvec4;
      +00201 #elif(defined(GLM_PRECISION_LOWP_UINT))
      +00202         typedef precision::lowp_uvec2                   uvec2;
      +00203         typedef precision::lowp_uvec3                   uvec3;
      +00204         typedef precision::lowp_uvec4                   uvec4;
      +00205 #else
      +00206 
      +00207 
      +00208 
      +00209         typedef precision::mediump_uvec2                uvec2;
      +00210 
      +00214         typedef precision::mediump_uvec3                uvec3;
      +00215 
      +00219         typedef precision::mediump_uvec4                uvec4;
      +00220 #endif//GLM_PRECISION
      +00221 
      +00223         // Boolean definition
      +00224 
      +00228         typedef detail::tvec2<bool>             bvec2;
      +00229 
      +00233         typedef detail::tvec3<bool>             bvec3;
      +00234 
      +00238         typedef detail::tvec4<bool>             bvec4;
      +00239 
      +00241         // Double definition
      +00242 
      +00246         typedef detail::tvec2<double>   dvec2;
      +00247 
      +00251         typedef detail::tvec3<double>   dvec3;
      +00252 
      +00256         typedef detail::tvec4<double>   dvec4;
      +00257 
      +00261         typedef detail::tmat2x2<double> dmat2;
      +00262 
      +00266         typedef detail::tmat3x3<double> dmat3;
      +00267 
      +00271         typedef detail::tmat4x4<double> dmat4;
      +00272 
      +00276         typedef detail::tmat2x2<double> dmat2x2;
      +00277 
      +00281         typedef detail::tmat2x3<double> dmat2x3;
      +00282 
      +00286         typedef detail::tmat2x4<double> dmat2x4;
      +00287 
      +00291         typedef detail::tmat3x2<double> dmat3x2;
      +00292 
      +00296         typedef detail::tmat3x3<double> dmat3x3;
      +00297 
      +00301         typedef detail::tmat3x4<double> dmat3x4;
      +00302 
      +00306         typedef detail::tmat4x2<double> dmat4x2;
      +00307 
      +00311         typedef detail::tmat4x3<double> dmat4x3;
      +00312 
      +00316         typedef detail::tmat4x4<double> dmat4x4;
      +00317 
      +00318 }//namespace type
      +00319 }//namespace core
      +00320 }//namespace glm
      +00321 
      +00322 #endif//glm_core_type
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00111_source.html b/doc/api-0.9.2/a00111_source.html new file mode 100644 index 00000000..0aa17f28 --- /dev/null +++ b/doc/api-0.9.2/a00111_source.html @@ -0,0 +1,106 @@ + + + + +type_float.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_float.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-22
      +00005 // Updated : 2010-02-08
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_float.hpp
      +00009 
      +00010 #ifndef glm_core_type_float
      +00011 #define glm_core_type_float
      +00012 
      +00013 #include "type_half.hpp"
      +00014 #include "setup.hpp"
      +00015 
      +00016 namespace glm
      +00017 {
      +00018         namespace detail
      +00019         {
      +00020                 GLM_DETAIL_IS_FLOAT(detail::thalf);
      +00021                 GLM_DETAIL_IS_FLOAT(float);
      +00022                 GLM_DETAIL_IS_FLOAT(double);
      +00023                 GLM_DETAIL_IS_FLOAT(long double);
      +00024         }
      +00025         //namespace detail
      +00026 
      +00027         namespace core{
      +00028         namespace type{
      +00029 
      +00030         namespace precision
      +00031         {
      +00032 #ifdef GLM_USE_HALF_SCALAR
      +00033                 typedef detail::thalf           lowp_float_t;
      +00034 #else//GLM_USE_HALF_SCALAR
      +00035                 typedef float                           lowp_float_t;
      +00036 #endif//GLM_USE_HALF_SCALAR
      +00037                 typedef float                           mediump_float_t;
      +00038                 typedef double                          highp_float_t;
      +00039 
      +00044                 typedef lowp_float_t            lowp_float;
      +00049                 typedef mediump_float_t     mediump_float;
      +00054                 typedef highp_float_t           highp_float;
      +00055         }
      +00056         //namespace precision
      +00057 
      +00058 #if(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
      +00059         typedef precision::mediump_float                                float_t;
      +00060 #elif(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
      +00061         typedef precision::highp_float                  float_t;
      +00062 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
      +00063         typedef precision::mediump_float                                float_t;
      +00064 #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
      +00065         typedef precision::lowp_float                                   float_t;
      +00066 #else
      +00067 #       error "GLM error: multiple default precision requested for floating-point types"
      +00068 #endif
      +00069 
      +00070         }//namespace type
      +00071         }//namespace core
      +00072 }//namespace glm
      +00073 
      +00074 #endif//glm_core_type_float
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00112_source.html b/doc/api-0.9.2/a00112_source.html new file mode 100644 index 00000000..12320c2d --- /dev/null +++ b/doc/api-0.9.2/a00112_source.html @@ -0,0 +1,188 @@ + + + + +type_gentype.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_gentype.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-10-05
      +00005 // Updated : 2010-01-26
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_gentype.hpp
      +00009 
      +00010 #ifndef glm_core_type_gentype
      +00011 #define glm_core_type_gentype
      +00012 
      +00013 #include "type_size.hpp"
      +00014 
      +00015 namespace glm
      +00016 {
      +00017         enum profile
      +00018         {
      +00019                 nice,
      +00020                 fast,
      +00021                 simd
      +00022         };
      +00023 
      +00024 namespace detail
      +00025 {
      +00026         template
      +00027         <
      +00028                 typename VALTYPE, 
      +00029                 template <typename> class TYPE
      +00030         >
      +00031         struct genType
      +00032         {
      +00033         public:
      +00034                 enum ctor{null};
      +00035 
      +00036                 typedef VALTYPE value_type;
      +00037                 typedef VALTYPE & value_reference;
      +00038                 typedef VALTYPE * value_pointer;
      +00039                 typedef VALTYPE const * value_const_pointer;
      +00040                 typedef TYPE<bool> bool_type;
      +00041 
      +00042                 typedef sizeType size_type;
      +00043                 static bool is_vector();
      +00044                 static bool is_matrix();
      +00045                 
      +00046                 typedef TYPE<VALTYPE> type;
      +00047                 typedef TYPE<VALTYPE> * pointer;
      +00048                 typedef TYPE<VALTYPE> const * const_pointer;
      +00049                 typedef TYPE<VALTYPE> const * const const_pointer_const;
      +00050                 typedef TYPE<VALTYPE> * const pointer_const;
      +00051                 typedef TYPE<VALTYPE> & reference;
      +00052                 typedef TYPE<VALTYPE> const & const_reference;
      +00053                 typedef TYPE<VALTYPE> const & param_type;
      +00054 
      +00056                 // Address (Implementation details)
      +00057 
      +00058                 value_const_pointer value_address() const{return value_pointer(this);}
      +00059                 value_pointer value_address(){return value_pointer(this);}
      +00060 
      +00061         //protected:
      +00062         //      enum kind
      +00063         //      {
      +00064         //              GEN_TYPE,
      +00065         //              VEC_TYPE,
      +00066         //              MAT_TYPE
      +00067         //      };
      +00068 
      +00069         //      typedef typename TYPE::kind kind;
      +00070         };
      +00071 
      +00072         template
      +00073         <
      +00074                 typename VALTYPE, 
      +00075                 template <typename> class TYPE
      +00076         >
      +00077         bool genType<VALTYPE, TYPE>::is_vector()
      +00078         {
      +00079                 return true;
      +00080         }
      +00081 /*
      +00082         template <typename valTypeT, unsigned int colT, unsigned int rowT, profile proT = nice>
      +00083         class base
      +00084         {
      +00085         public:
      +00087                 // Traits
      +00088 
      +00089                 typedef sizeType                                                        size_type;
      +00090                 typedef valTypeT                                                        value_type;
      +00091 
      +00092                 typedef base<value_type, colT, rowT>            class_type;
      +00093 
      +00094                 typedef base<bool, colT, rowT>                          bool_type;
      +00095                 typedef base<value_type, rowT, 1>                       col_type;
      +00096                 typedef base<value_type, colT, 1>                       row_type;
      +00097                 typedef base<value_type, rowT, colT>            transpose_type;
      +00098 
      +00099                 static size_type                                                        col_size();
      +00100                 static size_type                                                        row_size();
      +00101                 static size_type                                                        value_size();
      +00102                 static bool                                                                     is_scalar();
      +00103                 static bool                                                                     is_vector();
      +00104                 static bool                                                                     is_matrix();
      +00105 
      +00106         private:
      +00107                 // Data 
      +00108                 col_type value[colT];           
      +00109 
      +00110         public:
      +00112                 // Constructors
      +00113                 base();
      +00114                 base(class_type const & m);
      +00115 
      +00116                 explicit base(value_type const & x);
      +00117                 explicit base(value_type const * const x);
      +00118                 explicit base(col_type const * const x);
      +00119 
      +00121                 // Conversions
      +00122                 template <typename vU, uint cU, uint rU, profile pU>
      +00123                 explicit base(base<vU, cU, rU, pU> const & m);
      +00124 
      +00126                 // Accesses
      +00127                 col_type& operator[](size_type i);
      +00128                 col_type const & operator[](size_type i) const;
      +00129 
      +00131                 // Unary updatable operators
      +00132                 class_type& operator=  (class_type const & x);
      +00133                 class_type& operator+= (value_type const & x);
      +00134                 class_type& operator+= (class_type const & x);
      +00135                 class_type& operator-= (value_type const & x);
      +00136                 class_type& operator-= (class_type const & x);
      +00137                 class_type& operator*= (value_type const & x);
      +00138                 class_type& operator*= (class_type const & x);
      +00139                 class_type& operator/= (value_type const & x);
      +00140                 class_type& operator/= (class_type const & x);
      +00141                 class_type& operator++ ();
      +00142                 class_type& operator-- ();
      +00143         };
      +00144 */
      +00145         }//namespace detail
      +00146 }//namespace glm
      +00147 
      +00148 //#include "type_gentype.inl"
      +00149 
      +00150 #endif//glm_core_type_gentype
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00113_source.html b/doc/api-0.9.2/a00113_source.html new file mode 100644 index 00000000..c755ce81 --- /dev/null +++ b/doc/api-0.9.2/a00113_source.html @@ -0,0 +1,120 @@ + + + + +type_half.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_half.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-17
      +00005 // Updated : 2010-02-17
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_half.hpp
      +00009 
      +00010 #ifndef glm_core_type_half
      +00011 #define glm_core_type_half
      +00012 
      +00013 #include <cstdlib>
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018         typedef short hdata;
      +00019 
      +00020         float toFloat32(hdata value);
      +00021         hdata toFloat16(float const & value);
      +00022 
      +00025         class thalf
      +00026         {
      +00027         public: 
      +00028                 // Constructors
      +00029                 GLM_FUNC_DECL thalf();
      +00030                 GLM_FUNC_DECL thalf(thalf const & s);
      +00031                         
      +00032                 template <typename U>
      +00033                 GLM_FUNC_DECL explicit thalf(U const & s);
      +00034 
      +00035                 // Cast
      +00036                 //operator float();
      +00037                 GLM_FUNC_DECL operator float() const;
      +00038                 //operator double();
      +00039                 //operator double() const;
      +00040 
      +00041                 // Unary updatable operators
      +00042                 GLM_FUNC_DECL thalf& operator= (thalf const & s);
      +00043                 GLM_FUNC_DECL thalf& operator+=(thalf const & s);
      +00044                 GLM_FUNC_DECL thalf& operator-=(thalf const & s);
      +00045                 GLM_FUNC_DECL thalf& operator*=(thalf const & s);
      +00046                 GLM_FUNC_DECL thalf& operator/=(thalf const & s);
      +00047                 GLM_FUNC_DECL thalf& operator++();
      +00048                 GLM_FUNC_DECL thalf& operator--();
      +00049         
      +00050                 GLM_FUNC_DECL float toFloat() const{return toFloat32(data);}
      +00051 
      +00052                 GLM_FUNC_DECL hdata _data() const{return data;}
      +00053 
      +00054         private:
      +00055                 hdata data;
      +00056         };
      +00057 
      +00058         thalf operator+ (thalf const & s1, thalf const & s2);
      +00059 
      +00060         thalf operator- (thalf const & s1, thalf const & s2);
      +00061 
      +00062         thalf operator* (thalf const & s1, thalf const & s2);
      +00063 
      +00064         thalf operator/ (thalf const & s1, thalf const & s2);
      +00065 
      +00066         // Unary constant operators
      +00067         thalf operator- (thalf const & s);
      +00068 
      +00069         thalf operator-- (thalf const & s, int);
      +00070 
      +00071         thalf operator++ (thalf const & s, int);
      +00072 
      +00073 }//namespace detail
      +00074 }//namespace glm
      +00075 
      +00076 #include "type_half.inl"
      +00077 
      +00078 #endif//glm_core_type_half
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00114_source.html b/doc/api-0.9.2/a00114_source.html new file mode 100644 index 00000000..53d2063a --- /dev/null +++ b/doc/api-0.9.2/a00114_source.html @@ -0,0 +1,127 @@ + + + + +type_int.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_int.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-22
      +00005 // Updated : 2008-09-17
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_int.hpp
      +00009 
      +00010 #ifndef glm_core_type_int
      +00011 #define glm_core_type_int
      +00012 
      +00013 #include "setup.hpp"
      +00014 #include "_detail.hpp"
      +00015 
      +00016 namespace glm{
      +00017 namespace detail
      +00018 {
      +00019         typedef signed short                    lowp_int_t;
      +00020         typedef signed int                              mediump_int_t;
      +00021         typedef sint64                                  highp_int_t;
      +00022 
      +00023         typedef unsigned short                  lowp_uint_t;
      +00024         typedef unsigned int                    mediump_uint_t;
      +00025         typedef uint64                                  highp_uint_t;
      +00026 
      +00027         GLM_DETAIL_IS_INT(signed char);
      +00028         GLM_DETAIL_IS_INT(signed short);
      +00029         GLM_DETAIL_IS_INT(signed int);
      +00030         GLM_DETAIL_IS_INT(signed long);
      +00031         GLM_DETAIL_IS_INT(highp_int_t);
      +00032 
      +00033         GLM_DETAIL_IS_UINT(unsigned char);
      +00034         GLM_DETAIL_IS_UINT(unsigned short);
      +00035         GLM_DETAIL_IS_UINT(unsigned int);
      +00036         GLM_DETAIL_IS_UINT(unsigned long);
      +00037         GLM_DETAIL_IS_UINT(highp_uint_t);
      +00038 }//namespace detail
      +00039 
      +00040 namespace core{
      +00041 namespace type{
      +00042 namespace precision 
      +00043 {
      +00048         typedef detail::lowp_int_t                              lowp_int;
      +00053         typedef detail::mediump_int_t                           mediump_int;
      +00058         typedef detail::highp_int_t                             highp_int;
      +00059 
      +00064         typedef detail::lowp_uint_t                             lowp_uint;
      +00069         typedef detail::mediump_uint_t                  mediump_uint;
      +00074         typedef detail::highp_uint_t                            highp_uint;
      +00075 }//namespace precision
      +00076 
      +00077 #if(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
      +00078         typedef precision::mediump_int                          int_t;
      +00079 #elif(defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
      +00080         typedef precision::highp_int                                    int_t;
      +00081 #elif(!defined(GLM_PRECISION_HIGHP_INT) && defined(GLM_PRECISION_MEDIUMP_INT) && !defined(GLM_PRECISION_LOWP_INT))
      +00082         typedef precision::mediump_int                          int_t;
      +00083 #elif(!defined(GLM_PRECISION_HIGHP_INT) && !defined(GLM_PRECISION_MEDIUMP_INT) && defined(GLM_PRECISION_LOWP_INT))
      +00084         typedef precision::lowp_int                                     int_t;
      +00085 #else
      +00086 #       error "GLM error: multiple default precision requested for signed interger types"
      +00087 #endif
      +00088 
      +00089 #if(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
      +00090         typedef precision::mediump_uint                         uint_t;
      +00091 #elif(defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
      +00092         typedef precision::highp_uint                                   uint_t;
      +00093 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && defined(GLM_PRECISION_MEDIUMP_UINT) && !defined(GLM_PRECISION_LOWP_UINT))
      +00094         typedef precision::mediump_uint                         uint_t;
      +00095 #elif(!defined(GLM_PRECISION_HIGHP_UINT) && !defined(GLM_PRECISION_MEDIUMP_UINT) && defined(GLM_PRECISION_LOWP_UINT))
      +00096         typedef precision::lowp_uint                                    uint_t;
      +00097 #else
      +00098 #       error "GLM error: multiple default precision requested for unsigned interger types"
      +00099 #endif
      +00100 
      +00103         typedef uint_t                                                          uint;
      +00104 
      +00105 }//namespace type
      +00106 }//namespace core
      +00107 }//namespace glm
      +00108 
      +00109 #endif//glm_core_type_int
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00115_source.html b/doc/api-0.9.2/a00115_source.html new file mode 100644 index 00000000..b96647b0 --- /dev/null +++ b/doc/api-0.9.2/a00115_source.html @@ -0,0 +1,100 @@ + + + + +type_mat.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_mat.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2010-01-26
      +00005 // Updated : 2010-01-26
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_mat.hpp
      +00009 
      +00010 #ifndef glm_core_type_mat
      +00011 #define glm_core_type_mat
      +00012 
      +00013 #include "type_gentype.hpp"
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018         //template 
      +00019         //<
      +00020         //      typename T, 
      +00021         //      template <typename> class C, 
      +00022         //      template <typename> class R
      +00023         //>
      +00024         //struct matType
      +00025         //{
      +00026         //      enum ctor{null};
      +00027         //      typedef T value_type;
      +00028         //      typedef std::size_t size_type;
      +00029         //      typedef C<T> col_type;
      +00030         //      typedef R<T> row_type;
      +00031         //      static size_type const col_size;
      +00032         //      static size_type const row_size;
      +00033         //};
      +00034 
      +00035         //template 
      +00036         //<
      +00037         //      typename T, 
      +00038         //      template <typename> class C, 
      +00039         //      template <typename> class R
      +00040         //>
      +00041         //typename matType<T, C, R>::size_type const 
      +00042         //matType<T, C, R>::col_size = matType<T, C, R>::col_type::value_size;
      +00043 
      +00044         //template 
      +00045         //<
      +00046         //      typename T, 
      +00047         //      template <typename> class C, 
      +00048         //      template <typename> class R
      +00049         //>
      +00050         //typename matType<T, C, R>::size_type const 
      +00051         //matType<T, C, R>::row_size = matType<T, C, R>::row_type::value_size;
      +00052 
      +00053 }//namespace detail
      +00054 }//namespace glm
      +00055 
      +00056 #endif//glm_core_type_mat
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00116_source.html b/doc/api-0.9.2/a00116_source.html new file mode 100644 index 00000000..c3058c1a --- /dev/null +++ b/doc/api-0.9.2/a00116_source.html @@ -0,0 +1,294 @@ + + + + +type_mat2x2.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_mat2x2.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-01-27
      +00005 // Updated : 2010-02-11
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_mat2x2.hpp
      +00009 
      +00010 #ifndef glm_core_type_mat2x2
      +00011 #define glm_core_type_mat2x2
      +00012 
      +00013 #include "type_mat.hpp"
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018         template <typename T> struct tvec1;
      +00019         template <typename T> struct tvec2;
      +00020         template <typename T> struct tvec3;
      +00021         template <typename T> struct tvec4;
      +00022         template <typename T> struct tmat2x2;
      +00023         template <typename T> struct tmat2x3;
      +00024         template <typename T> struct tmat2x4;
      +00025         template <typename T> struct tmat3x2;
      +00026         template <typename T> struct tmat3x3;
      +00027         template <typename T> struct tmat3x4;
      +00028         template <typename T> struct tmat4x2;
      +00029         template <typename T> struct tmat4x3;
      +00030         template <typename T> struct tmat4x4;
      +00031 
      +00034         template <typename T> 
      +00035         struct tmat2x2
      +00036         {
      +00037                 enum ctor{null};
      +00038                 typedef T value_type;
      +00039                 typedef std::size_t size_type;
      +00040                 typedef tvec2<T> col_type;
      +00041                 typedef tvec2<T> row_type;
      +00042                 static GLM_FUNC_DECL size_type col_size();
      +00043                 static GLM_FUNC_DECL size_type row_size();
      +00044 
      +00045                 typedef tmat2x2<T> type;
      +00046                 typedef tmat2x2<T> transpose_type;
      +00047 
      +00048         public:
      +00049                 // Implementation detail
      +00050                 GLM_FUNC_DECL tmat2x2<T> _inverse() const;
      +00051 
      +00052         private:
      +00054                 // Data 
      +00055                 col_type value[2];
      +00056 
      +00057         public:
      +00059                 // Constructors
      +00060                 GLM_FUNC_DECL tmat2x2();
      +00061                 GLM_FUNC_DECL tmat2x2(
      +00062                         tmat2x2 const & m);
      +00063 
      +00064                 GLM_FUNC_DECL explicit tmat2x2(
      +00065                         ctor Null);
      +00066                 GLM_FUNC_DECL explicit tmat2x2(
      +00067                         value_type const & x);
      +00068                 GLM_FUNC_DECL explicit tmat2x2(
      +00069                         value_type const & x1, value_type const & y1, 
      +00070                         value_type const & x2, value_type const & y2);
      +00071                 GLM_FUNC_DECL explicit tmat2x2(
      +00072                         col_type const & v1, 
      +00073                         col_type const & v2);
      +00074 
      +00076                 // Conversions
      +00077                 template <typename U> 
      +00078                 GLM_FUNC_DECL explicit tmat2x2(
      +00079                         U const & x);
      +00080                         
      +00081                 template <typename U, typename V, typename M, typename N> 
      +00082                 GLM_FUNC_DECL explicit tmat2x2(
      +00083                         U const & x1, V const & y1, 
      +00084                         M const & x2, N const & y2);
      +00085                         
      +00086                 template <typename U, typename V> 
      +00087                 GLM_FUNC_DECL explicit tmat2x2(
      +00088                         tvec2<U> const & v1, 
      +00089                         tvec2<V> const & v2);
      +00090 
      +00092                 // Matrix conversions
      +00093                 template <typename U> 
      +00094                 GLM_FUNC_DECL explicit tmat2x2(tmat2x2<U> const & m);
      +00095 
      +00096                 GLM_FUNC_DECL explicit tmat2x2(tmat3x3<T> const & x);
      +00097                 GLM_FUNC_DECL explicit tmat2x2(tmat4x4<T> const & x);
      +00098                 GLM_FUNC_DECL explicit tmat2x2(tmat2x3<T> const & x);
      +00099                 GLM_FUNC_DECL explicit tmat2x2(tmat3x2<T> const & x);
      +00100                 GLM_FUNC_DECL explicit tmat2x2(tmat2x4<T> const & x);
      +00101                 GLM_FUNC_DECL explicit tmat2x2(tmat4x2<T> const & x);
      +00102                 GLM_FUNC_DECL explicit tmat2x2(tmat3x4<T> const & x);
      +00103                 GLM_FUNC_DECL explicit tmat2x2(tmat4x3<T> const & x);
      +00104 
      +00106                 // Accesses
      +00107 
      +00108                 GLM_FUNC_DECL col_type & operator[](size_type i);
      +00109                 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
      +00110 
      +00111                 // Unary updatable operators
      +00112                 GLM_FUNC_DECL tmat2x2<T> & operator=(tmat2x2<T> const & m);
      +00113                 template <typename U> 
      +00114                 GLM_FUNC_DECL tmat2x2<T> & operator=(tmat2x2<U> const & m);
      +00115                 template <typename U> 
      +00116                 GLM_FUNC_DECL tmat2x2<T> & operator+=(U const & s);
      +00117                 template <typename U> 
      +00118                 GLM_FUNC_DECL tmat2x2<T> & operator+=(tmat2x2<U> const & m);
      +00119                 template <typename U> 
      +00120                 GLM_FUNC_DECL tmat2x2<T> & operator-=(U const & s);
      +00121                 template <typename U> 
      +00122                 GLM_FUNC_DECL tmat2x2<T> & operator-=(tmat2x2<U> const & m);
      +00123                 template <typename U> 
      +00124                 GLM_FUNC_DECL tmat2x2<T> & operator*=(U const & s);
      +00125                 template <typename U> 
      +00126                 GLM_FUNC_DECL tmat2x2<T> & operator*=(tmat2x2<U> const & m);
      +00127                 template <typename U> 
      +00128                 GLM_FUNC_DECL tmat2x2<T> & operator/=(U const & s);
      +00129                 template <typename U> 
      +00130                 GLM_FUNC_DECL tmat2x2<T> & operator/=(tmat2x2<U> const & m);
      +00131                 GLM_FUNC_DECL tmat2x2<T> & operator++();
      +00132                 GLM_FUNC_DECL tmat2x2<T> & operator--();
      +00133         };
      +00134 
      +00135         // Binary operators
      +00136         template <typename T> 
      +00137         tmat2x2<T> operator+ (
      +00138                 tmat2x2<T> const & m, 
      +00139                 typename tmat2x2<T>::value_type const & s);
      +00140 
      +00141         template <typename T> 
      +00142         tmat2x2<T> operator+ (
      +00143                 typename tmat2x2<T>::value_type const & s, 
      +00144                 tmat2x2<T> const & m);
      +00145 
      +00146         template <typename T> 
      +00147         tmat2x2<T> operator+ (
      +00148                 tmat2x2<T> const & m1, 
      +00149                 tmat2x2<T> const & m2);
      +00150             
      +00151         template <typename T> 
      +00152         tmat2x2<T> operator- (
      +00153                 tmat2x2<T> const & m, 
      +00154                 typename tmat2x2<T>::value_type const & s);
      +00155 
      +00156         template <typename T> 
      +00157         tmat2x2<T> operator- (
      +00158                 typename tmat2x2<T>::value_type const & s, 
      +00159                 tmat2x2<T> const & m);
      +00160 
      +00161         template <typename T> 
      +00162         tmat2x2<T> operator- (
      +00163                 tmat2x2<T> const & m1, 
      +00164                 tmat2x2<T> const & m2);
      +00165 
      +00166         template <typename T> 
      +00167         tmat2x2<T> operator* (
      +00168                 tmat2x2<T> const & m, 
      +00169                 typename tmat2x2<T>::value_type const & s);
      +00170 
      +00171         template <typename T> 
      +00172         tmat2x2<T> operator* (
      +00173                 typename tmat2x2<T>::value_type const & s, 
      +00174                 tmat2x2<T> const & m);
      +00175 
      +00176         template <typename T> 
      +00177         typename tmat2x2<T>::col_type operator* (
      +00178                 tmat2x2<T> const & m, 
      +00179                 typename tmat2x2<T>::row_type const & v);
      +00180 
      +00181         template <typename T> 
      +00182         typename tmat2x2<T>::row_type operator* (
      +00183                 typename tmat2x2<T>::col_type const & v, 
      +00184                 tmat2x2<T> const & m);
      +00185 
      +00186         template <typename T> 
      +00187         tmat2x2<T> operator* (
      +00188                 tmat2x2<T> const & m1, 
      +00189                 tmat2x2<T> const & m2);
      +00190 
      +00191         template <typename T> 
      +00192         tmat2x2<T> operator/ (
      +00193                 tmat2x2<T> const & m, 
      +00194                 typename tmat2x2<T>::value_type const & s);
      +00195 
      +00196         template <typename T> 
      +00197         tmat2x2<T> operator/ (
      +00198                 typename tmat2x2<T>::value_type const & s,
      +00199                 tmat2x2<T> const & m);
      +00200 
      +00201         template <typename T> 
      +00202         typename tmat2x2<T>::col_type operator/ (
      +00203                 tmat2x2<T> const & m, 
      +00204                 typename tmat2x2<T>::row_type const & v);
      +00205 
      +00206         template <typename T> 
      +00207         typename tmat2x2<T>::row_type operator/ (
      +00208                 typename tmat2x2<T>::col_type const & v, 
      +00209                 tmat2x2<T> const & m);
      +00210 
      +00211         template <typename T> 
      +00212         tmat2x2<T> operator/ (
      +00213                 tmat2x2<T> const & m1, 
      +00214                 tmat2x2<T> const & m2);
      +00215 
      +00216         // Unary constant operators
      +00217         template <typename T> 
      +00218         tmat2x2<T> const operator-  (
      +00219                 tmat2x2<T> const & m);
      +00220 
      +00221         template <typename T> 
      +00222         tmat2x2<T> const operator-- (
      +00223                 tmat2x2<T> const & m, 
      +00224                 int);
      +00225 
      +00226         template <typename T> 
      +00227         tmat2x2<T> const operator++ (
      +00228                 tmat2x2<T> const & m, 
      +00229                 int);
      +00230 } //namespace detail
      +00231 
      +00232 namespace core{
      +00233 namespace type{
      +00234 namespace precision
      +00235 {
      +00240         typedef detail::tmat2x2<lowp_float>             lowp_mat2;
      +00241 
      +00246         typedef detail::tmat2x2<mediump_float>  mediump_mat2;
      +00247 
      +00252         typedef detail::tmat2x2<highp_float>    highp_mat2;
      +00253 
      +00258         typedef detail::tmat2x2<lowp_float>             lowp_mat2x2;
      +00259 
      +00264         typedef detail::tmat2x2<mediump_float>  mediump_mat2x2;
      +00265 
      +00270         typedef detail::tmat2x2<highp_float>    highp_mat2x2;
      +00271 
      +00272 }//namespace precision
      +00273 }//namespace type
      +00274 }//namespace core
      +00275 }//namespace glm
      +00276 
      +00277 #ifndef GLM_EXTERNAL_TEMPLATE
      +00278 #include "type_mat2x2.inl"
      +00279 #endif
      +00280 
      +00281 #endif //glm_core_type_mat2x2
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00117_source.html b/doc/api-0.9.2/a00117_source.html new file mode 100644 index 00000000..e56df0a3 --- /dev/null +++ b/doc/api-0.9.2/a00117_source.html @@ -0,0 +1,255 @@ + + + + +type_mat2x3.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_mat2x3.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-10-01
      +00005 // Updated : 2010-02-03
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_mat2x3.hpp
      +00009 
      +00010 #ifndef glm_core_type_mat2x3
      +00011 #define glm_core_type_mat2x3
      +00012 
      +00013 #include "type_mat.hpp"
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018         template <typename T> struct tvec1;
      +00019         template <typename T> struct tvec2;
      +00020         template <typename T> struct tvec3;
      +00021         template <typename T> struct tvec4;
      +00022         template <typename T> struct tmat2x2;
      +00023         template <typename T> struct tmat2x3;
      +00024         template <typename T> struct tmat2x4;
      +00025         template <typename T> struct tmat3x2;
      +00026         template <typename T> struct tmat3x3;
      +00027         template <typename T> struct tmat3x4;
      +00028         template <typename T> struct tmat4x2;
      +00029         template <typename T> struct tmat4x3;
      +00030         template <typename T> struct tmat4x4;
      +00031 
      +00034         template <typename T> 
      +00035         struct tmat2x3
      +00036         {
      +00037                 enum ctor{null};
      +00038                 typedef T value_type;
      +00039                 typedef std::size_t size_type;
      +00040                 typedef tvec3<T> col_type;
      +00041                 typedef tvec2<T> row_type;
      +00042                 static GLM_FUNC_DECL size_type col_size();
      +00043                 static GLM_FUNC_DECL size_type row_size();
      +00044 
      +00045                 typedef tmat2x3<T> type;
      +00046                 typedef tmat3x2<T> transpose_type;
      +00047 
      +00048         private:
      +00049                 // Data 
      +00050                 col_type value[2];
      +00051 
      +00052         public:
      +00053                 // Constructors
      +00054                 GLM_FUNC_DECL tmat2x3();
      +00055                 GLM_FUNC_DECL tmat2x3(tmat2x3 const & m);
      +00056 
      +00057                 GLM_FUNC_DECL explicit tmat2x3(
      +00058                         ctor);
      +00059                 GLM_FUNC_DECL explicit tmat2x3(
      +00060                         value_type const & s);
      +00061                 GLM_FUNC_DECL explicit tmat2x3(
      +00062                         value_type const & x0, value_type const & y0, value_type const & z0,
      +00063                         value_type const & x1, value_type const & y1, value_type const & z1);
      +00064                 GLM_FUNC_DECL explicit tmat2x3(
      +00065                         col_type const & v0, 
      +00066                         col_type const & v1);
      +00067 
      +00068             
      +00070                 // Conversions
      +00071                 template <typename U> 
      +00072                 GLM_FUNC_DECL explicit tmat2x3(
      +00073             U const & x);
      +00074                         
      +00075                 template <typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2> 
      +00076                 GLM_FUNC_DECL explicit tmat2x3(
      +00077             X1 const & x1, Y1 const & y1, Z1 const & z1, 
      +00078             X2 const & x2, Y2 const & y2, Z2 const & z2);
      +00079                         
      +00080                 template <typename U, typename V> 
      +00081                 GLM_FUNC_DECL explicit tmat2x3(
      +00082             tvec3<U> const & v1, 
      +00083             tvec3<V> const & v2);
      +00084             
      +00086         // Matrix conversion
      +00087                 template <typename U> 
      +00088                 GLM_FUNC_DECL explicit tmat2x3(tmat2x3<U> const & m);
      +00089 
      +00090                 GLM_FUNC_DECL explicit tmat2x3(tmat2x2<T> const & x);
      +00091                 GLM_FUNC_DECL explicit tmat2x3(tmat3x3<T> const & x);
      +00092                 GLM_FUNC_DECL explicit tmat2x3(tmat4x4<T> const & x);
      +00093                 GLM_FUNC_DECL explicit tmat2x3(tmat2x4<T> const & x);
      +00094                 GLM_FUNC_DECL explicit tmat2x3(tmat3x2<T> const & x);
      +00095                 GLM_FUNC_DECL explicit tmat2x3(tmat3x4<T> const & x);
      +00096                 GLM_FUNC_DECL explicit tmat2x3(tmat4x2<T> const & x);
      +00097                 GLM_FUNC_DECL explicit tmat2x3(tmat4x3<T> const & x);
      +00098 
      +00099                 // Accesses
      +00100                 col_type & operator[](size_type i);
      +00101                 col_type const & operator[](size_type i) const;
      +00102 
      +00103                 // Unary updatable operators
      +00104                 GLM_FUNC_DECL tmat2x3<T> & operator=  (tmat2x3<T> const & m);
      +00105                 template <typename U> 
      +00106                 GLM_FUNC_DECL tmat2x3<T> & operator=  (tmat2x3<U> const & m);
      +00107                 template <typename U> 
      +00108                 GLM_FUNC_DECL tmat2x3<T> & operator+= (U const & s);
      +00109                 template <typename U> 
      +00110                 GLM_FUNC_DECL tmat2x3<T> & operator+= (tmat2x3<U> const & m);
      +00111                 template <typename U> 
      +00112                 GLM_FUNC_DECL tmat2x3<T> & operator-= (U const & s);
      +00113                 template <typename U> 
      +00114                 GLM_FUNC_DECL tmat2x3<T> & operator-= (tmat2x3<U> const & m);
      +00115                 template <typename U> 
      +00116                 GLM_FUNC_DECL tmat2x3<T> & operator*= (U const & s);
      +00117                 template <typename U> 
      +00118                 GLM_FUNC_DECL tmat2x3<T> & operator*= (tmat2x3<U> const & m);
      +00119                 template <typename U> 
      +00120                 GLM_FUNC_DECL tmat2x3<T> & operator/= (U const & s);
      +00121 
      +00122                 GLM_FUNC_DECL tmat2x3<T> & operator++ ();
      +00123                 GLM_FUNC_DECL tmat2x3<T> & operator-- ();
      +00124         };
      +00125 
      +00126         // Binary operators
      +00127         template <typename T> 
      +00128         tmat2x3<T> operator+ (
      +00129                 tmat2x3<T> const & m, 
      +00130                 typename tmat2x3<T>::value_type const & s);
      +00131             
      +00132         template <typename T> 
      +00133         tmat2x3<T> operator+ (
      +00134                 tmat2x3<T> const & m1, 
      +00135                 tmat2x3<T> const & m2);
      +00136             
      +00137         template <typename T> 
      +00138         tmat2x3<T> operator- (
      +00139                 tmat2x3<T> const & m, 
      +00140                 typename tmat2x3<T>::value_type const & s);
      +00141 
      +00142         template <typename T> 
      +00143         tmat2x3<T> operator- (
      +00144                 tmat2x3<T> const & m1, 
      +00145                 tmat2x3<T> const & m2);
      +00146 
      +00147         template <typename T> 
      +00148         tmat2x3<T> operator* (
      +00149                 tmat2x3<T> const & m, 
      +00150                 typename tmat2x3<T>::value_type const & s);
      +00151 
      +00152         template <typename T> 
      +00153         tmat2x3<T> operator* (
      +00154                 typename tmat2x3<T>::value_type const & s, 
      +00155                 tmat2x3<T> const & m);
      +00156 
      +00157         template <typename T>
      +00158         typename tmat2x3<T>::col_type operator* (
      +00159                 tmat2x3<T> const & m, 
      +00160                 typename tmat2x3<T>::row_type const & v);
      +00161 
      +00162         template <typename T> 
      +00163         typename tmat2x3<T>::row_type operator* (
      +00164                 typename tmat2x3<T>::col_type const & v, 
      +00165                 tmat2x3<T> const & m);
      +00166 
      +00167         template <typename T>
      +00168         tmat3x3<T> operator* (
      +00169                 tmat2x3<T> const & m1, 
      +00170                 tmat3x2<T> const & m2);
      +00171 
      +00172         template <typename T> 
      +00173         tmat2x3<T> operator/ (
      +00174                 tmat2x3<T> const & m, 
      +00175                 typename tmat2x3<T>::value_type const & s);
      +00176 
      +00177         template <typename T> 
      +00178         tmat2x3<T> operator/ (
      +00179                 typename tmat2x3<T>::value_type const & s,
      +00180                 tmat2x3<T> const & m);
      +00181 
      +00182         // Unary constant operators
      +00183         template <typename T> 
      +00184         tmat2x3<T> const operator-  (
      +00185                 tmat2x3<T> const & m);
      +00186 
      +00187         template <typename T> 
      +00188         tmat2x3<T> const operator-- (
      +00189                 tmat2x3<T> const & m, 
      +00190                 int);
      +00191 
      +00192         template <typename T> 
      +00193         tmat2x3<T> const operator++ (
      +00194                 tmat2x3<T> const & m, 
      +00195                 int);
      +00196 
      +00197 } //namespace detail
      +00198 
      +00199 namespace core{
      +00200 namespace type{
      +00201 namespace precision
      +00202 {
      +00207         typedef detail::tmat2x3<lowp_float>             lowp_mat2x3;
      +00212         typedef detail::tmat2x3<mediump_float>  mediump_mat2x3;
      +00217         typedef detail::tmat2x3<highp_float>    highp_mat2x3;
      +00218 }//namespace precision
      +00219 }//namespace type
      +00220 }//namespace core
      +00221 }//namespace glm
      +00222 
      +00223 #ifndef GLM_EXTERNAL_TEMPLATE
      +00224 #include "type_mat2x3.inl"
      +00225 #endif
      +00226 
      +00227 #endif //glm_core_type_mat2x3
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00118_source.html b/doc/api-0.9.2/a00118_source.html new file mode 100644 index 00000000..dfcd0909 --- /dev/null +++ b/doc/api-0.9.2/a00118_source.html @@ -0,0 +1,256 @@ + + + + +type_mat2x4.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_mat2x4.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-08-05
      +00005 // Updated : 2010-02-11
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_mat2x4.hpp
      +00009 
      +00010 #ifndef glm_core_type_mat2x4
      +00011 #define glm_core_type_mat2x4
      +00012 
      +00013 #include "type_mat.hpp"
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018         template <typename T> struct tvec1;
      +00019         template <typename T> struct tvec2;
      +00020         template <typename T> struct tvec3;
      +00021         template <typename T> struct tvec4;
      +00022         template <typename T> struct tmat2x2;
      +00023         template <typename T> struct tmat2x3;
      +00024         template <typename T> struct tmat2x4;
      +00025         template <typename T> struct tmat3x2;
      +00026         template <typename T> struct tmat3x3;
      +00027         template <typename T> struct tmat3x4;
      +00028         template <typename T> struct tmat4x2;
      +00029         template <typename T> struct tmat4x3;
      +00030         template <typename T> struct tmat4x4;
      +00031 
      +00034         template <typename T> 
      +00035         struct tmat2x4
      +00036         {
      +00037                 enum ctor{null};
      +00038                 typedef T value_type;
      +00039                 typedef std::size_t size_type;
      +00040                 typedef tvec4<T> col_type;
      +00041                 typedef tvec2<T> row_type;
      +00042                 static GLM_FUNC_DECL size_type col_size();
      +00043                 static GLM_FUNC_DECL size_type row_size();
      +00044 
      +00045                 typedef tmat2x4<T> type;
      +00046                 typedef tmat4x2<T> transpose_type;
      +00047 
      +00048         private:
      +00049                 // Data 
      +00050                 col_type value[2];
      +00051 
      +00052         public:
      +00053                 // Constructors
      +00054                 GLM_FUNC_DECL tmat2x4();
      +00055                 GLM_FUNC_DECL tmat2x4(tmat2x4 const & m);
      +00056 
      +00057                 GLM_FUNC_DECL explicit tmat2x4(
      +00058                         ctor);
      +00059                 GLM_FUNC_DECL explicit tmat2x4(
      +00060                         value_type const & s);
      +00061                 GLM_FUNC_DECL explicit tmat2x4(
      +00062                         value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0,
      +00063                         value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1);
      +00064                 GLM_FUNC_DECL explicit tmat2x4(
      +00065                         col_type const & v0, 
      +00066                         col_type const & v1);
      +00067             
      +00069                 // Conversions
      +00070                 template <typename U> 
      +00071                 GLM_FUNC_DECL explicit tmat2x4(
      +00072             U const & x);
      +00073                         
      +00074                 template <
      +00075             typename X1, typename Y1, typename Z1, typename W1, 
      +00076             typename X2, typename Y2, typename Z2, typename W2> 
      +00077                 GLM_FUNC_DECL explicit tmat2x4(
      +00078             X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1, 
      +00079             X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2);
      +00080                         
      +00081                 template <typename U, typename V> 
      +00082                 GLM_FUNC_DECL explicit tmat2x4(
      +00083             tvec4<U> const & v1, 
      +00084             tvec4<V> const & v2);
      +00085             
      +00087                 // Matrix conversions
      +00088                 template <typename U> 
      +00089                 GLM_FUNC_DECL explicit tmat2x4(tmat2x4<U> const & m);
      +00090 
      +00091                 GLM_FUNC_DECL explicit tmat2x4(tmat2x2<T> const & x);
      +00092                 GLM_FUNC_DECL explicit tmat2x4(tmat3x3<T> const & x);
      +00093                 GLM_FUNC_DECL explicit tmat2x4(tmat4x4<T> const & x);
      +00094                 GLM_FUNC_DECL explicit tmat2x4(tmat2x3<T> const & x);
      +00095                 GLM_FUNC_DECL explicit tmat2x4(tmat3x2<T> const & x);
      +00096                 GLM_FUNC_DECL explicit tmat2x4(tmat3x4<T> const & x);
      +00097                 GLM_FUNC_DECL explicit tmat2x4(tmat4x2<T> const & x);
      +00098                 GLM_FUNC_DECL explicit tmat2x4(tmat4x3<T> const & x);
      +00099 
      +00100                 // Accesses
      +00101                 GLM_FUNC_DECL col_type & operator[](size_type i);
      +00102                 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
      +00103 
      +00104                 // Unary updatable operators
      +00105                 GLM_FUNC_DECL tmat2x4<T>& operator=  (tmat2x4<T> const & m);
      +00106                 template <typename U> 
      +00107                 GLM_FUNC_DECL tmat2x4<T>& operator=  (tmat2x4<U> const & m);
      +00108                 template <typename U> 
      +00109                 GLM_FUNC_DECL tmat2x4<T>& operator+= (U const & s);
      +00110                 template <typename U> 
      +00111                 GLM_FUNC_DECL tmat2x4<T>& operator+= (tmat2x4<U> const & m);
      +00112                 template <typename U> 
      +00113                 GLM_FUNC_DECL tmat2x4<T>& operator-= (U const & s);
      +00114                 template <typename U> 
      +00115                 GLM_FUNC_DECL tmat2x4<T>& operator-= (tmat2x4<U> const & m);
      +00116                 template <typename U> 
      +00117                 GLM_FUNC_DECL tmat2x4<T>& operator*= (U const & s);
      +00118                 template <typename U> 
      +00119                 GLM_FUNC_DECL tmat2x4<T>& operator*= (tmat2x4<U> const & m);
      +00120                 template <typename U> 
      +00121                 GLM_FUNC_DECL tmat2x4<T>& operator/= (U const & s);
      +00122 
      +00123                 GLM_FUNC_DECL tmat2x4<T>& operator++ ();
      +00124                 GLM_FUNC_DECL tmat2x4<T>& operator-- ();
      +00125         };
      +00126 
      +00127         // Binary operators
      +00128         template <typename T> 
      +00129         tmat2x4<T> operator+ (
      +00130                 tmat2x4<T> const & m, 
      +00131                 typename tmat2x4<T>::value_type const & s);
      +00132             
      +00133         template <typename T> 
      +00134         tmat2x4<T> operator+ (
      +00135                 tmat2x4<T> const & m1, 
      +00136                 tmat2x4<T> const & m2);
      +00137             
      +00138         template <typename T> 
      +00139         tmat2x4<T> operator- (
      +00140                 tmat2x4<T> const & m, 
      +00141                 typename tmat2x4<T>::value_type const & s);
      +00142 
      +00143         template <typename T> 
      +00144         tmat2x4<T> operator- (
      +00145                 tmat2x4<T> const & m1, 
      +00146                 tmat2x4<T> const & m2);
      +00147 
      +00148         template <typename T> 
      +00149         tmat2x4<T> operator* (
      +00150                 tmat2x4<T> const & m, 
      +00151                 typename tmat2x4<T>::value_type const & s);
      +00152 
      +00153         template <typename T> 
      +00154         tmat2x4<T> operator* (
      +00155                 typename tmat2x4<T>::value_type const & s, 
      +00156                 tmat2x4<T> const & m);
      +00157 
      +00158         template <typename T>
      +00159         typename tmat2x4<T>::col_type operator* (
      +00160                 tmat2x4<T> const & m, 
      +00161                 typename tmat2x4<T>::row_type const & v);
      +00162 
      +00163         template <typename T> 
      +00164         typename tmat2x4<T>::row_type operator* (
      +00165                 typename tmat2x4<T>::col_type const & v, 
      +00166                 tmat2x4<T> const & m);
      +00167 
      +00168         template <typename T>
      +00169         tmat2x4<T> operator* (
      +00170                 tmat2x4<T> const & m1, 
      +00171                 tmat2x4<T> const & m2);
      +00172 
      +00173         template <typename T> 
      +00174         tmat2x4<T> operator/ (
      +00175                 tmat2x4<T> const & m, 
      +00176                 typename tmat2x4<T>::value_type const & s);
      +00177 
      +00178         template <typename T> 
      +00179         tmat2x4<T> operator/ (
      +00180                 typename tmat2x4<T>::value_type const & s, 
      +00181                 tmat2x4<T> const & m);
      +00182 
      +00183         // Unary constant operators
      +00184         template <typename T> 
      +00185         tmat2x4<T> const operator-  (
      +00186                 tmat2x4<T> const & m);
      +00187 
      +00188         template <typename T> 
      +00189         tmat2x4<T> const operator-- (
      +00190                 tmat2x4<T> const & m, 
      +00191                 int);
      +00192 
      +00193         template <typename T> 
      +00194         tmat2x4<T> const operator++ (
      +00195                 tmat2x4<T> const & m, 
      +00196                 int);
      +00197 
      +00198 } //namespace detail
      +00199 
      +00200 namespace core{
      +00201 namespace type{
      +00202 namespace precision
      +00203 {
      +00207         typedef detail::tmat2x4<lowp_float>             lowp_mat2x4;
      +00211         typedef detail::tmat2x4<mediump_float>  mediump_mat2x4;
      +00215         typedef detail::tmat2x4<highp_float>    highp_mat2x4;
      +00216 }//namespace precision
      +00217 }//namespace type
      +00218 }//namespace core
      +00219 }//namespace glm
      +00220 
      +00221 #ifndef GLM_EXTERNAL_TEMPLATE
      +00222 #include "type_mat2x4.inl"
      +00223 #endif
      +00224 
      +00225 #endif //glm_core_type_mat2x4
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00119_source.html b/doc/api-0.9.2/a00119_source.html new file mode 100644 index 00000000..f4e8deca --- /dev/null +++ b/doc/api-0.9.2/a00119_source.html @@ -0,0 +1,263 @@ + + + + +type_mat3x2.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_mat3x2.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-08-05
      +00005 // Updated : 2010-02-05
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_mat3x2.hpp
      +00009 
      +00010 #ifndef glm_core_type_mat3x2
      +00011 #define glm_core_type_mat3x2
      +00012 
      +00013 #include "type_mat.hpp"
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018         template <typename T> struct tvec1;
      +00019         template <typename T> struct tvec2;
      +00020         template <typename T> struct tvec3;
      +00021         template <typename T> struct tvec4;
      +00022         template <typename T> struct tmat2x2;
      +00023         template <typename T> struct tmat2x3;
      +00024         template <typename T> struct tmat2x4;
      +00025         template <typename T> struct tmat3x2;
      +00026         template <typename T> struct tmat3x3;
      +00027         template <typename T> struct tmat3x4;
      +00028         template <typename T> struct tmat4x2;
      +00029         template <typename T> struct tmat4x3;
      +00030         template <typename T> struct tmat4x4;
      +00031 
      +00034         template <typename T> 
      +00035         struct tmat3x2
      +00036         {
      +00037                 enum ctor{null};
      +00038                 typedef T value_type;
      +00039                 typedef std::size_t size_type;
      +00040                 typedef tvec2<T> col_type;
      +00041                 typedef tvec3<T> row_type;
      +00042                 static GLM_FUNC_DECL size_type col_size();
      +00043                 static GLM_FUNC_DECL size_type row_size();
      +00044 
      +00045                 typedef tmat3x2<T> type;
      +00046                 typedef tmat2x3<T> transpose_type;
      +00047 
      +00048         private:
      +00049                 // Data
      +00050                 col_type value[3];
      +00051 
      +00052         public:
      +00053                 // Constructors
      +00054                 GLM_FUNC_DECL tmat3x2();
      +00055                 GLM_FUNC_DECL tmat3x2(tmat3x2 const & m);
      +00056 
      +00057                 GLM_FUNC_DECL explicit tmat3x2(
      +00058                         ctor);
      +00059                 GLM_FUNC_DECL explicit tmat3x2(
      +00060                         value_type const & s);
      +00061                 GLM_FUNC_DECL explicit tmat3x2(
      +00062                         value_type const & x0, value_type const & y0,
      +00063                         value_type const & x1, value_type const & y1,
      +00064                         value_type const & x2, value_type const & y2);
      +00065                 GLM_FUNC_DECL explicit tmat3x2(
      +00066                         col_type const & v0, 
      +00067                         col_type const & v1,
      +00068                         col_type const & v2);
      +00069 
      +00071                 // Conversions
      +00072                 template <typename U> 
      +00073                 GLM_FUNC_DECL explicit tmat3x2(
      +00074             U const & x);
      +00075                         
      +00076                 template 
      +00077         <
      +00078             typename X1, typename Y1, 
      +00079             typename X2, typename Y2, 
      +00080             typename X3, typename Y3
      +00081         > 
      +00082                 GLM_FUNC_DECL explicit tmat3x2(
      +00083             X1 const & x1, Y1 const & y1, 
      +00084             X2 const & x2, Y2 const & y2,
      +00085             X3 const & x3, Y3 const & y3);
      +00086                         
      +00087                 template <typename V1, typename V2, typename V3> 
      +00088                 GLM_FUNC_DECL explicit tmat3x2(
      +00089             tvec2<V1> const & v1, 
      +00090             tvec2<V2> const & v2,
      +00091             tvec2<V3> const & v3);
      +00092             
      +00093                 // Matrix conversions
      +00094                 template <typename U> 
      +00095                 GLM_FUNC_DECL explicit tmat3x2(tmat3x2<U> const & m);
      +00096 
      +00097                 GLM_FUNC_DECL explicit tmat3x2(tmat2x2<T> const & x);
      +00098                 GLM_FUNC_DECL explicit tmat3x2(tmat3x3<T> const & x);
      +00099                 GLM_FUNC_DECL explicit tmat3x2(tmat4x4<T> const & x);
      +00100                 GLM_FUNC_DECL explicit tmat3x2(tmat2x3<T> const & x);
      +00101                 GLM_FUNC_DECL explicit tmat3x2(tmat2x4<T> const & x);
      +00102                 GLM_FUNC_DECL explicit tmat3x2(tmat3x4<T> const & x);
      +00103                 GLM_FUNC_DECL explicit tmat3x2(tmat4x2<T> const & x);
      +00104                 GLM_FUNC_DECL explicit tmat3x2(tmat4x3<T> const & x);
      +00105 
      +00106                 // Accesses
      +00107                 GLM_FUNC_DECL col_type & operator[](size_type i);
      +00108                 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
      +00109 
      +00110                 // Unary updatable operators
      +00111                 GLM_FUNC_DECL tmat3x2<T> & operator=  (tmat3x2<T> const & m);
      +00112                 template <typename U> 
      +00113                 GLM_FUNC_DECL tmat3x2<T> & operator=  (tmat3x2<U> const & m);
      +00114                 template <typename U> 
      +00115                 GLM_FUNC_DECL tmat3x2<T> & operator+= (U const & s);
      +00116                 template <typename U> 
      +00117                 GLM_FUNC_DECL tmat3x2<T> & operator+= (tmat3x2<U> const & m);
      +00118                 template <typename U> 
      +00119                 GLM_FUNC_DECL tmat3x2<T> & operator-= (U const & s);
      +00120                 template <typename U> 
      +00121                 GLM_FUNC_DECL tmat3x2<T> & operator-= (tmat3x2<U> const & m);
      +00122                 template <typename U> 
      +00123                 GLM_FUNC_DECL tmat3x2<T> & operator*= (U const & s);
      +00124                 template <typename U> 
      +00125                 GLM_FUNC_DECL tmat3x2<T> & operator*= (tmat3x2<U> const & m);
      +00126                 template <typename U> 
      +00127                 GLM_FUNC_DECL tmat3x2<T> & operator/= (U const & s);
      +00128 
      +00129                 GLM_FUNC_DECL tmat3x2<T> & operator++ ();
      +00130                 GLM_FUNC_DECL tmat3x2<T> & operator-- ();
      +00131         };
      +00132 
      +00133         // Binary operators
      +00134         template <typename T> 
      +00135         tmat3x2<T> operator+ (
      +00136                 tmat3x2<T> const & m, 
      +00137                 typename tmat3x2<T>::value_type const & s);
      +00138             
      +00139         template <typename T> 
      +00140         tmat3x2<T> operator+ (
      +00141                 tmat3x2<T> const & m1, 
      +00142                 tmat3x2<T> const & m2);
      +00143             
      +00144         template <typename T> 
      +00145         tmat3x2<T> operator- (
      +00146                 tmat3x2<T> const & m, 
      +00147                 typename tmat3x2<T>::value_type const & s);
      +00148 
      +00149         template <typename T> 
      +00150         tmat3x2<T> operator- (
      +00151                 tmat3x2<T> const & m1, 
      +00152                 tmat3x2<T> const & m2);
      +00153 
      +00154         template <typename T> 
      +00155         tmat3x2<T> operator* (
      +00156                 tmat3x2<T> const & m, 
      +00157                 typename tmat3x2<T>::value_type const & s);
      +00158 
      +00159         template <typename T> 
      +00160         tmat3x2<T> operator* (
      +00161                 typename tmat3x2<T>::value_type const & s, 
      +00162                 tmat3x2<T> const & m);
      +00163 
      +00164         template <typename T>
      +00165         typename tmat3x2<T>::col_type operator* (
      +00166                 tmat3x2<T> const & m, 
      +00167                 typename tmat3x2<T>::row_type const & v);
      +00168 
      +00169         template <typename T> 
      +00170         typename tmat3x2<T>::row_type operator* (
      +00171                 typename tmat3x2<T>::col_type const & v,
      +00172                 tmat3x2<T> const & m);
      +00173 
      +00174         template <typename T>
      +00175         tmat2x2<T> operator* (
      +00176                 tmat3x2<T> const & m1, 
      +00177                 tmat2x3<T> const & m2);
      +00178 
      +00179         template <typename T> 
      +00180         tmat3x2<T> operator/ (
      +00181                 tmat3x2<T> const & m, 
      +00182                 typename tmat3x2<T>::value_type const & s);
      +00183 
      +00184         template <typename T> 
      +00185         tmat3x2<T> operator/ (
      +00186                 typename tmat3x2<T>::value_type const & s, 
      +00187                 tmat3x2<T> const & m);
      +00188 
      +00189         // Unary constant operators
      +00190         template <typename T> 
      +00191         tmat3x2<T> const operator-  (
      +00192                 tmat3x2<T> const & m);
      +00193 
      +00194         template <typename T> 
      +00195         tmat3x2<T> const operator-- (
      +00196                 tmat3x2<T> const & m, 
      +00197                 int);
      +00198 
      +00199         template <typename T> 
      +00200         tmat3x2<T> const operator++ (
      +00201                 tmat3x2<T> const & m, 
      +00202                 int);
      +00203 
      +00204 } //namespace detail
      +00205 
      +00206 namespace core{
      +00207 namespace type{
      +00208 namespace precision
      +00209 {
      +00213         typedef detail::tmat3x2<lowp_float>             lowp_mat3x2;
      +00217         typedef detail::tmat3x2<mediump_float>  mediump_mat3x2;
      +00221         typedef detail::tmat3x2<highp_float>    highp_mat3x2;
      +00222 }//namespace precision
      +00223 }//namespace type
      +00224 }//namespace core
      +00225 }//namespace glm
      +00226 
      +00227 #ifndef GLM_EXTERNAL_TEMPLATE
      +00228 #include "type_mat3x2.inl"
      +00229 #endif
      +00230 
      +00231 #endif //glm_core_type_mat3x2
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00120_source.html b/doc/api-0.9.2/a00120_source.html new file mode 100644 index 00000000..9cd4fb16 --- /dev/null +++ b/doc/api-0.9.2/a00120_source.html @@ -0,0 +1,300 @@ + + + + +type_mat3x3.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_mat3x3.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-01-27
      +00005 // Updated : 2010-02-03
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_mat3x3.hpp
      +00009 
      +00010 #ifndef glm_core_type_mat3x3
      +00011 #define glm_core_type_mat3x3
      +00012 
      +00013 #include "type_mat.hpp"
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018         template <typename T> struct tvec1;
      +00019         template <typename T> struct tvec2;
      +00020         template <typename T> struct tvec3;
      +00021         template <typename T> struct tvec4;
      +00022         template <typename T> struct tmat2x2;
      +00023         template <typename T> struct tmat2x3;
      +00024         template <typename T> struct tmat2x4;
      +00025         template <typename T> struct tmat3x2;
      +00026         template <typename T> struct tmat3x3;
      +00027         template <typename T> struct tmat3x4;
      +00028         template <typename T> struct tmat4x2;
      +00029         template <typename T> struct tmat4x3;
      +00030         template <typename T> struct tmat4x4;
      +00031 
      +00034         template <typename T> 
      +00035         struct tmat3x3
      +00036         {
      +00037                 enum ctor{null};
      +00038                 typedef T value_type;
      +00039                 typedef std::size_t size_type;
      +00040                 typedef tvec3<T> col_type;
      +00041                 typedef tvec3<T> row_type;
      +00042                 static GLM_FUNC_DECL size_type col_size();
      +00043                 static GLM_FUNC_DECL size_type row_size();
      +00044 
      +00045                 typedef tmat3x3<T> type;
      +00046                 typedef tmat3x3<T> transpose_type;
      +00047 
      +00048         public:
      +00049                 // Implementation detail
      +00050                 GLM_FUNC_DECL tmat3x3<T> _inverse() const;
      +00051 
      +00052         private:
      +00053                 // Data
      +00054                 col_type value[3];
      +00055 
      +00056         public:
      +00057                 // Constructors
      +00058                 GLM_FUNC_DECL tmat3x3();
      +00059                 GLM_FUNC_DECL tmat3x3(tmat3x3 const & m);
      +00060 
      +00061                 GLM_FUNC_DECL explicit tmat3x3(
      +00062                         ctor Null);
      +00063                 GLM_FUNC_DECL explicit tmat3x3(
      +00064                         value_type const & s);
      +00065                 GLM_FUNC_DECL explicit tmat3x3(
      +00066                         value_type const & x0, value_type const & y0, value_type const & z0,
      +00067                         value_type const & x1, value_type const & y1, value_type const & z1,
      +00068                         value_type const & x2, value_type const & y2, value_type const & z2);
      +00069                 GLM_FUNC_DECL explicit tmat3x3(
      +00070                         col_type const & v0, 
      +00071                         col_type const & v1,
      +00072                         col_type const & v2);
      +00073 
      +00075                 // Conversions
      +00076                 template <typename U> 
      +00077                 GLM_FUNC_DECL explicit tmat3x3(
      +00078             U const & x);
      +00079                         
      +00080                 template 
      +00081         <
      +00082             typename X1, typename Y1, typename Z1, 
      +00083             typename X2, typename Y2, typename Z2, 
      +00084             typename X3, typename Y3, typename Z3
      +00085         > 
      +00086                 GLM_FUNC_DECL explicit tmat3x3(
      +00087             X1 const & x1, Y1 const & y1, Z1 const & z1, 
      +00088             X2 const & x2, Y2 const & y2, Z2 const & z2, 
      +00089             X3 const & x3, Y3 const & y3, Z3 const & z3);
      +00090                         
      +00091                 template <typename V1, typename V2, typename V3> 
      +00092                 GLM_FUNC_DECL explicit tmat3x3(
      +00093             tvec3<V1> const & v1, 
      +00094             tvec3<V2> const & v2,
      +00095             tvec3<V3> const & v3);
      +00096             
      +00097                 // Matrix conversions
      +00098                 template <typename U> 
      +00099                 GLM_FUNC_DECL explicit tmat3x3(tmat3x3<U> const & m);
      +00100 
      +00101                 GLM_FUNC_DECL explicit tmat3x3(tmat2x2<T> const & x);
      +00102                 GLM_FUNC_DECL explicit tmat3x3(tmat4x4<T> const & x);
      +00103                 GLM_FUNC_DECL explicit tmat3x3(tmat2x3<T> const & x);
      +00104                 GLM_FUNC_DECL explicit tmat3x3(tmat3x2<T> const & x);
      +00105                 GLM_FUNC_DECL explicit tmat3x3(tmat2x4<T> const & x);
      +00106                 GLM_FUNC_DECL explicit tmat3x3(tmat4x2<T> const & x);
      +00107                 GLM_FUNC_DECL explicit tmat3x3(tmat3x4<T> const & x);
      +00108                 GLM_FUNC_DECL explicit tmat3x3(tmat4x3<T> const & x);
      +00109 
      +00110                 // Accesses
      +00111                 GLM_FUNC_DECL col_type & operator[](size_type i);
      +00112                 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
      +00113 
      +00114                 // Unary updatable operators
      +00115                 GLM_FUNC_DECL tmat3x3<T>& operator=  (tmat3x3<T> const & m);
      +00116                 template <typename U> 
      +00117                 GLM_FUNC_DECL tmat3x3<T>& operator=  (tmat3x3<U> const & m);
      +00118                 template <typename U> 
      +00119                 GLM_FUNC_DECL tmat3x3<T>& operator+= (U const & s);
      +00120                 template <typename U> 
      +00121                 GLM_FUNC_DECL tmat3x3<T>& operator+= (tmat3x3<U> const & m);
      +00122                 template <typename U> 
      +00123                 GLM_FUNC_DECL tmat3x3<T>& operator-= (U const & s);
      +00124                 template <typename U> 
      +00125                 GLM_FUNC_DECL tmat3x3<T>& operator-= (tmat3x3<U> const & m);
      +00126                 template <typename U> 
      +00127                 GLM_FUNC_DECL tmat3x3<T>& operator*= (U const & s);
      +00128                 template <typename U> 
      +00129                 GLM_FUNC_DECL tmat3x3<T>& operator*= (tmat3x3<U> const & m);
      +00130                 template <typename U> 
      +00131                 GLM_FUNC_DECL tmat3x3<T>& operator/= (U const & s);
      +00132                 template <typename U> 
      +00133                 GLM_FUNC_DECL tmat3x3<T>& operator/= (tmat3x3<U> const & m);
      +00134                 GLM_FUNC_DECL tmat3x3<T>& operator++ ();
      +00135                 GLM_FUNC_DECL tmat3x3<T>& operator-- ();
      +00136         };
      +00137 
      +00138         // Binary operators
      +00139         template <typename T> 
      +00140         tmat3x3<T> operator+ (
      +00141                 tmat3x3<T> const & m, 
      +00142                 typename tmat3x3<T>::value_type const & s);
      +00143 
      +00144         template <typename T> 
      +00145         tmat3x3<T> operator+ (
      +00146                 typename tmat3x3<T>::value_type const & s, 
      +00147                 tmat3x3<T> const & m);
      +00148 
      +00149         template <typename T> 
      +00150         tmat3x3<T> operator+ (
      +00151                 tmat3x3<T> const & m1, 
      +00152                 tmat3x3<T> const & m2);
      +00153             
      +00154         template <typename T> 
      +00155         tmat3x3<T> operator- (
      +00156                 tmat3x3<T> const & m, 
      +00157                 typename tmat3x3<T>::value_type const & s);
      +00158 
      +00159         template <typename T> 
      +00160         tmat3x3<T> operator- (
      +00161                 typename tmat3x3<T>::value_type const & s, 
      +00162                 tmat3x3<T> const & m);
      +00163 
      +00164         template <typename T> 
      +00165         tmat3x3<T> operator- (
      +00166                 tmat3x3<T> const & m1, 
      +00167                 tmat3x3<T> const & m2);
      +00168 
      +00169         template <typename T> 
      +00170         tmat3x3<T> operator* (
      +00171                 tmat3x3<T> const & m, 
      +00172                 typename tmat3x3<T>::value_type const & s);
      +00173 
      +00174         template <typename T> 
      +00175         tmat3x3<T> operator* (
      +00176                 typename tmat3x3<T>::value_type const & s, 
      +00177                 tmat3x3<T> const & m);
      +00178 
      +00179         template <typename T> 
      +00180         typename tmat3x3<T>::col_type operator* (
      +00181                 tmat3x3<T> const & m, 
      +00182                 typename tmat3x3<T>::row_type const & v);
      +00183 
      +00184         template <typename T> 
      +00185         typename tmat3x3<T>::row_type operator* (
      +00186                 typename tmat3x3<T>::col_type const & v, 
      +00187                 tmat3x3<T> const & m);
      +00188 
      +00189         template <typename T> 
      +00190         tmat3x3<T> operator* (
      +00191                 tmat3x3<T> const & m1, 
      +00192                 tmat3x3<T> const & m2);
      +00193 
      +00194         template <typename T> 
      +00195         tmat3x3<T> operator/ (
      +00196                 tmat3x3<T> const & m, 
      +00197                 typename tmat3x3<T>::value_type const & s);
      +00198 
      +00199         template <typename T> 
      +00200         tmat3x3<T> operator/ (
      +00201                 typename tmat3x3<T>::value_type const & s, 
      +00202                 tmat3x3<T> const & m);
      +00203 
      +00204         template <typename T> 
      +00205         typename tmat3x3<T>::col_type operator/ (
      +00206                 tmat3x3<T> const & m, 
      +00207                 typename tmat3x3<T>::row_type const & v);
      +00208 
      +00209         template <typename T> 
      +00210         typename tmat3x3<T>::row_type operator/ (
      +00211                 typename tmat3x3<T>::col_type const & v, 
      +00212                 tmat3x3<T> const & m);
      +00213 
      +00214         template <typename T> 
      +00215         tmat3x3<T> operator/ (
      +00216                 tmat3x3<T> const & m1, 
      +00217                 tmat3x3<T> const & m2);
      +00218 
      +00219         // Unary constant operators
      +00220         template <typename T> 
      +00221         tmat3x3<T> const operator-  (
      +00222                 tmat3x3<T> const & m);
      +00223 
      +00224         template <typename T> 
      +00225         tmat3x3<T> const operator-- (
      +00226                 tmat3x3<T> const & m, 
      +00227                 int);
      +00228 
      +00229         template <typename T> 
      +00230         tmat3x3<T> const operator++ (
      +00231                 tmat3x3<T> const & m, 
      +00232                 int);
      +00233 
      +00234 } //namespace detail
      +00235 
      +00236 namespace core{
      +00237 namespace type{
      +00238 namespace precision
      +00239 {
      +00244         typedef detail::tmat3x3<lowp_float>             lowp_mat3;
      +00249         typedef detail::tmat3x3<mediump_float>  mediump_mat3;
      +00254         typedef detail::tmat3x3<highp_float>    highp_mat3;
      +00255 
      +00260         typedef detail::tmat3x3<lowp_float>             lowp_mat3x3;
      +00261 
      +00266         typedef detail::tmat3x3<mediump_float>  mediump_mat3x3;
      +00267 
      +00272         typedef detail::tmat3x3<highp_float>    highp_mat3x3;
      +00273 
      +00274 }//namespace precision
      +00275 }//namespace type
      +00276 }//namespace core
      +00277 }//namespace glm
      +00278 
      +00279 #ifndef GLM_EXTERNAL_TEMPLATE
      +00280 #include "type_mat3x3.inl"
      +00281 #endif
      +00282 
      +00283 #endif //glm_core_type_mat3x3
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00121_source.html b/doc/api-0.9.2/a00121_source.html new file mode 100644 index 00000000..a18bde31 --- /dev/null +++ b/doc/api-0.9.2/a00121_source.html @@ -0,0 +1,264 @@ + + + + +type_mat3x4.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_mat3x4.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-08-05
      +00005 // Updated : 2010-02-05
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_mat3x4.hpp
      +00009 
      +00010 #ifndef glm_core_type_mat3x4
      +00011 #define glm_core_type_mat3x4
      +00012 
      +00013 #include "type_mat.hpp"
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018         template <typename T> struct tvec1;
      +00019         template <typename T> struct tvec2;
      +00020         template <typename T> struct tvec3;
      +00021         template <typename T> struct tvec4;
      +00022         template <typename T> struct tmat2x2;
      +00023         template <typename T> struct tmat2x3;
      +00024         template <typename T> struct tmat2x4;
      +00025         template <typename T> struct tmat3x2;
      +00026         template <typename T> struct tmat3x3;
      +00027         template <typename T> struct tmat3x4;
      +00028         template <typename T> struct tmat4x2;
      +00029         template <typename T> struct tmat4x3;
      +00030         template <typename T> struct tmat4x4;
      +00031 
      +00034         template <typename T> 
      +00035         struct tmat3x4
      +00036         {
      +00037                 enum ctor{null};
      +00038                 typedef T value_type;
      +00039                 typedef std::size_t size_type;
      +00040                 typedef tvec4<T> col_type;
      +00041                 typedef tvec3<T> row_type;
      +00042                 static GLM_FUNC_DECL size_type col_size();
      +00043                 static GLM_FUNC_DECL size_type row_size();
      +00044 
      +00045                 typedef tmat3x4<T> type;
      +00046                 typedef tmat4x3<T> transpose_type;
      +00047 
      +00048         private:
      +00049                 // Data 
      +00050                 col_type value[3];
      +00051 
      +00052         public:
      +00053                 // Constructors
      +00054                 GLM_FUNC_DECL tmat3x4();
      +00055                 GLM_FUNC_DECL tmat3x4(tmat3x4 const & m);
      +00056 
      +00057                 GLM_FUNC_DECL explicit tmat3x4(
      +00058                         ctor Null);
      +00059                 GLM_FUNC_DECL explicit tmat3x4(
      +00060                         value_type const & s);
      +00061                 GLM_FUNC_DECL explicit tmat3x4(
      +00062                         value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0,
      +00063                         value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1,
      +00064                         value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2);
      +00065                 GLM_FUNC_DECL explicit tmat3x4(
      +00066                         col_type const & v0, 
      +00067                         col_type const & v1,
      +00068                         col_type const & v2);
      +00069 
      +00071                 // Conversions
      +00072                 template <typename U> 
      +00073                 GLM_FUNC_DECL explicit tmat3x4(
      +00074             U const & x);
      +00075                         
      +00076                 template 
      +00077         <
      +00078             typename X1, typename Y1, typename Z1, typename W1, 
      +00079             typename X2, typename Y2, typename Z2, typename W2, 
      +00080             typename X3, typename Y3, typename Z3, typename W3 
      +00081         > 
      +00082                 GLM_FUNC_DECL explicit tmat3x4(
      +00083             X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1, 
      +00084             X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2, 
      +00085             X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3);
      +00086                         
      +00087                 template <typename V1, typename V2, typename V3> 
      +00088                 GLM_FUNC_DECL explicit tmat3x4(
      +00089             tvec4<V1> const & v1, 
      +00090             tvec4<V2> const & v2,
      +00091             tvec4<V3> const & v3);
      +00092             
      +00093                 // Matrix conversion
      +00094                 template <typename U> 
      +00095                 GLM_FUNC_DECL explicit tmat3x4(tmat3x4<U> const & m);
      +00096 
      +00097                 GLM_FUNC_DECL explicit tmat3x4(tmat2x2<T> const & x);
      +00098                 GLM_FUNC_DECL explicit tmat3x4(tmat3x3<T> const & x);
      +00099                 GLM_FUNC_DECL explicit tmat3x4(tmat4x4<T> const & x);
      +00100                 GLM_FUNC_DECL explicit tmat3x4(tmat2x3<T> const & x);
      +00101                 GLM_FUNC_DECL explicit tmat3x4(tmat3x2<T> const & x);
      +00102                 GLM_FUNC_DECL explicit tmat3x4(tmat2x4<T> const & x);
      +00103                 GLM_FUNC_DECL explicit tmat3x4(tmat4x2<T> const & x);
      +00104                 GLM_FUNC_DECL explicit tmat3x4(tmat4x3<T> const & x);
      +00105 
      +00106                 // Accesses
      +00107                 col_type & operator[](size_type i);
      +00108                 col_type const & operator[](size_type i) const;
      +00109 
      +00110                 // Unary updatable operators
      +00111                 GLM_FUNC_DECL tmat3x4<T> & operator=  (tmat3x4<T> const & m);
      +00112                 template <typename U> 
      +00113                 GLM_FUNC_DECL tmat3x4<T> & operator=  (tmat3x4<U> const & m);
      +00114                 template <typename U> 
      +00115                 GLM_FUNC_DECL tmat3x4<T> & operator+= (U const & s);
      +00116                 template <typename U> 
      +00117                 GLM_FUNC_DECL tmat3x4<T> & operator+= (tmat3x4<U> const & m);
      +00118                 template <typename U> 
      +00119                 GLM_FUNC_DECL tmat3x4<T> & operator-= (U const & s);
      +00120                 template <typename U> 
      +00121                 GLM_FUNC_DECL tmat3x4<T> & operator-= (tmat3x4<U> const & m);
      +00122                 template <typename U> 
      +00123                 GLM_FUNC_DECL tmat3x4<T> & operator*= (U const & s);
      +00124                 template <typename U> 
      +00125                 GLM_FUNC_DECL tmat3x4<T> & operator*= (tmat3x4<U> const & m);
      +00126                 template <typename U> 
      +00127                 GLM_FUNC_DECL tmat3x4<T> & operator/= (U const & s);
      +00128 
      +00129                 GLM_FUNC_DECL tmat3x4<T> & operator++ ();
      +00130                 GLM_FUNC_DECL tmat3x4<T> & operator-- ();
      +00131         };
      +00132 
      +00133         // Binary operators
      +00134         template <typename T> 
      +00135         tmat3x4<T> operator+ (
      +00136                 tmat3x4<T> const & m, 
      +00137                 typename tmat3x4<T>::value_type const & s);
      +00138             
      +00139         template <typename T> 
      +00140         tmat3x4<T> operator+ (
      +00141                 tmat3x4<T> const & m1, 
      +00142                 tmat3x4<T> const & m2);
      +00143             
      +00144         template <typename T> 
      +00145         tmat3x4<T> operator- (
      +00146                 tmat3x4<T> const & m, 
      +00147                 typename tmat3x4<T>::value_type const & s);
      +00148 
      +00149         template <typename T> 
      +00150         tmat3x4<T> operator- (
      +00151                 tmat3x4<T> const & m1, 
      +00152                 tmat3x4<T> const & m2);
      +00153 
      +00154         template <typename T> 
      +00155         tmat3x4<T> operator* (
      +00156                 tmat3x4<T> const & m, 
      +00157                 typename tmat3x4<T>::value_type const & s);
      +00158 
      +00159         template <typename T> 
      +00160         tmat3x4<T> operator* (
      +00161                 typename tmat3x4<T>::value_type const & s, 
      +00162                 tmat3x4<T> const & m);
      +00163 
      +00164         template <typename T>
      +00165         typename tmat3x4<T>::col_type operator* (
      +00166                 tmat3x4<T> const & m, 
      +00167                 typename tmat3x4<T>::row_type const & v);
      +00168 
      +00169         template <typename T> 
      +00170         typename tmat3x4<T>::row_type operator* (
      +00171                 typename tmat3x4<T>::col_type const & v, 
      +00172                 tmat3x4<T> const & m);
      +00173 
      +00174         template <typename T>
      +00175         tmat4x4<T> operator* (
      +00176                 tmat3x4<T> const & m1, 
      +00177                 tmat4x3<T> const & m2);
      +00178 
      +00179         template <typename T> 
      +00180         tmat3x4<T> operator/ (
      +00181                 tmat3x4<T> const & m, 
      +00182                 typename tmat3x4<T>::value_type const & s);
      +00183 
      +00184         template <typename T> 
      +00185         tmat3x4<T> operator/ (
      +00186                 typename tmat3x4<T>::value_type const & s, 
      +00187                 tmat3x4<T> const & m);
      +00188 
      +00189         // Unary constant operators
      +00190         template <typename T> 
      +00191         tmat3x4<T> const operator-  (
      +00192                 tmat3x4<T> const & m);
      +00193 
      +00194         template <typename T> 
      +00195         tmat3x4<T> const operator-- (
      +00196                 tmat3x4<T> const & m, 
      +00197                 int);
      +00198 
      +00199         template <typename T> 
      +00200         tmat3x4<T> const operator++ (
      +00201                 tmat3x4<T> const & m, 
      +00202                 int);
      +00203 
      +00204 }//namespace detail
      +00205 
      +00206 namespace core{
      +00207 namespace type{
      +00208 namespace precision
      +00209 {
      +00213         typedef detail::tmat3x4<lowp_float>             lowp_mat3x4;
      +00217         typedef detail::tmat3x4<mediump_float>  mediump_mat3x4;
      +00221         typedef detail::tmat3x4<highp_float>    highp_mat3x4;
      +00222 
      +00223 }//namespace precision
      +00224 }//namespace type
      +00225 }//namespace core
      +00226 }//namespace glm
      +00227 
      +00228 #ifndef GLM_EXTERNAL_TEMPLATE
      +00229 #include "type_mat3x4.inl"
      +00230 #endif
      +00231 
      +00232 #endif //glm_core_type_mat3x4
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00122_source.html b/doc/api-0.9.2/a00122_source.html new file mode 100644 index 00000000..e81beb96 --- /dev/null +++ b/doc/api-0.9.2/a00122_source.html @@ -0,0 +1,271 @@ + + + + +type_mat4x2.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_mat4x2.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-10-01
      +00005 // Updated : 2010-02-11
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_mat4x2.hpp
      +00009 
      +00010 #ifndef glm_core_type_mat4x2
      +00011 #define glm_core_type_mat4x2
      +00012 
      +00013 #include "type_mat.hpp"
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018         template <typename T> struct tvec1;
      +00019         template <typename T> struct tvec2;
      +00020         template <typename T> struct tvec3;
      +00021         template <typename T> struct tvec4;
      +00022         template <typename T> struct tmat2x2;
      +00023         template <typename T> struct tmat2x3;
      +00024         template <typename T> struct tmat2x4;
      +00025         template <typename T> struct tmat3x2;
      +00026         template <typename T> struct tmat3x3;
      +00027         template <typename T> struct tmat3x4;
      +00028         template <typename T> struct tmat4x2;
      +00029         template <typename T> struct tmat4x3;
      +00030         template <typename T> struct tmat4x4;
      +00031 
      +00034         template <typename T> 
      +00035         struct tmat4x2
      +00036         {
      +00037                 enum ctor{null};
      +00038                 typedef T value_type;
      +00039                 typedef std::size_t size_type;
      +00040                 typedef tvec2<T> col_type;
      +00041                 typedef tvec4<T> row_type;
      +00042                 static GLM_FUNC_DECL size_type col_size();
      +00043                 static GLM_FUNC_DECL size_type row_size();
      +00044 
      +00045                 typedef tmat4x2<T> type;
      +00046                 typedef tmat2x4<T> transpose_type;
      +00047 
      +00048         private:
      +00049                 // Data 
      +00050                 col_type value[4];
      +00051 
      +00052         public:
      +00053                 // Constructors
      +00054                 GLM_FUNC_DECL tmat4x2();
      +00055                 GLM_FUNC_DECL tmat4x2(tmat4x2 const & m);
      +00056 
      +00057                 GLM_FUNC_DECL explicit tmat4x2(
      +00058                         ctor Null);
      +00059                 GLM_FUNC_DECL explicit tmat4x2(
      +00060                         value_type const & x);
      +00061                 GLM_FUNC_DECL explicit tmat4x2(
      +00062                         value_type const & x0, value_type const & y0,
      +00063                         value_type const & x1, value_type const & y1,
      +00064                         value_type const & x2, value_type const & y2,
      +00065                         value_type const & x3, value_type const & y3);
      +00066                 GLM_FUNC_DECL explicit tmat4x2(
      +00067                         col_type const & v0, 
      +00068                         col_type const & v1,
      +00069                         col_type const & v2,
      +00070                         col_type const & v3);
      +00071             
      +00073                 // Conversions
      +00074                 template <typename U> 
      +00075                 GLM_FUNC_DECL explicit tmat4x2(
      +00076             U const & x);
      +00077                         
      +00078                 template 
      +00079         <
      +00080             typename X1, typename Y1, 
      +00081             typename X2, typename Y2, 
      +00082             typename X3, typename Y3,
      +00083             typename X4, typename Y4
      +00084         > 
      +00085                 GLM_FUNC_DECL explicit tmat4x2(
      +00086             X1 const & x1, Y1 const & y1, 
      +00087             X2 const & x2, Y2 const & y2,
      +00088             X3 const & x3, Y3 const & y3,
      +00089             X4 const & x4, Y4 const & y4);
      +00090                         
      +00091                 template <typename V1, typename V2, typename V3, typename V4> 
      +00092                 GLM_FUNC_DECL explicit tmat4x2(
      +00093             tvec2<V1> const & v1, 
      +00094             tvec2<V2> const & v2,
      +00095             tvec2<V3> const & v3,
      +00096             tvec2<V4> const & v4);
      +00097             
      +00098                 // Matrix conversions
      +00099                 template <typename U> 
      +00100                 GLM_FUNC_DECL explicit tmat4x2(tmat4x2<U> const & m);
      +00101                         
      +00102                 GLM_FUNC_DECL explicit tmat4x2(tmat2x2<T> const & x);
      +00103                 GLM_FUNC_DECL explicit tmat4x2(tmat3x3<T> const & x);
      +00104                 GLM_FUNC_DECL explicit tmat4x2(tmat4x4<T> const & x);
      +00105                 GLM_FUNC_DECL explicit tmat4x2(tmat2x3<T> const & x);
      +00106                 GLM_FUNC_DECL explicit tmat4x2(tmat3x2<T> const & x);
      +00107                 GLM_FUNC_DECL explicit tmat4x2(tmat2x4<T> const & x);
      +00108                 GLM_FUNC_DECL explicit tmat4x2(tmat4x3<T> const & x);
      +00109                 GLM_FUNC_DECL explicit tmat4x2(tmat3x4<T> const & x);
      +00110 
      +00111                 // Accesses
      +00112                 GLM_FUNC_DECL col_type & operator[](size_type i);
      +00113                 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
      +00114 
      +00115                 // Unary updatable operators
      +00116                 GLM_FUNC_DECL tmat4x2<T>& operator=  (tmat4x2<T> const & m);
      +00117                 template <typename U> 
      +00118                 GLM_FUNC_DECL tmat4x2<T>& operator=  (tmat4x2<U> const & m);
      +00119                 template <typename U> 
      +00120                 GLM_FUNC_DECL tmat4x2<T>& operator+= (U const & s);
      +00121                 template <typename U> 
      +00122                 GLM_FUNC_DECL tmat4x2<T>& operator+= (tmat4x2<U> const & m);
      +00123                 template <typename U> 
      +00124                 GLM_FUNC_DECL tmat4x2<T>& operator-= (U const & s);
      +00125                 template <typename U> 
      +00126                 GLM_FUNC_DECL tmat4x2<T>& operator-= (tmat4x2<U> const & m);
      +00127                 template <typename U> 
      +00128                 GLM_FUNC_DECL tmat4x2<T>& operator*= (U const & s);
      +00129                 template <typename U> 
      +00130                 GLM_FUNC_DECL tmat4x2<T>& operator*= (tmat4x2<U> const & m);
      +00131                 template <typename U> 
      +00132                 GLM_FUNC_DECL tmat4x2<T>& operator/= (U const & s);
      +00133 
      +00134                 GLM_FUNC_DECL tmat4x2<T>& operator++ ();
      +00135                 GLM_FUNC_DECL tmat4x2<T>& operator-- ();
      +00136         };
      +00137 
      +00138         // Binary operators
      +00139         template <typename T> 
      +00140         tmat4x2<T> operator+ (
      +00141                 tmat4x2<T> const & m, 
      +00142                 typename tmat4x2<T>::value_type const & s);
      +00143             
      +00144         template <typename T> 
      +00145         tmat4x2<T> operator+ (
      +00146                 tmat4x2<T> const & m1, 
      +00147                 tmat4x2<T> const & m2);
      +00148             
      +00149         template <typename T> 
      +00150         tmat4x2<T> operator- (
      +00151                 tmat4x2<T> const & m, 
      +00152                 typename tmat4x2<T>::value_type const & s);
      +00153 
      +00154         template <typename T> 
      +00155         tmat4x2<T> operator- (
      +00156                 tmat4x2<T> const & m1, 
      +00157                 tmat4x2<T> const & m2);
      +00158 
      +00159         template <typename T> 
      +00160         tmat4x2<T> operator* (
      +00161                 tmat4x2<T> const & m, 
      +00162                 typename tmat4x2<T>::value_type const & s);
      +00163 
      +00164         template <typename T> 
      +00165         tmat4x2<T> operator* (
      +00166                 typename tmat4x2<T>::value_type const & s, 
      +00167                 tmat4x2<T> const & m);
      +00168 
      +00169         template <typename T>
      +00170         typename tmat4x2<T>::col_type operator* (
      +00171                 tmat4x2<T> const & m, 
      +00172                 typename tmat4x2<T>::row_type const & v);
      +00173 
      +00174         template <typename T> 
      +00175         typename tmat4x2<T>::row_type operator* (
      +00176                 typename tmat4x2<T>::col_type const & v, 
      +00177                 tmat4x2<T> const & m);
      +00178 
      +00179         template <typename T> 
      +00180         tmat2x2<T> operator* (
      +00181                 tmat4x2<T> const & m1, 
      +00182                 tmat2x4<T> const & m2);
      +00183 
      +00184         template <typename T> 
      +00185         tmat4x2<T> operator/ (
      +00186                 tmat4x2<T> const & m, 
      +00187                 typename tmat4x2<T>::value_type const & s);
      +00188 
      +00189         template <typename T> 
      +00190         tmat4x2<T> operator/ (
      +00191                 typename tmat4x2<T>::value_type const & s, 
      +00192                 tmat4x2<T> const & m);
      +00193 
      +00194         // Unary constant operators
      +00195         template <typename T> 
      +00196         tmat4x2<T> const operator-  (
      +00197                 tmat4x2<T> const & m);
      +00198 
      +00199         template <typename T> 
      +00200         tmat4x2<T> const operator-- (
      +00201                 tmat4x2<T> const & m, 
      +00202                 int);
      +00203 
      +00204         template <typename T> 
      +00205         tmat4x2<T> const operator++ (
      +00206                 tmat4x2<T> const & m, 
      +00207                 int);
      +00208 
      +00209 } //namespace detail
      +00210 
      +00211 namespace core{
      +00212 namespace type{
      +00213 namespace precision
      +00214 {
      +00219         typedef detail::tmat4x2<lowp_float>             lowp_mat4x2;
      +00220 
      +00225         typedef detail::tmat4x2<mediump_float>  mediump_mat4x2;
      +00226 
      +00231         typedef detail::tmat4x2<highp_float>    highp_mat4x2;
      +00232 
      +00233 }//namespace precision
      +00234 }//namespace type
      +00235 }//namespace core
      +00236 }//namespace glm
      +00237 
      +00238 #ifndef GLM_EXTERNAL_TEMPLATE
      +00239 #include "type_mat4x2.inl"
      +00240 #endif
      +00241 
      +00242 #endif //glm_core_type_mat4x2
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00123_source.html b/doc/api-0.9.2/a00123_source.html new file mode 100644 index 00000000..ee69d94a --- /dev/null +++ b/doc/api-0.9.2/a00123_source.html @@ -0,0 +1,269 @@ + + + + +type_mat4x3.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_mat4x3.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-08-04
      +00005 // Updated : 2010-02-11
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_mat4x3.hpp
      +00009 
      +00010 #ifndef glm_core_type_mat4x3
      +00011 #define glm_core_type_mat4x3
      +00012 
      +00013 #include "type_mat.hpp"
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018         template <typename T> struct tvec1;
      +00019         template <typename T> struct tvec2;
      +00020         template <typename T> struct tvec3;
      +00021         template <typename T> struct tvec4;
      +00022         template <typename T> struct tmat2x2;
      +00023         template <typename T> struct tmat2x3;
      +00024         template <typename T> struct tmat2x4;
      +00025         template <typename T> struct tmat3x2;
      +00026         template <typename T> struct tmat3x3;
      +00027         template <typename T> struct tmat3x4;
      +00028         template <typename T> struct tmat4x2;
      +00029         template <typename T> struct tmat4x3;
      +00030         template <typename T> struct tmat4x4;
      +00031 
      +00034         template <typename T> 
      +00035         struct tmat4x3
      +00036         {
      +00037                 enum ctor{null};
      +00038                 typedef T value_type;
      +00039                 typedef std::size_t size_type;
      +00040                 typedef tvec3<T> col_type;
      +00041                 typedef tvec4<T> row_type;
      +00042                 static GLM_FUNC_DECL size_type col_size();
      +00043                 static GLM_FUNC_DECL size_type row_size();
      +00044 
      +00045                 typedef tmat4x3<T> type;
      +00046                 typedef tmat3x4<T> transpose_type;
      +00047 
      +00048         private:
      +00049                 // Data 
      +00050                 col_type value[4];
      +00051 
      +00052         public:
      +00053                 // Constructors
      +00054                 GLM_FUNC_DECL tmat4x3();
      +00055                 GLM_FUNC_DECL tmat4x3(tmat4x3 const & m);
      +00056 
      +00057                 GLM_FUNC_DECL explicit tmat4x3(
      +00058                         ctor Null);
      +00059                 GLM_FUNC_DECL explicit tmat4x3(
      +00060                         value_type const & x);
      +00061                 GLM_FUNC_DECL explicit tmat4x3(
      +00062                         value_type const & x0, value_type const & y0, value_type const & z0,
      +00063                         value_type const & x1, value_type const & y1, value_type const & z1,
      +00064                         value_type const & x2, value_type const & y2, value_type const & z2,
      +00065                         value_type const & x3, value_type const & y3, value_type const & z3);
      +00066                 GLM_FUNC_DECL explicit tmat4x3(
      +00067                         col_type const & v0, 
      +00068                         col_type const & v1,
      +00069                         col_type const & v2,
      +00070             col_type const & v3);
      +00071             
      +00073                 // Conversions
      +00074                 template <typename U> 
      +00075                 GLM_FUNC_DECL explicit tmat4x3(
      +00076             U const & x);
      +00077                         
      +00078                 template <
      +00079             typename X1, typename Y1, typename Z1, 
      +00080             typename X2, typename Y2, typename Z2, 
      +00081             typename X3, typename Y3, typename Z3, 
      +00082             typename X4, typename Y4, typename Z4> 
      +00083                 GLM_FUNC_DECL explicit tmat4x3(
      +00084             X1 const & x1, Y1 const & y1, Z1 const & z1, 
      +00085             X2 const & x2, Y2 const & y2, Z2 const & z2, 
      +00086             X3 const & x3, Y3 const & y3, Z3 const & z3, 
      +00087             X4 const & x4, Y4 const & y4, Z4 const & z4);
      +00088                         
      +00089                 template <typename V1, typename V2, typename V3, typename V4> 
      +00090                 GLM_FUNC_DECL explicit tmat4x3(
      +00091             tvec3<V1> const & v1, 
      +00092             tvec3<V2> const & v2,
      +00093             tvec3<V3> const & v3,
      +00094             tvec3<V4> const & v4);
      +00095             
      +00096                 // Matrix conversions
      +00097                 template <typename U> 
      +00098                 GLM_FUNC_DECL explicit tmat4x3(tmat4x3<U> const & m);
      +00099                         
      +00100                 GLM_FUNC_DECL explicit tmat4x3(tmat2x2<T> const & x);
      +00101                 GLM_FUNC_DECL explicit tmat4x3(tmat3x3<T> const & x);
      +00102                 GLM_FUNC_DECL explicit tmat4x3(tmat4x4<T> const & x);
      +00103                 GLM_FUNC_DECL explicit tmat4x3(tmat2x3<T> const & x);
      +00104                 GLM_FUNC_DECL explicit tmat4x3(tmat3x2<T> const & x);
      +00105                 GLM_FUNC_DECL explicit tmat4x3(tmat2x4<T> const & x);
      +00106                 GLM_FUNC_DECL explicit tmat4x3(tmat4x2<T> const & x);
      +00107                 GLM_FUNC_DECL explicit tmat4x3(tmat3x4<T> const & x);
      +00108 
      +00109                 // Accesses
      +00110                 col_type & operator[](size_type i);
      +00111                 col_type const & operator[](size_type i) const;
      +00112 
      +00113                 // Unary updatable operators
      +00114                 GLM_FUNC_DECL tmat4x3<T> & operator=  (tmat4x3<T> const & m);
      +00115                 template <typename U> 
      +00116                 GLM_FUNC_DECL tmat4x3<T> & operator=  (tmat4x3<U> const & m);
      +00117                 template <typename U> 
      +00118                 GLM_FUNC_DECL tmat4x3<T> & operator+= (U const & s);
      +00119                 template <typename U> 
      +00120                 GLM_FUNC_DECL tmat4x3<T> & operator+= (tmat4x3<U> const & m);
      +00121                 template <typename U> 
      +00122                 GLM_FUNC_DECL tmat4x3<T> & operator-= (U const & s);
      +00123                 template <typename U> 
      +00124                 GLM_FUNC_DECL tmat4x3<T> & operator-= (tmat4x3<U> const & m);
      +00125                 template <typename U> 
      +00126                 GLM_FUNC_DECL tmat4x3<T> & operator*= (U const & s);
      +00127                 template <typename U> 
      +00128                 GLM_FUNC_DECL tmat4x3<T> & operator*= (tmat4x3<U> const & m);
      +00129                 template <typename U> 
      +00130                 GLM_FUNC_DECL tmat4x3<T> & operator/= (U const & s);
      +00131 
      +00132                 GLM_FUNC_DECL tmat4x3<T> & operator++ ();
      +00133                 GLM_FUNC_DECL tmat4x3<T> & operator-- ();
      +00134         };
      +00135 
      +00136         // Binary operators
      +00137         template <typename T> 
      +00138         tmat4x3<T> operator+ (
      +00139                 tmat4x3<T> const & m, 
      +00140                 typename tmat4x3<T>::value_type const & s);
      +00141             
      +00142         template <typename T> 
      +00143         tmat4x3<T> operator+ (
      +00144                 tmat4x3<T> const & m1, 
      +00145                 tmat4x3<T> const & m2);
      +00146             
      +00147         template <typename T> 
      +00148         tmat4x3<T> operator- (
      +00149                 tmat4x3<T> const & m, 
      +00150                 typename tmat4x3<T>::value_type const & s);
      +00151 
      +00152         template <typename T> 
      +00153         tmat4x3<T> operator- (
      +00154                 tmat4x3<T> const & m1, 
      +00155                 tmat4x3<T> const & m2);
      +00156 
      +00157         template <typename T> 
      +00158         tmat4x3<T> operator* (
      +00159                 tmat4x3<T> const & m, 
      +00160                 typename tmat4x3<T>::value_type const & s);
      +00161 
      +00162         template <typename T> 
      +00163         tmat4x3<T> operator* (
      +00164                 typename tmat4x3<T>::value_type const & s, 
      +00165                 tmat4x3<T> const & m);
      +00166 
      +00167         template <typename T>
      +00168         typename tmat4x3<T>::col_type operator* (
      +00169                 tmat4x3<T> const & m, 
      +00170                 typename tmat4x3<T>::row_type const & v);
      +00171 
      +00172         template <typename T> 
      +00173         typename tmat4x3<T>::row_type operator* (
      +00174                 typename tmat4x3<T>::col_type const & v, 
      +00175                 tmat4x3<T> const & m);
      +00176 
      +00177         template <typename T> 
      +00178         tmat3x3<T> operator* (
      +00179                 tmat4x3<T> const & m1, 
      +00180                 tmat3x4<T> const & m2);
      +00181 
      +00182         template <typename T> 
      +00183         tmat4x3<T> operator/ (
      +00184                 tmat4x3<T> const & m, 
      +00185                 typename tmat4x3<T>::value_type const & s);
      +00186 
      +00187         template <typename T> 
      +00188         tmat4x3<T> operator/ (
      +00189                 typename tmat4x3<T>::value_type const & s, 
      +00190                 tmat4x3<T> const & m);
      +00191 
      +00192         // Unary constant operators
      +00193         template <typename T> 
      +00194         tmat4x3<T> const operator- (
      +00195                 tmat4x3<T> const & m);
      +00196 
      +00197         template <typename T> 
      +00198         tmat4x3<T> const operator-- (
      +00199                 tmat4x3<T> const & m, 
      +00200                 int);
      +00201 
      +00202         template <typename T> 
      +00203         tmat4x3<T> const operator++ (
      +00204                 tmat4x3<T> const & m, 
      +00205                 int);
      +00206 
      +00207 }//namespace detail
      +00208 
      +00209 namespace core{
      +00210 namespace type{
      +00211 namespace precision
      +00212 {
      +00217         typedef detail::tmat4x3<lowp_float>             lowp_mat4x3;
      +00218 
      +00223         typedef detail::tmat4x3<mediump_float>  mediump_mat4x3;
      +00224 
      +00229         typedef detail::tmat4x3<highp_float>    highp_mat4x3;
      +00230 
      +00231 }//namespace precision
      +00232 }//namespace type
      +00233 }//namespace core
      +00234 }//namespace glm
      +00235 
      +00236 #ifndef GLM_EXTERNAL_TEMPLATE
      +00237 #include "type_mat4x3.inl"
      +00238 #endif //GLM_EXTERNAL_TEMPLATE
      +00239 
      +00240 #endif//glm_core_type_mat4x3
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00124_source.html b/doc/api-0.9.2/a00124_source.html new file mode 100644 index 00000000..546870e2 --- /dev/null +++ b/doc/api-0.9.2/a00124_source.html @@ -0,0 +1,303 @@ + + + + +type_mat4x4.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_mat4x4.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-01-27
      +00005 // Updated : 2011-06-02
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_mat4x4.hpp
      +00009 
      +00010 #ifndef glm_core_type_mat4x4
      +00011 #define glm_core_type_mat4x4
      +00012 
      +00013 #include "type_mat.hpp"
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018         template <typename T> struct tvec1;
      +00019         template <typename T> struct tvec2;
      +00020         template <typename T> struct tvec3;
      +00021         template <typename T> struct tvec4;
      +00022         template <typename T> struct tmat2x2;
      +00023         template <typename T> struct tmat2x3;
      +00024         template <typename T> struct tmat2x4;
      +00025         template <typename T> struct tmat3x2;
      +00026         template <typename T> struct tmat3x3;
      +00027         template <typename T> struct tmat3x4;
      +00028         template <typename T> struct tmat4x2;
      +00029         template <typename T> struct tmat4x3;
      +00030         template <typename T> struct tmat4x4;
      +00031 
      +00034         template <typename T> 
      +00035         struct tmat4x4
      +00036         {
      +00037                 enum ctor{null};
      +00038                 typedef T value_type;
      +00039                 typedef std::size_t size_type;
      +00040                 typedef tvec4<T> col_type;
      +00041                 typedef tvec4<T> row_type;
      +00042                 static GLM_FUNC_DECL size_type col_size();
      +00043                 static GLM_FUNC_DECL size_type row_size();
      +00044 
      +00045                 typedef tmat4x4<T> type;
      +00046                 typedef tmat4x4<T> transpose_type;
      +00047 
      +00048         public:
      +00049                 // Implementation detail
      +00050                 GLM_FUNC_DECL tmat4x4<T> _inverse() const;
      +00051 
      +00052         private:
      +00053                 // Data 
      +00054                 col_type value[4];
      +00055 
      +00056         public:
      +00057                 // Constructors
      +00058                 GLM_FUNC_DECL tmat4x4();
      +00059                 GLM_FUNC_DECL tmat4x4(tmat4x4 const & m);
      +00060 
      +00061                 GLM_FUNC_DECL explicit tmat4x4(
      +00062                         ctor Null);
      +00063                 GLM_FUNC_DECL explicit tmat4x4(
      +00064                         value_type const & x);
      +00065                 GLM_FUNC_DECL explicit tmat4x4(
      +00066                         value_type const & x0, value_type const & y0, value_type const & z0, value_type const & w0,
      +00067                         value_type const & x1, value_type const & y1, value_type const & z1, value_type const & w1,
      +00068                         value_type const & x2, value_type const & y2, value_type const & z2, value_type const & w2,
      +00069                         value_type const & x3, value_type const & y3, value_type const & z3, value_type const & w3);
      +00070                 GLM_FUNC_DECL explicit tmat4x4(
      +00071                         col_type const & v0, 
      +00072                         col_type const & v1,
      +00073                         col_type const & v2,
      +00074                         col_type const & v3);
      +00075 
      +00077                 // Conversions
      +00078                 template <typename U> 
      +00079                 GLM_FUNC_DECL explicit tmat4x4(
      +00080             U const & x);
      +00081                         
      +00082                 template <
      +00083             typename X1, typename Y1, typename Z1, typename W1, 
      +00084             typename X2, typename Y2, typename Z2, typename W2, 
      +00085             typename X3, typename Y3, typename Z3, typename W3, 
      +00086             typename X4, typename Y4, typename Z4, typename W4> 
      +00087                 GLM_FUNC_DECL explicit tmat4x4(
      +00088             X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1, 
      +00089             X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2, 
      +00090             X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3, 
      +00091             X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4);
      +00092                         
      +00093                 template <typename V1, typename V2, typename V3, typename V4> 
      +00094                 GLM_FUNC_DECL explicit tmat4x4(
      +00095             tvec4<V1> const & v1, 
      +00096             tvec4<V2> const & v2,
      +00097             tvec4<V3> const & v3,
      +00098             tvec4<V4> const & v4);
      +00099             
      +00100                 // Matrix conversions
      +00101                 template <typename U> 
      +00102                 GLM_FUNC_DECL explicit tmat4x4(tmat4x4<U> const & m);
      +00103 
      +00104                 GLM_FUNC_DECL explicit tmat4x4(tmat2x2<T> const & x);
      +00105                 GLM_FUNC_DECL explicit tmat4x4(tmat3x3<T> const & x);
      +00106                 GLM_FUNC_DECL explicit tmat4x4(tmat2x3<T> const & x);
      +00107                 GLM_FUNC_DECL explicit tmat4x4(tmat3x2<T> const & x);
      +00108                 GLM_FUNC_DECL explicit tmat4x4(tmat2x4<T> const & x);
      +00109                 GLM_FUNC_DECL explicit tmat4x4(tmat4x2<T> const & x);
      +00110                 GLM_FUNC_DECL explicit tmat4x4(tmat3x4<T> const & x);
      +00111                 GLM_FUNC_DECL explicit tmat4x4(tmat4x3<T> const & x);
      +00112 
      +00113                 // Accesses
      +00114                 GLM_FUNC_DECL col_type & operator[](size_type i);
      +00115                 GLM_FUNC_DECL col_type const & operator[](size_type i) const;
      +00116 
      +00117                 // Unary updatable operators
      +00118                 GLM_FUNC_DECL tmat4x4<T> & operator=  (tmat4x4<T> const & m);
      +00119                 template <typename U>
      +00120                 GLM_FUNC_DECL tmat4x4<T> & operator=  (tmat4x4<U> const & m);
      +00121                 template <typename U>
      +00122                 GLM_FUNC_DECL tmat4x4<T> & operator+= (U const & s);
      +00123                 template <typename U>
      +00124                 GLM_FUNC_DECL tmat4x4<T> & operator+= (tmat4x4<U> const & m);
      +00125                 template <typename U>
      +00126                 GLM_FUNC_DECL tmat4x4<T> & operator-= (U const & s);
      +00127                 template <typename U>
      +00128                 GLM_FUNC_DECL tmat4x4<T> & operator-= (tmat4x4<U> const & m);
      +00129                 template <typename U>
      +00130                 GLM_FUNC_DECL tmat4x4<T> & operator*= (U const & s);
      +00131                 template <typename U>
      +00132                 GLM_FUNC_DECL tmat4x4<T> & operator*= (tmat4x4<U> const & m);
      +00133                 template <typename U>
      +00134                 GLM_FUNC_DECL tmat4x4<T> & operator/= (U const & s);
      +00135                 template <typename U>
      +00136                 GLM_FUNC_DECL tmat4x4<T> & operator/= (tmat4x4<U> const & m);
      +00137                 GLM_FUNC_DECL tmat4x4<T> & operator++ ();
      +00138                 GLM_FUNC_DECL tmat4x4<T> & operator-- ();
      +00139         };
      +00140 
      +00141         // Binary operators
      +00142         template <typename T> 
      +00143         tmat4x4<T> operator+ (
      +00144                 tmat4x4<T> const & m, 
      +00145                 typename tmat4x4<T>::value_type const & s);
      +00146 
      +00147         template <typename T> 
      +00148         tmat4x4<T> operator+ (
      +00149                 typename tmat4x4<T>::value_type const & s, 
      +00150                 tmat4x4<T> const & m);
      +00151 
      +00152         template <typename T> 
      +00153         tmat4x4<T> operator+ (
      +00154                 tmat4x4<T> const & m1, 
      +00155                 tmat4x4<T> const & m2);
      +00156             
      +00157         template <typename T> 
      +00158         tmat4x4<T> operator- (
      +00159                 tmat4x4<T> const & m, 
      +00160                 typename tmat4x4<T>::value_type const & s);
      +00161 
      +00162         template <typename T> 
      +00163         tmat4x4<T> operator- (
      +00164                 typename tmat4x4<T>::value_type const & s, 
      +00165                 tmat4x4<T> const & m);
      +00166 
      +00167         template <typename T> 
      +00168         tmat4x4<T> operator- (
      +00169                 tmat4x4<T> const & m1, 
      +00170                 tmat4x4<T> const & m2);
      +00171 
      +00172         template <typename T> 
      +00173         tmat4x4<T> operator* (
      +00174                 tmat4x4<T> const & m, 
      +00175                 typename tmat4x4<T>::value_type const & s);
      +00176 
      +00177         template <typename T> 
      +00178         tmat4x4<T> operator* (
      +00179                 typename tmat4x4<T>::value_type const & s, 
      +00180                 tmat4x4<T> const & m);
      +00181 
      +00182         template <typename T> 
      +00183         typename tmat4x4<T>::col_type operator* (
      +00184                 tmat4x4<T> const & m, 
      +00185                 typename tmat4x4<T>::row_type const & v);
      +00186 
      +00187         template <typename T> 
      +00188         typename tmat4x4<T>::row_type operator* (
      +00189                 typename tmat4x4<T>::col_type const & v, 
      +00190                 tmat4x4<T> const & m);
      +00191 
      +00192         template <typename T> 
      +00193         tmat4x4<T> operator* (
      +00194                 tmat4x4<T> const & m1, 
      +00195                 tmat4x4<T> const & m2);
      +00196 
      +00197         template <typename T> 
      +00198         tmat4x4<T> operator/ (
      +00199                 tmat4x4<T> const & m, 
      +00200                 typename tmat4x4<T>::value_type const & s);
      +00201 
      +00202         template <typename T> 
      +00203         tmat4x4<T> operator/ (
      +00204                 typename tmat4x4<T>::value_type const & s, 
      +00205                 tmat4x4<T> const & m);
      +00206 
      +00207         template <typename T> 
      +00208         typename tmat4x4<T>::col_type operator/ (
      +00209                 tmat4x4<T> const & m, 
      +00210                 typename tmat4x4<T>::row_type const & v);
      +00211 
      +00212         template <typename T> 
      +00213         typename tmat4x4<T>::row_type operator/ (
      +00214                 typename tmat4x4<T>::col_type & v, 
      +00215                 tmat4x4<T> const & m);
      +00216 
      +00217         template <typename T> 
      +00218         tmat4x4<T> operator/ (
      +00219                 tmat4x4<T> const & m1, 
      +00220                 tmat4x4<T> const & m2);
      +00221 
      +00222         // Unary constant operators
      +00223         template <typename T> 
      +00224         tmat4x4<T> const operator-  (
      +00225                 tmat4x4<T> const & m);
      +00226 
      +00227         template <typename T> 
      +00228         tmat4x4<T> const operator-- (
      +00229                 tmat4x4<T> const & m, int);
      +00230 
      +00231         template <typename T> 
      +00232         tmat4x4<T> const operator++ (
      +00233                 tmat4x4<T> const & m, int);
      +00234 
      +00235 } //namespace detail
      +00236 
      +00237 namespace core{
      +00238 namespace type{
      +00239 namespace precision
      +00240 {
      +00245         typedef detail::tmat4x4<lowp_float>             lowp_mat4;
      +00246 
      +00251         typedef detail::tmat4x4<mediump_float>  mediump_mat4;
      +00252 
      +00257         typedef detail::tmat4x4<highp_float>    highp_mat4;
      +00258 
      +00263         typedef detail::tmat4x4<lowp_float>             lowp_mat4x4;
      +00264 
      +00269         typedef detail::tmat4x4<mediump_float>  mediump_mat4x4;
      +00270 
      +00275         typedef detail::tmat4x4<highp_float>    highp_mat4x4;
      +00276 
      +00277 }//namespace precision
      +00278 }//namespace type
      +00279 }//namespace core
      +00280 }//namespace glm
      +00281 
      +00282 #ifndef GLM_EXTERNAL_TEMPLATE
      +00283 #include "type_mat4x4.inl"
      +00284 #endif//GLM_EXTERNAL_TEMPLATE
      +00285 
      +00286 #endif//glm_core_type_mat4x4
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00125_source.html b/doc/api-0.9.2/a00125_source.html new file mode 100644 index 00000000..ac451c89 --- /dev/null +++ b/doc/api-0.9.2/a00125_source.html @@ -0,0 +1,254 @@ + + + + +type_precision.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_precision.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-06-04
      +00005 // Updated : 2009-06-04
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtc/type_precision.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTC_half
      +00012 // - GLM_GTC_quaternion
      +00014 
      +00015 #ifndef glm_gtc_type_precision
      +00016 #define glm_gtc_type_precision
      +00017 
      +00018 // Dependency:
      +00019 #include "../glm.hpp"
      +00020 #include "../gtc/half_float.hpp"
      +00021 #include "../gtc/quaternion.hpp"
      +00022 
      +00023 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00024 #       pragma message("GLM: GLM_GTC_type_precision extension included")
      +00025 #endif
      +00026 
      +00027 namespace glm{
      +00028 namespace gtc{
      +00029 namespace type_precision 
      +00030 {
      +00032         // Dependences
      +00033 
      +00034         using namespace gtc::half_float;
      +00035         using namespace gtc::quaternion;
      +00036 
      +00038         // Signed int vector types 
      +00039 
      +00042 
      +00043         typedef detail::int8                                            int8;         
      +00044         typedef detail::int16                                           int16;        
      +00045         typedef detail::int32                                           int32;        
      +00046         typedef detail::int64                                           int64;        
      +00047 
      +00048         typedef int8                                                            i8;         
      +00049         typedef int16                                                           i16;        
      +00050         typedef int32                                                           i32;        
      +00051         typedef int64                                                           i64;        
      +00052 
      +00053         //typedef i8                                                                    i8vec1;         //!< \brief 8bit signed integer scalar. (from GLM_GTC_type_precision extension)
      +00054         typedef detail::tvec2<i8>                                       i8vec2;     
      +00055         typedef detail::tvec3<i8>                                       i8vec3;     
      +00056         typedef detail::tvec4<i8>                                       i8vec4;     
      +00057 
      +00058         //typedef i16                                                                   i16vec1;        //!< \brief 16bit signed integer scalar. (from GLM_GTC_type_precision extension)
      +00059         typedef detail::tvec2<i16>                                      i16vec2;    
      +00060         typedef detail::tvec3<i16>                                      i16vec3;    
      +00061         typedef detail::tvec4<i16>                                      i16vec4;    
      +00062 
      +00063         //typedef i32                                                                   i32vec1;        //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)
      +00064         typedef detail::tvec2<i32>                                      i32vec2;    
      +00065         typedef detail::tvec3<i32>                                      i32vec3;    
      +00066         typedef detail::tvec4<i32>                                      i32vec4;    
      +00067 
      +00068         //typedef i64                                                                   i64vec1;        //!< \brief 32bit signed integer scalar. (from GLM_GTC_type_precision extension)
      +00069         typedef detail::tvec2<i64>                                      i64vec2;    
      +00070         typedef detail::tvec3<i64>                                      i64vec3;    
      +00071         typedef detail::tvec4<i64>                                      i64vec4;    
      +00072 
      +00074         // Unsigned int vector types 
      +00075 
      +00076         typedef detail::uint8                                           uint8;         
      +00077         typedef detail::uint16                                          uint16;        
      +00078         typedef detail::uint32                                          uint32;        
      +00079         typedef detail::uint64                                          uint64;        
      +00080 
      +00081         typedef uint8                                                           u8;         
      +00082         typedef uint16                                                          u16;        
      +00083         typedef uint32                                                          u32;        
      +00084         typedef uint64                                                          u64;        
      +00085 
      +00086         //typedef u8                                                                    u8vec1;         //!< \brief 8bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
      +00087         typedef detail::tvec2<u8>                                       u8vec2;     
      +00088         typedef detail::tvec3<u8>                                       u8vec3;     
      +00089         typedef detail::tvec4<u8>                                       u8vec4;     
      +00090 
      +00091         //typedef u16                                                                   u16vec1;    //!< \brief 16bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
      +00092         typedef detail::tvec2<u16>                                      u16vec2;    
      +00093         typedef detail::tvec3<u16>                                      u16vec3;    
      +00094         typedef detail::tvec4<u16>                                      u16vec4;    
      +00095 
      +00096         //typedef u32                                                                   u32vec1;    //!< \brief 32bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
      +00097         typedef detail::tvec2<u32>                                      u32vec2;    
      +00098         typedef detail::tvec3<u32>                                      u32vec3;    
      +00099         typedef detail::tvec4<u32>                                      u32vec4;    
      +00100 
      +00101         //typedef u64                                                                   u64vec1;    //!< \brief 64bit unsigned integer scalar. (from GLM_GTC_type_precision extension)
      +00102         typedef detail::tvec2<u64>                                      u64vec2;    
      +00103         typedef detail::tvec3<u64>                                      u64vec3;    
      +00104         typedef detail::tvec4<u64>                                      u64vec4;    
      +00105 
      +00107         // Float vector types 
      +00108 
      +00109         typedef detail::float16                                         float16;        
      +00110         typedef detail::float32                                         float32;        
      +00111         typedef detail::float64                                         float64;        
      +00112 
      +00113         typedef float16                                                         f16;        
      +00114         typedef float32                                                         f32;        
      +00115         typedef float64                                                         f64;        
      +00116 
      +00117         typedef detail::tvec2<float>                            fvec2;          
      +00118         typedef detail::tvec3<float>                            fvec3;          
      +00119         typedef detail::tvec4<float>                            fvec4;          
      +00120 
      +00121         //typedef f16                                                                   f16vec1;    //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
      +00122         typedef detail::tvec2<f16>                                      f16vec2;    
      +00123         typedef detail::tvec3<f16>                                      f16vec3;    
      +00124         typedef detail::tvec4<f16>                                      f16vec4;    
      +00125 
      +00126         //typedef f32                                                                   f32vec1;    //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
      +00127         typedef detail::tvec2<f32>                                      f32vec2;    
      +00128         typedef detail::tvec3<f32>                                      f32vec3;    
      +00129         typedef detail::tvec4<f32>                                      f32vec4;    
      +00130 
      +00131         //typedef f64                                                                   f64vec1;    //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
      +00132         typedef detail::tvec2<f64>                                      f64vec2;    
      +00133         typedef detail::tvec3<f64>                                      f64vec3;    
      +00134         typedef detail::tvec4<f64>                                      f64vec4;    
      +00135 
      +00137         // Float matrix types 
      +00138 
      +00139         //typedef f32                                                                   fmat1;  //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
      +00140         typedef detail::tmat2x2<f32>                            fmat2;  
      +00141         typedef detail::tmat3x3<f32>                            fmat3;  
      +00142         typedef detail::tmat4x4<f32>                            fmat4;  
      +00143 
      +00144         //typedef f32                                                                   fmat1x1;        //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
      +00145         typedef detail::tmat2x2<f32>                            fmat2x2;  
      +00146         typedef detail::tmat2x3<f32>                            fmat2x3;        
      +00147         typedef detail::tmat2x4<f32>                            fmat2x4;        
      +00148         typedef detail::tmat3x2<f32>                            fmat3x2;        
      +00149         typedef detail::tmat3x3<f32>                            fmat3x3;        
      +00150         typedef detail::tmat3x4<f32>                            fmat3x4;        
      +00151         typedef detail::tmat4x2<f32>                            fmat4x2;        
      +00152         typedef detail::tmat4x3<f32>                            fmat4x3;        
      +00153         typedef detail::tmat4x4<f32>                            fmat4x4;        
      +00154 
      +00155         //typedef f16                                                                   f16mat1;    //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
      +00156         typedef detail::tmat2x2<f16>                            f16mat2;        
      +00157         typedef detail::tmat3x3<f16>                            f16mat3;        
      +00158         typedef detail::tmat4x4<f16>                            f16mat4;        
      +00159 
      +00160         //typedef f16                                                                   f16mat1x1;      //!< \brief Half-precision floating-point scalar. (from GLM_GTC_type_precision extension)
      +00161         typedef detail::tmat2x2<f16>                            f16mat2x2;      
      +00162         typedef detail::tmat2x3<f16>                            f16mat2x3;      
      +00163         typedef detail::tmat2x4<f16>                            f16mat2x4;      
      +00164         typedef detail::tmat3x2<f16>                            f16mat3x2;      
      +00165         typedef detail::tmat3x3<f16>                            f16mat3x3;      
      +00166         typedef detail::tmat3x4<f16>                            f16mat3x4;      
      +00167         typedef detail::tmat4x2<f16>                            f16mat4x2;      
      +00168         typedef detail::tmat4x3<f16>                            f16mat4x3;      
      +00169         typedef detail::tmat4x4<f16>                            f16mat4x4;      
      +00170 
      +00171         //typedef f32                                                                   f32mat1;        //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
      +00172         typedef detail::tmat2x2<f32>                            f32mat2;        
      +00173         typedef detail::tmat3x3<f32>                            f32mat3;        
      +00174         typedef detail::tmat4x4<f32>                            f32mat4;        
      +00175 
      +00176         //typedef f32                                                                   f32mat1x1;      //!< \brief Single-precision floating-point scalar. (from GLM_GTC_type_precision extension)
      +00177         typedef detail::tmat2x2<f32>                            f32mat2x2;  
      +00178         typedef detail::tmat2x3<f32>                            f32mat2x3;      
      +00179         typedef detail::tmat2x4<f32>                            f32mat2x4;      
      +00180         typedef detail::tmat3x2<f32>                            f32mat3x2;      
      +00181         typedef detail::tmat3x3<f32>                            f32mat3x3;      
      +00182         typedef detail::tmat3x4<f32>                            f32mat3x4;      
      +00183         typedef detail::tmat4x2<f32>                            f32mat4x2;      
      +00184         typedef detail::tmat4x3<f32>                            f32mat4x3;      
      +00185         typedef detail::tmat4x4<f32>                            f32mat4x4;      
      +00186 
      +00187         //typedef f64                                                                   f64mat1;        //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
      +00188         typedef detail::tmat2x2<f64>                            f64mat2;        
      +00189         typedef detail::tmat3x3<f64>                            f64mat3;        
      +00190         typedef detail::tmat4x4<f64>                            f64mat4;        
      +00191 
      +00192         //typedef f64                                                                   f64mat1x1;      //!< \brief Double-precision floating-point scalar. (from GLM_GTC_type_precision extension)
      +00193         typedef detail::tmat2x2<f64>                            f64mat2x2;      
      +00194         typedef detail::tmat2x3<f64>                            f64mat2x3;      
      +00195         typedef detail::tmat2x4<f64>                            f64mat2x4;      
      +00196         typedef detail::tmat3x2<f64>                            f64mat3x2;      
      +00197         typedef detail::tmat3x3<f64>                            f64mat3x3;      
      +00198         typedef detail::tmat3x4<f64>                            f64mat3x4;      
      +00199         typedef detail::tmat4x2<f64>                            f64mat4x2;      
      +00200         typedef detail::tmat4x3<f64>                            f64mat4x3;      
      +00201         typedef detail::tmat4x4<f64>                            f64mat4x4;      
      +00202 
      +00204         // Float quaternion types 
      +00205 
      +00206         typedef detail::tquat<f16>                                      f16quat;    
      +00207         typedef detail::tquat<f32>                                      f32quat;    
      +00208         typedef detail::tquat<f64>                                      f64quat;    
      +00209 
      +00211 
      +00212 }//namespace type_precision
      +00213 }//namespace gtc
      +00214 }//namespace glm
      +00215 
      +00216 #include "type_precision.inl"
      +00217 
      +00218 namespace glm{using namespace gtc::type_precision;}
      +00219 
      +00220 #endif//glm_gtc_type_precision
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00126_source.html b/doc/api-0.9.2/a00126_source.html new file mode 100644 index 00000000..4d821fdb --- /dev/null +++ b/doc/api-0.9.2/a00126_source.html @@ -0,0 +1,411 @@ + + + + +type_ptr.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_ptr.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-05-06
      +00005 // Updated : 2010-04-30
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtc/type_ptr.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtc_type_ptr
      +00014 #define glm_gtc_type_ptr
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 #include <cstring>
      +00019 
      +00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00021 #       pragma message("GLM: GLM_GTC_type_ptr extension included")
      +00022 #endif
      +00023 
      +00024 namespace glm{
      +00025 namespace gtc{
      +00026 namespace type_ptr 
      +00027 { 
      +00028 
      +00031 
      +00034         template<typename T>
      +00035         GLM_FUNC_QUALIFIER T const * value_ptr
      +00036         (
      +00037                 detail::tvec2<T> const & vec
      +00038         )
      +00039         {
      +00040                 return &(vec.x);
      +00041         }
      +00042 
      +00045         template<typename T>
      +00046         GLM_FUNC_QUALIFIER T * value_ptr
      +00047         (
      +00048                 detail::tvec2<T> & vec
      +00049         )
      +00050         {
      +00051                 return &(vec.x);
      +00052         }
      +00053 
      +00056         template<typename T>
      +00057         GLM_FUNC_QUALIFIER T const * value_ptr
      +00058         (
      +00059                 detail::tvec3<T> const & vec
      +00060         )
      +00061         {
      +00062                 return &(vec.x);
      +00063         }
      +00064 
      +00067         template<typename T>
      +00068         GLM_FUNC_QUALIFIER T * value_ptr
      +00069         (
      +00070                 detail::tvec3<T> & vec
      +00071         )
      +00072         {
      +00073                 return &(vec.x);
      +00074         }
      +00075                 
      +00078         template<typename T>
      +00079         GLM_FUNC_QUALIFIER T const * value_ptr
      +00080         (       
      +00081                 detail::tvec4<T> const & vec
      +00082         )
      +00083         {
      +00084                 return &(vec.x);
      +00085         }
      +00086 
      +00089         template<typename T>
      +00090         GLM_FUNC_QUALIFIER T * value_ptr
      +00091         (       
      +00092                 detail::tvec4<T> & vec
      +00093         )
      +00094         {
      +00095                 return &(vec.x);
      +00096         }
      +00097 
      +00100         template<typename T>
      +00101         GLM_FUNC_QUALIFIER T const * value_ptr
      +00102         (
      +00103                 detail::tmat2x2<T> const & mat
      +00104         )
      +00105         {
      +00106                 return &(mat[0].x);
      +00107         }
      +00108 
      +00111         template<typename T>
      +00112         GLM_FUNC_QUALIFIER T * value_ptr
      +00113         (
      +00114                 detail::tmat2x2<T> & mat
      +00115         )
      +00116         {
      +00117                 return &(mat[0].x);
      +00118         }
      +00119                 
      +00122         template<typename T>
      +00123         GLM_FUNC_QUALIFIER T const * value_ptr
      +00124         (
      +00125                 detail::tmat3x3<T> const & mat
      +00126         )
      +00127         {
      +00128                 return &(mat[0].x);
      +00129         }
      +00130 
      +00133         template<typename T>
      +00134         GLM_FUNC_QUALIFIER T * value_ptr
      +00135         (
      +00136                 detail::tmat3x3<T> & mat
      +00137         )
      +00138         {
      +00139                 return &(mat[0].x);
      +00140         }
      +00141                 
      +00144         template<typename T>
      +00145         GLM_FUNC_QUALIFIER T const * value_ptr
      +00146         (
      +00147                 detail::tmat4x4<T> const & mat
      +00148         )
      +00149         {
      +00150                 return &(mat[0].x);
      +00151         }
      +00152 
      +00155         template<typename T>
      +00156         GLM_FUNC_QUALIFIER T * value_ptr
      +00157         (
      +00158                 detail::tmat4x4<T> & mat
      +00159         )
      +00160         {
      +00161                 return &(mat[0].x);
      +00162         }
      +00163 
      +00166         template<typename T>
      +00167         GLM_FUNC_QUALIFIER T const * value_ptr
      +00168         (
      +00169                 detail::tmat2x3<T> const & mat
      +00170         )
      +00171         {
      +00172                 return &(mat[0].x);
      +00173         }
      +00174 
      +00177         template<typename T>
      +00178         GLM_FUNC_QUALIFIER T * value_ptr
      +00179         (
      +00180                 detail::tmat2x3<T> & mat
      +00181         )
      +00182         {
      +00183                 return &(mat[0].x);
      +00184         }
      +00185                 
      +00188         template<typename T>
      +00189         GLM_FUNC_QUALIFIER T const * value_ptr
      +00190         (
      +00191                 detail::tmat3x2<T> const & mat
      +00192         )
      +00193         {
      +00194                 return &(mat[0].x);
      +00195         }
      +00196 
      +00199         template<typename T>
      +00200         GLM_FUNC_QUALIFIER T * value_ptr
      +00201         (
      +00202                 detail::tmat3x2<T> & mat
      +00203         )
      +00204         {
      +00205                 return &(mat[0].x);
      +00206         }
      +00207                 
      +00210         template<typename T>
      +00211         GLM_FUNC_QUALIFIER T const * value_ptr
      +00212         (
      +00213                 detail::tmat2x4<T> const & mat
      +00214         )
      +00215         {
      +00216                 return &(mat[0].x);
      +00217         }
      +00218 
      +00221         template<typename T>
      +00222         GLM_FUNC_QUALIFIER T * value_ptr
      +00223         (
      +00224                 detail::tmat2x4<T> & mat
      +00225         )
      +00226         {
      +00227                 return &(mat[0].x);
      +00228         }
      +00229                 
      +00232         template<typename T>
      +00233         GLM_FUNC_QUALIFIER T const * value_ptr
      +00234         (
      +00235                 detail::tmat4x2<T> const & mat
      +00236         )
      +00237         {
      +00238                 return &(mat[0].x);
      +00239         }
      +00240 
      +00243         template<typename T>
      +00244         GLM_FUNC_QUALIFIER T * value_ptr
      +00245         (       
      +00246                 detail::tmat4x2<T> & mat
      +00247         )
      +00248         {
      +00249                 return &(mat[0].x);
      +00250         }
      +00251                 
      +00254         template<typename T>
      +00255         GLM_FUNC_QUALIFIER T const * value_ptr
      +00256         (
      +00257                 detail::tmat3x4<T> const & mat
      +00258         )
      +00259         {
      +00260                 return &(mat[0].x);
      +00261         }
      +00262 
      +00265         template<typename T>
      +00266         GLM_FUNC_QUALIFIER T * value_ptr
      +00267         (
      +00268                 detail::tmat3x4<T> & mat
      +00269         )
      +00270         {
      +00271                 return &(mat[0].x);
      +00272         }
      +00273                 
      +00276         template<typename T>
      +00277         GLM_FUNC_QUALIFIER T const * value_ptr
      +00278         (
      +00279                 detail::tmat4x3<T> const & mat
      +00280         )
      +00281         {
      +00282                 return &(mat[0].x);
      +00283         }
      +00284 
      +00287         template<typename T>
      +00288         GLM_FUNC_QUALIFIER T * value_ptr(detail::tmat4x3<T> & mat)
      +00289         {
      +00290                 return &(mat[0].x);
      +00291         }
      +00292 
      +00295         template<typename T>
      +00296         GLM_FUNC_QUALIFIER detail::tvec2<T> make_vec2(T const * const ptr)
      +00297         {
      +00298                 detail::tvec2<T> Result;
      +00299                 memcpy(value_ptr(Result), ptr, sizeof(detail::tvec2<T>));
      +00300                 return Result;
      +00301         }
      +00302 
      +00305         template<typename T>
      +00306         GLM_FUNC_QUALIFIER detail::tvec3<T> make_vec3(T const * const ptr)
      +00307         {
      +00308                 detail::tvec3<T> Result;
      +00309                 memcpy(value_ptr(Result), ptr, sizeof(detail::tvec3<T>));
      +00310                 return Result;
      +00311         }
      +00312 
      +00315         template<typename T>
      +00316         GLM_FUNC_QUALIFIER detail::tvec4<T> make_vec4(T const * const ptr)
      +00317         {
      +00318                 detail::tvec4<T> Result;
      +00319                 memcpy(value_ptr(Result), ptr, sizeof(detail::tvec4<T>));
      +00320                 return Result;
      +00321         }
      +00322 
      +00325         template<typename T>
      +00326         GLM_FUNC_QUALIFIER detail::tmat2x2<T> make_mat2x2(T const * const ptr)
      +00327         {
      +00328                 detail::tmat2x2<T> Result;
      +00329                 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x2<T>));
      +00330                 return Result;
      +00331         }
      +00332         
      +00335         template<typename T>
      +00336         GLM_FUNC_QUALIFIER detail::tmat2x3<T> make_mat2x3(T const * const ptr)
      +00337         {
      +00338                 detail::tmat2x3<T> Result;
      +00339                 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x3<T>));
      +00340                 return Result;
      +00341         }
      +00342         
      +00345         template<typename T>
      +00346         GLM_FUNC_QUALIFIER detail::tmat2x4<T> make_mat2x4(T const * const ptr)
      +00347         {
      +00348                 detail::tmat2x4<T> Result;
      +00349                 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat2x4<T>));
      +00350                 return Result;
      +00351         }
      +00352         
      +00355         template<typename T>
      +00356         GLM_FUNC_QUALIFIER detail::tmat3x2<T> make_mat3x2(T const * const ptr)
      +00357         {
      +00358                 detail::tmat3x2<T> Result;
      +00359                 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x2<T>));
      +00360                 return Result;
      +00361         }
      +00362         
      +00365         template<typename T>
      +00366         GLM_FUNC_QUALIFIER detail::tmat3x3<T> make_mat3x3(T const * const ptr)
      +00367         {
      +00368                 detail::tmat3x3<T> Result;
      +00369                 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x3<T>));
      +00370                 return Result;
      +00371         }
      +00372 
      +00375         template<typename T>
      +00376         GLM_FUNC_QUALIFIER detail::tmat3x4<T> make_mat3x4(T const * const ptr)
      +00377         {
      +00378                 detail::tmat3x4<T> Result;
      +00379                 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat3x4<T>));
      +00380                 return Result;
      +00381         }
      +00382 
      +00383         
      +00386         template<typename T>
      +00387         GLM_FUNC_QUALIFIER detail::tmat4x2<T> make_mat4x2(T const * const ptr)
      +00388         {
      +00389                 detail::tmat4x2<T> Result;
      +00390                 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x2<T>));
      +00391                 return Result;
      +00392         }
      +00393         
      +00396         template<typename T>
      +00397         GLM_FUNC_QUALIFIER detail::tmat4x3<T> make_mat4x3(T const * const ptr)
      +00398         {
      +00399                 detail::tmat4x3<T> Result;
      +00400                 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x3<T>));
      +00401                 return Result;
      +00402         }
      +00403         
      +00406         template<typename T>
      +00407         GLM_FUNC_QUALIFIER detail::tmat4x4<T> make_mat4x4(T const * const ptr)
      +00408         {
      +00409                 detail::tmat4x4<T> Result;
      +00410                 memcpy(value_ptr(Result), ptr, sizeof(detail::tmat4x4<T>));
      +00411                 return Result;
      +00412         }
      +00413         
      +00416         template<typename T>
      +00417         GLM_FUNC_QUALIFIER detail::tmat2x2<T> make_mat2(T const * const ptr)
      +00418         {
      +00419                 return make_mat2x2(ptr);
      +00420         }
      +00421         
      +00424         template<typename T>
      +00425         GLM_FUNC_QUALIFIER detail::tmat3x3<T> make_mat3(T const * const ptr)
      +00426         {
      +00427                 return make_mat3x3(ptr);
      +00428         }
      +00429                 
      +00432         template<typename T>
      +00433         GLM_FUNC_QUALIFIER detail::tmat4x4<T> make_mat4(T const * const ptr)
      +00434         {
      +00435                 return make_mat4x4(ptr);
      +00436         }
      +00437         
      +00439 
      +00440 }//namespace type_ptr
      +00441 }//namespace gtc
      +00442 }//namespace glm
      +00443 
      +00444 #include "type_ptr.inl"
      +00445 
      +00446 namespace glm{using namespace gtc::type_ptr;}
      +00447 
      +00448 #endif//glm_gtx_type_ptr
      +00449 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00127_source.html b/doc/api-0.9.2/a00127_source.html new file mode 100644 index 00000000..35e0d869 --- /dev/null +++ b/doc/api-0.9.2/a00127_source.html @@ -0,0 +1,68 @@ + + + + +type_size.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_size.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-10-05
      +00005 // Updated : 2008-10-05
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_size.hpp
      +00009 
      +00010 #ifndef glm_core_type_size
      +00011 #define glm_core_type_size
      +00012 
      +00013 #include <cstdlib>
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018         //typedef std::size_t size_t;
      +00019         typedef int sizeType;
      +00020 
      +00021 }//namespace detail
      +00022 }//namespace glm
      +00023 
      +00024 #endif//glm_core_type_size
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00128_source.html b/doc/api-0.9.2/a00128_source.html new file mode 100644 index 00000000..bd204e2c --- /dev/null +++ b/doc/api-0.9.2/a00128_source.html @@ -0,0 +1,66 @@ + + + + +type_vec.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_vec.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2010-01-26
      +00005 // Updated : 2010-02-04
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_vec.hpp
      +00009 
      +00010 #ifndef glm_core_type_vec
      +00011 #define glm_core_type_vec
      +00012 
      +00013 #include "type_gentype.hpp"
      +00014 
      +00015 namespace glm{
      +00016 namespace detail
      +00017 {
      +00018 
      +00019 }//namespace detail
      +00020 }//namespace glm
      +00021 
      +00022 #endif//glm_core_type_vec
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00129_source.html b/doc/api-0.9.2/a00129_source.html new file mode 100644 index 00000000..ffff08b6 --- /dev/null +++ b/doc/api-0.9.2/a00129_source.html @@ -0,0 +1,202 @@ + + + + +type_vec1.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_vec1.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-25
      +00005 // Updated : 2010-02-04
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_vec1.hpp
      +00009 
      +00010 #ifndef glm_core_type_gentype1
      +00011 #define glm_core_type_gentype1
      +00012 
      +00013 #include "type_vec.hpp"
      +00014 #include "type_float.hpp"
      +00015 #include "type_int.hpp"
      +00016 #include "type_size.hpp"
      +00017 #include "_swizzle.hpp"
      +00018 
      +00019 namespace glm{
      +00020 namespace detail
      +00021 {
      +00022         template <typename T> struct tref1;
      +00023         template <typename T> struct tref2;
      +00024         template <typename T> struct tref3;
      +00025         template <typename T> struct tref4;
      +00026         template <typename T> struct tvec1;
      +00027         template <typename T> struct tvec2;
      +00028         template <typename T> struct tvec3;
      +00029         template <typename T> struct tvec4;
      +00030 
      +00031         template <typename T>
      +00032         struct tvec1
      +00033         {
      +00034                 enum ctor{null};
      +00035 
      +00036                 typedef T value_type;
      +00037                 typedef std::size_t size_type;
      +00038                 GLM_FUNC_DECL size_type length() const;
      +00039                 static GLM_FUNC_DECL size_type value_size();
      +00040 
      +00041                 typedef tvec1<T> type;
      +00042                 typedef tvec1<bool> bool_type;
      +00043 
      +00045                 // Data
      +00046 
      +00047 #               if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
      +00048                         value_type x;
      +00049 #               else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
      +00050                         union {value_type x, r, s;};
      +00051 #               endif//GLM_COMPONENT
      +00052 
      +00054                 // Accesses
      +00055 
      +00056                 GLM_FUNC_DECL value_type & operator[](size_type i);
      +00057                 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
      +00058 
      +00060                 // Implicit basic constructors
      +00061 
      +00062                 GLM_FUNC_DECL tvec1();
      +00063                 GLM_FUNC_DECL tvec1(tvec1<T> const & v);
      +00064 
      +00066                 // Explicit basic constructors
      +00067 
      +00068                 GLM_FUNC_DECL explicit tvec1(
      +00069                         ctor);
      +00070                 GLM_FUNC_DECL explicit tvec1(
      +00071                         value_type const & s);
      +00072 
      +00074                 // Swizzle constructors
      +00075 
      +00076                 GLM_FUNC_DECL tvec1(tref1<T> const & r);
      +00077 
      +00079                 // Convertion scalar constructors
      +00080 
      +00082                 template <typename U> 
      +00083                 GLM_FUNC_DECL explicit tvec1(U const & s);
      +00084 
      +00086                 // Convertion vector constructors
      +00087 
      +00089                 template <typename U> 
      +00090                 GLM_FUNC_DECL explicit tvec1(tvec2<U> const & v);
      +00092                 template <typename U> 
      +00093                 GLM_FUNC_DECL explicit tvec1(tvec3<U> const & v);
      +00095                 template <typename U> 
      +00096                 GLM_FUNC_DECL explicit tvec1(tvec4<U> const & v);
      +00097 
      +00099                 // Unary arithmetic operators
      +00100 
      +00101                 GLM_FUNC_DECL tvec1<T> & operator= (tvec1<T> const & v);
      +00102 
      +00103                 GLM_FUNC_DECL tvec1<T> & operator+=(value_type const & s);
      +00104                 GLM_FUNC_DECL tvec1<T> & operator+=(tvec1<T> const & v);
      +00105                 GLM_FUNC_DECL tvec1<T> & operator-=(value_type const & s);
      +00106                 GLM_FUNC_DECL tvec1<T> & operator-=(tvec1<T> const & v);
      +00107                 GLM_FUNC_DECL tvec1<T> & operator*=(value_type const & s);
      +00108                 GLM_FUNC_DECL tvec1<T> & operator*=(tvec1<T> const & v);
      +00109                 GLM_FUNC_DECL tvec1<T> & operator/=(value_type const & s);
      +00110                 GLM_FUNC_DECL tvec1<T> & operator/=(tvec1<T> const & v);
      +00111                 GLM_FUNC_DECL tvec1<T> & operator++();
      +00112                 GLM_FUNC_DECL tvec1<T> & operator--();
      +00113 
      +00115                 // Unary bit operators
      +00116 
      +00117                 GLM_FUNC_DECL tvec1<T> & operator%=(value_type const & s);
      +00118                 GLM_FUNC_DECL tvec1<T> & operator%=(tvec1<T> const & v);
      +00119                 GLM_FUNC_DECL tvec1<T> & operator&=(value_type const & s);
      +00120                 GLM_FUNC_DECL tvec1<T> & operator&=(tvec1<T> const & v);
      +00121                 GLM_FUNC_DECL tvec1<T> & operator|=(value_type const & s);
      +00122                 GLM_FUNC_DECL tvec1<T> & operator|=(tvec1<T> const & v);
      +00123                 GLM_FUNC_DECL tvec1<T> & operator^=(value_type const & s);
      +00124                 GLM_FUNC_DECL tvec1<T> & operator^=(tvec1<T> const & v);
      +00125                 GLM_FUNC_DECL tvec1<T> & operator<<=(value_type const & s);
      +00126                 GLM_FUNC_DECL tvec1<T> & operator<<=(tvec1<T> const & v);
      +00127                 GLM_FUNC_DECL tvec1<T> & operator>>=(value_type const & s);
      +00128                 GLM_FUNC_DECL tvec1<T> & operator>>=(tvec1<T> const & v);
      +00129 
      +00131                 // Swizzle operators
      +00132 
      +00133                 GLM_FUNC_DECL value_type swizzle(comp X) const;
      +00134                 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
      +00135                 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
      +00136                 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
      +00137                 GLM_FUNC_DECL tref1<T> swizzle(comp X);
      +00138         };
      +00139 
      +00140         template <typename T>
      +00141         struct tref1
      +00142         {
      +00143                 GLM_FUNC_DECL tref1(T & x);
      +00144                 GLM_FUNC_DECL tref1(tref1<T> const & r);
      +00145                 GLM_FUNC_DECL tref1(tvec1<T> const & v);
      +00146 
      +00147                 GLM_FUNC_DECL tref1<T> & operator= (tref1<T> const & r);
      +00148                 GLM_FUNC_DECL tref1<T> & operator= (tvec1<T> const & v);
      +00149 
      +00150                 T& x;
      +00151         };
      +00152 
      +00153         GLM_DETAIL_IS_VECTOR(tvec1);
      +00154 
      +00155         typedef detail::tvec1<core::type::precision::highp_float>               highp_vec1_t;
      +00156         typedef detail::tvec1<core::type::precision::mediump_float>             mediump_vec1_t;
      +00157         typedef detail::tvec1<core::type::precision::lowp_float>                lowp_vec1_t;
      +00158         typedef detail::tvec1<core::type::precision::highp_int>                 highp_ivec1_t;
      +00159         typedef detail::tvec1<core::type::precision::mediump_int>               mediump_ivec1_t;
      +00160         typedef detail::tvec1<core::type::precision::lowp_int>                  lowp_ivec1_t;
      +00161         typedef detail::tvec1<core::type::precision::highp_uint>                highp_uvec1_t;
      +00162         typedef detail::tvec1<core::type::precision::mediump_uint>              mediump_uvec1_t;
      +00163         typedef detail::tvec1<core::type::precision::lowp_uint>                 lowp_uvec1_t;
      +00164 
      +00165 }//namespace detail
      +00166 }//namespace glm
      +00167 
      +00168 #ifndef GLM_EXTERNAL_TEMPLATE
      +00169 #include "type_vec1.inl"
      +00170 #endif//GLM_EXTERNAL_TEMPLATE
      +00171 
      +00172 #endif//glm_core_type_gentype1
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00130_source.html b/doc/api-0.9.2/a00130_source.html new file mode 100644 index 00000000..d759efa7 --- /dev/null +++ b/doc/api-0.9.2/a00130_source.html @@ -0,0 +1,256 @@ + + + + +type_vec2.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_vec2.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-18
      +00005 // Updated : 2010-02-04
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_tvec2.hpp
      +00009 
      +00010 #ifndef glm_core_type_gentype2
      +00011 #define glm_core_type_gentype2
      +00012 
      +00013 #include "type_vec.hpp"
      +00014 #include "type_float.hpp"
      +00015 #include "type_int.hpp"
      +00016 #include "type_size.hpp"
      +00017 #include "_swizzle.hpp"
      +00018 
      +00019 namespace glm{
      +00020 namespace detail
      +00021 {
      +00022         template <typename T> struct tref2;
      +00023         template <typename T> struct tref3;
      +00024         template <typename T> struct tref4;
      +00025         template <typename T> struct tvec3;
      +00026         template <typename T> struct tvec4;
      +00027 
      +00030         template <typename T>
      +00031         struct tvec2
      +00032         {
      +00033                 enum ctor{null};
      +00034 
      +00035                 typedef T value_type;
      +00036                 typedef std::size_t size_type;
      +00037                 GLM_FUNC_DECL size_type length() const;
      +00038                 static GLM_FUNC_DECL size_type value_size();
      +00039 
      +00040                 typedef tvec2<T> type;
      +00041                 typedef tvec2<bool> bool_type;
      +00042 
      +00044                 // Data
      +00045 
      +00046 #               if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
      +00047                 value_type x, y;
      +00048 #               elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)
      +00049                 union 
      +00050                 {
      +00051                         struct{value_type r, g;};
      +00052                         struct{value_type s, t;};
      +00053                         struct{value_type x, y;};
      +00054                 };
      +00055 #               else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
      +00056                 union {value_type x, r, s;};
      +00057                 union {value_type y, g, t;};
      +00058 #               endif//GLM_COMPONENT
      +00059 
      +00061                 // Accesses
      +00062 
      +00063                 GLM_FUNC_DECL value_type & operator[](size_type i);
      +00064                 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
      +00065 
      +00067                 // Implicit basic constructors
      +00068 
      +00069                 GLM_FUNC_DECL tvec2();
      +00070                 GLM_FUNC_DECL tvec2(tvec2<T> const & v);
      +00071 
      +00073                 // Explicit basic constructors
      +00074 
      +00075                 GLM_FUNC_DECL explicit tvec2(
      +00076                         ctor);
      +00077                 GLM_FUNC_DECL explicit tvec2(
      +00078                         value_type const & s);
      +00079                 GLM_FUNC_DECL explicit tvec2(
      +00080                         value_type const & s1, 
      +00081                         value_type const & s2);
      +00082 
      +00084                 // Swizzle constructors
      +00085 
      +00086                 tvec2(tref2<T> const & r);
      +00087 
      +00089                 // Convertion constructors
      +00090 
      +00092                 template <typename U> 
      +00093                 GLM_FUNC_DECL explicit tvec2(
      +00094                         U const & x);
      +00096                 template <typename U, typename V> 
      +00097                 GLM_FUNC_DECL explicit tvec2(
      +00098                         U const & x, 
      +00099                         V const & y);
      +00100 
      +00102                 // Convertion vector constructors
      +00103 
      +00105                 template <typename U> 
      +00106                 GLM_FUNC_DECL explicit tvec2(tvec2<U> const & v);
      +00108                 template <typename U> 
      +00109                 GLM_FUNC_DECL explicit tvec2(tvec3<U> const & v);
      +00111                 template <typename U> 
      +00112                 GLM_FUNC_DECL explicit tvec2(tvec4<U> const & v);
      +00113 
      +00115                 // Unary arithmetic operators
      +00116 
      +00117                 GLM_FUNC_DECL tvec2<T> & operator= (tvec2<T> const & v);
      +00118                 template <typename U> 
      +00119                 GLM_FUNC_DECL tvec2<T> & operator= (tvec2<U> const & v);
      +00120 
      +00121                 template <typename U> 
      +00122                 GLM_FUNC_DECL tvec2<T> & operator+=(U const & s);
      +00123                 template <typename U> 
      +00124                 GLM_FUNC_DECL tvec2<T> & operator+=(tvec2<U> const & v);
      +00125                 template <typename U> 
      +00126                 GLM_FUNC_DECL tvec2<T> & operator-=(U const & s);
      +00127                 template <typename U> 
      +00128                 GLM_FUNC_DECL tvec2<T> & operator-=(tvec2<U> const & v);
      +00129                 template <typename U> 
      +00130                 GLM_FUNC_DECL tvec2<T> & operator*=(U const & s);
      +00131                 template <typename U> 
      +00132                 GLM_FUNC_DECL tvec2<T> & operator*=(tvec2<U> const & v);
      +00133                 template <typename U> 
      +00134                 GLM_FUNC_DECL tvec2<T> & operator/=(U const & s);
      +00135                 template <typename U> 
      +00136                 GLM_FUNC_DECL tvec2<T> & operator/=(tvec2<U> const & v);
      +00137                 GLM_FUNC_DECL tvec2<T> & operator++();
      +00138                 GLM_FUNC_DECL tvec2<T> & operator--();
      +00139 
      +00141                 // Unary bit operators
      +00142 
      +00143                 template <typename U> 
      +00144                 GLM_FUNC_DECL tvec2<T> & operator%= (U const & s);
      +00145                 template <typename U> 
      +00146                 GLM_FUNC_DECL tvec2<T> & operator%= (tvec2<U> const & v);
      +00147                 template <typename U> 
      +00148                 GLM_FUNC_DECL tvec2<T> & operator&= (U const & s);
      +00149                 template <typename U> 
      +00150                 GLM_FUNC_DECL tvec2<T> & operator&= (tvec2<U> const & v);
      +00151                 template <typename U> 
      +00152                 GLM_FUNC_DECL tvec2<T> & operator|= (U const & s);
      +00153                 template <typename U> 
      +00154                 GLM_FUNC_DECL tvec2<T> & operator|= (tvec2<U> const & v);
      +00155                 template <typename U> 
      +00156                 GLM_FUNC_DECL tvec2<T> & operator^= (U const & s);
      +00157                 template <typename U> 
      +00158                 GLM_FUNC_DECL tvec2<T> & operator^= (tvec2<U> const & v);
      +00159                 template <typename U> 
      +00160                 GLM_FUNC_DECL tvec2<T> & operator<<=(U const & s);
      +00161                 template <typename U> 
      +00162                 GLM_FUNC_DECL tvec2<T> & operator<<=(tvec2<U> const & v);
      +00163                 template <typename U> 
      +00164                 GLM_FUNC_DECL tvec2<T> & operator>>=(U const & s);
      +00165                 template <typename U> 
      +00166                 GLM_FUNC_DECL tvec2<T> & operator>>=(tvec2<U> const & v);
      +00167 
      +00169                 // Swizzle operators
      +00170 
      +00171                 GLM_FUNC_DECL value_type swizzle(comp X) const;
      +00172                 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
      +00173                 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
      +00174                 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
      +00175                 GLM_FUNC_DECL tref2<T> swizzle(comp X, comp Y);
      +00176         };
      +00177 
      +00178         template <typename T>
      +00179         struct tref2
      +00180         {
      +00181                 GLM_FUNC_DECL tref2(T & x, T & y);
      +00182                 GLM_FUNC_DECL tref2(tref2<T> const & r);
      +00183                 GLM_FUNC_DECL tref2(tvec2<T> const & v);
      +00184 
      +00185                 GLM_FUNC_DECL tref2<T> & operator= (tref2<T> const & r);
      +00186                 GLM_FUNC_DECL tref2<T> & operator= (tvec2<T> const & v);
      +00187 
      +00188                 GLM_FUNC_DECL tvec2<T> operator() ();
      +00189 
      +00190                 T & x;
      +00191                 T & y;
      +00192         };
      +00193 
      +00194         GLM_DETAIL_IS_VECTOR(tvec2);
      +00195 
      +00196 } //namespace detail
      +00197 
      +00198 namespace core{
      +00199 namespace type{
      +00200 namespace precision
      +00201 {
      +00206         typedef detail::tvec2<highp_float>              highp_vec2;
      +00207 
      +00212         typedef detail::tvec2<mediump_float>    mediump_vec2;
      +00213 
      +00218         typedef detail::tvec2<lowp_float>               lowp_vec2;
      +00219 
      +00224         typedef detail::tvec2<highp_int>                highp_ivec2;
      +00225 
      +00230         typedef detail::tvec2<mediump_int>              mediump_ivec2;
      +00231 
      +00236         typedef detail::tvec2<lowp_int>                 lowp_ivec2;
      +00237         
      +00242         typedef detail::tvec2<highp_uint>               highp_uvec2;
      +00243 
      +00248         typedef detail::tvec2<mediump_uint>             mediump_uvec2;
      +00249 
      +00254         typedef detail::tvec2<lowp_uint>                lowp_uvec2;
      +00255 
      +00256 }//namespace precision
      +00257 }//namespace type
      +00258 }//namespace core
      +00259 }//namespace glm
      +00260 
      +00261 #ifndef GLM_EXTERNAL_TEMPLATE
      +00262 #include "type_vec2.inl"
      +00263 #endif//GLM_EXTERNAL_TEMPLATE
      +00264 
      +00265 #endif//glm_core_type_gentype2
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00131_source.html b/doc/api-0.9.2/a00131_source.html new file mode 100644 index 00000000..34c98c04 --- /dev/null +++ b/doc/api-0.9.2/a00131_source.html @@ -0,0 +1,268 @@ + + + + +type_vec3.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_vec3.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-22
      +00005 // Updated : 2010-02-03
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_tvec3.hpp
      +00009 
      +00010 #ifndef glm_core_type_gentype3
      +00011 #define glm_core_type_gentype3
      +00012 
      +00013 #include "type_vec.hpp"
      +00014 #include "type_float.hpp"
      +00015 #include "type_int.hpp"
      +00016 #include "type_size.hpp"
      +00017 #include "_swizzle.hpp"
      +00018 
      +00019 namespace glm{
      +00020 namespace detail
      +00021 {
      +00022         template <typename T> struct tref2;
      +00023         template <typename T> struct tref3;
      +00024         template <typename T> struct tref4;
      +00025         template <typename T> struct tvec2;
      +00026         template <typename T> struct tvec4;
      +00027 
      +00030         template <typename T>
      +00031         struct tvec3
      +00032         {       
      +00033                 enum ctor{null};
      +00034 
      +00035                 typedef T value_type;
      +00036                 typedef std::size_t size_type;
      +00037                 GLM_FUNC_DECL size_type length() const;
      +00038                 static GLM_FUNC_DECL size_type value_size();
      +00039 
      +00040                 typedef tvec3<T> type;
      +00041                 typedef tvec3<bool> bool_type;
      +00042 
      +00044                 // Data
      +00045 
      +00046 #       if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
      +00047                 value_type x, y, z;
      +00048 #       elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)
      +00049                 union 
      +00050                 {
      +00051                         struct{value_type r, g, b;};
      +00052                         struct{value_type s, t, p;};
      +00053                         struct{value_type x, y, z;};
      +00054                 };
      +00055 #       else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
      +00056                 union {value_type x, r, s;};
      +00057                 union {value_type y, g, t;};
      +00058                 union {value_type z, b, p;};
      +00059 #       endif//GLM_COMPONENT
      +00060 
      +00062                 // Accesses
      +00063 
      +00064                 GLM_FUNC_DECL value_type & operator[](size_type i);
      +00065                 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
      +00066 
      +00068                 // Implicit basic constructors
      +00069 
      +00070                 GLM_FUNC_DECL tvec3();
      +00071                 GLM_FUNC_DECL tvec3(tvec3<T> const & v);
      +00072 
      +00074                 // Explicit basic constructors
      +00075 
      +00076                 GLM_FUNC_DECL explicit tvec3(
      +00077                         ctor);
      +00078                 GLM_FUNC_DECL explicit tvec3(
      +00079                         value_type const & s);
      +00080                 GLM_FUNC_DECL explicit tvec3(
      +00081                         value_type const & s1, 
      +00082                         value_type const & s2, 
      +00083                         value_type const & s3);
      +00084 
      +00086                 // Convertion scalar constructors
      +00087 
      +00089                 template <typename U> 
      +00090                 GLM_FUNC_DECL explicit tvec3(
      +00091                         U const & x);
      +00093                 template <typename U, typename V, typename W> 
      +00094                 GLM_FUNC_DECL explicit tvec3(
      +00095                         U const & x, 
      +00096                         V const & y, 
      +00097                         W const & z);                   
      +00098 
      +00100                 // Convertion vector constructors
      +00101 
      +00103                 template <typename A, typename B> 
      +00104                 GLM_FUNC_DECL explicit tvec3(tvec2<A> const & v, B const & s);
      +00106                 template <typename A, typename B> 
      +00107                 GLM_FUNC_DECL explicit tvec3(A const & s, tvec2<B> const & v);
      +00109                 template <typename U> 
      +00110                 GLM_FUNC_DECL explicit tvec3(tvec3<U> const & v);
      +00112                 template <typename U> 
      +00113                 GLM_FUNC_DECL explicit tvec3(tvec4<U> const & v);
      +00114 
      +00116                 // Swizzle constructors
      +00117 
      +00118                 GLM_FUNC_DECL tvec3(tref3<T> const & r);
      +00119 
      +00120                 template <typename A, typename B> 
      +00121                 GLM_FUNC_DECL explicit tvec3(tref2<A> const & v, B const & s);
      +00122 
      +00123                 template <typename A, typename B> 
      +00124                 GLM_FUNC_DECL explicit tvec3(A const & s, tref2<B> const & v);
      +00125 
      +00127                 // Unary arithmetic operators
      +00128 
      +00129                 GLM_FUNC_DECL tvec3<T> & operator= (tvec3<T> const & v);
      +00130                 template <typename U> 
      +00131                 GLM_FUNC_DECL tvec3<T> & operator= (tvec3<U> const & v);
      +00132 
      +00133                 template <typename U> 
      +00134                 GLM_FUNC_DECL tvec3<T> & operator+=(U const & s);
      +00135                 template <typename U> 
      +00136                 GLM_FUNC_DECL tvec3<T> & operator+=(tvec3<U> const & v);
      +00137                 template <typename U> 
      +00138                 GLM_FUNC_DECL tvec3<T> & operator-=(U const & s);
      +00139                 template <typename U> 
      +00140                 GLM_FUNC_DECL tvec3<T> & operator-=(tvec3<U> const & v);
      +00141                 template <typename U> 
      +00142                 GLM_FUNC_DECL tvec3<T> & operator*=(U const & s);
      +00143                 template <typename U> 
      +00144                 GLM_FUNC_DECL tvec3<T> & operator*=(tvec3<U> const & v);
      +00145                 template <typename U> 
      +00146                 GLM_FUNC_DECL tvec3<T> & operator/=(U const & s);
      +00147                 template <typename U> 
      +00148                 GLM_FUNC_DECL tvec3<T> & operator/=(tvec3<U> const & v);
      +00149                 GLM_FUNC_DECL tvec3<T> & operator++();
      +00150                 GLM_FUNC_DECL tvec3<T> & operator--();
      +00151 
      +00153                 // Unary bit operators
      +00154 
      +00155                 template <typename U>
      +00156                 GLM_FUNC_DECL tvec3<T> & operator%= (U const & s);
      +00157                 template <typename U>
      +00158                 GLM_FUNC_DECL tvec3<T> & operator%= (tvec3<U> const & v);
      +00159                 template <typename U>
      +00160                 GLM_FUNC_DECL tvec3<T> & operator&= (U const & s);
      +00161                 template <typename U>
      +00162                 GLM_FUNC_DECL tvec3<T> & operator&= (tvec3<U> const & v);
      +00163                 template <typename U>
      +00164                 GLM_FUNC_DECL tvec3<T> & operator|= (U const & s);
      +00165                 template <typename U>
      +00166                 GLM_FUNC_DECL tvec3<T> & operator|= (tvec3<U> const & v);
      +00167                 template <typename U>
      +00168                 GLM_FUNC_DECL tvec3<T> & operator^= (U const & s);
      +00169                 template <typename U>
      +00170                 GLM_FUNC_DECL tvec3<T> & operator^= (tvec3<U> const & v);
      +00171                 template <typename U>
      +00172                 GLM_FUNC_DECL tvec3<T> & operator<<=(U const & s);
      +00173                 template <typename U>
      +00174                 GLM_FUNC_DECL tvec3<T> & operator<<=(tvec3<U> const & v);
      +00175                 template <typename U>
      +00176                 GLM_FUNC_DECL tvec3<T> & operator>>=(U const & s);
      +00177                 template <typename U>
      +00178                 GLM_FUNC_DECL tvec3<T> & operator>>=(tvec3<U> const & v);
      +00179 
      +00181                 // Swizzle operators
      +00182 
      +00183                 GLM_FUNC_DECL value_type swizzle(comp X) const;
      +00184                 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
      +00185                 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
      +00186                 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
      +00187                 GLM_FUNC_DECL tref2<T> swizzle(comp X, comp Y);
      +00188                 GLM_FUNC_DECL tref3<T> swizzle(comp X, comp Y, comp Z);
      +00189         };
      +00190 
      +00191         template <typename T>
      +00192         struct tref3
      +00193         {
      +00194                 GLM_FUNC_DECL tref3(T & x, T & y, T & z);
      +00195                 GLM_FUNC_DECL tref3(tref3<T> const & r);
      +00196                 GLM_FUNC_DECL tref3(tvec3<T> const & v);
      +00197 
      +00198                 GLM_FUNC_DECL tref3<T> & operator= (tref3<T> const & r);
      +00199                 GLM_FUNC_DECL tref3<T> & operator= (tvec3<T> const & v);
      +00200 
      +00201                 GLM_FUNC_DECL tvec3<T> operator() ();
      +00202 
      +00203                 T & x;
      +00204                 T & y;
      +00205                 T & z;
      +00206         };
      +00207 
      +00208         GLM_DETAIL_IS_VECTOR(tvec3);
      +00209 } //namespace detail
      +00210 
      +00211 namespace core{
      +00212 namespace type{
      +00213 namespace precision
      +00214 {
      +00219         typedef detail::tvec3<highp_float>              highp_vec3;
      +00220 
      +00225         typedef detail::tvec3<mediump_float>    mediump_vec3;
      +00226 
      +00231         typedef detail::tvec3<lowp_float>               lowp_vec3;
      +00232 
      +00237         typedef detail::tvec3<highp_int>                highp_ivec3;
      +00238 
      +00243         typedef detail::tvec3<mediump_int>              mediump_ivec3;
      +00244 
      +00249         typedef detail::tvec3<lowp_int>                 lowp_ivec3;
      +00250 
      +00255         typedef detail::tvec3<highp_uint>               highp_uvec3;
      +00256 
      +00261         typedef detail::tvec3<mediump_uint>             mediump_uvec3;
      +00262 
      +00267         typedef detail::tvec3<lowp_uint>                lowp_uvec3;
      +00268 
      +00269 }//namespace precision
      +00270 }//namespace type
      +00271 }//namespace core
      +00272 }//namespace glm
      +00273 
      +00274 #ifndef GLM_EXTERNAL_TEMPLATE
      +00275 #include "type_vec3.inl"
      +00276 #endif//GLM_EXTERNAL_TEMPLATE
      +00277 
      +00278 #endif//glm_core_type_gentype3
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00132_source.html b/doc/api-0.9.2/a00132_source.html new file mode 100644 index 00000000..da361d86 --- /dev/null +++ b/doc/api-0.9.2/a00132_source.html @@ -0,0 +1,290 @@ + + + + +type_vec4.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      type_vec4.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2008-08-22
      +00005 // Updated : 2010-02-03
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/core/type_tvec4.hpp
      +00009 
      +00010 #ifndef glm_core_type_gentype4
      +00011 #define glm_core_type_gentype4
      +00012 
      +00013 #include "type_vec.hpp"
      +00014 #include "type_float.hpp"
      +00015 #include "type_int.hpp"
      +00016 #include "type_size.hpp"
      +00017 #include "_swizzle.hpp"
      +00018 
      +00019 namespace glm{
      +00020 namespace detail
      +00021 {
      +00022         template <typename T> struct tref2;
      +00023         template <typename T> struct tref3;
      +00024         template <typename T> struct tref4;
      +00025         template <typename T> struct tvec2;
      +00026         template <typename T> struct tvec3;
      +00027 
      +00030         template <typename T>
      +00031         struct tvec4
      +00032         {
      +00033                 enum ctor{null};
      +00034 
      +00035                 typedef T value_type;
      +00036                 typedef std::size_t size_type;
      +00037                 GLM_FUNC_DECL size_type length() const;
      +00038                 static GLM_FUNC_DECL size_type value_size();
      +00039 
      +00040                 typedef tvec4<T> type;
      +00041                 typedef tvec4<bool> bool_type;
      +00042 
      +00044                 // Data
      +00045 
      +00046 #       if(GLM_COMPONENT == GLM_COMPONENT_ONLY_XYZW)
      +00047                 value_type x, y, z, w;
      +00048 #       elif(GLM_COMPONENT == GLM_COMPONENT_MS_EXT)
      +00049                 union 
      +00050                 {
      +00051                         struct{value_type r, g, b, a;};
      +00052                         struct{value_type s, t, p, q;};
      +00053                         struct{value_type x, y, z, w;};
      +00054                 };
      +00055 #       else//(GLM_COMPONENT == GLM_COMPONENT_GLSL_NAMES)
      +00056                 union {value_type x, r, s;};
      +00057                 union {value_type y, g, t;};
      +00058                 union {value_type z, b, p;};
      +00059                 union {value_type w, a, q;};
      +00060 #       endif//GLM_COMPONENT
      +00061 
      +00063                 // Accesses
      +00064 
      +00065                 GLM_FUNC_DECL value_type & operator[](size_type i);
      +00066                 GLM_FUNC_DECL value_type const & operator[](size_type i) const;
      +00067 
      +00069                 // Implicit basic constructors
      +00070 
      +00071                 GLM_FUNC_DECL tvec4();
      +00072                 GLM_FUNC_DECL tvec4(type const & v);
      +00073 
      +00075                 // Explicit basic constructors
      +00076 
      +00077                 GLM_FUNC_DECL explicit tvec4(
      +00078                         ctor);
      +00079                 GLM_FUNC_DECL explicit tvec4(
      +00080                         value_type const & s);
      +00081                 GLM_FUNC_DECL explicit tvec4(
      +00082                         value_type const & s0, 
      +00083                         value_type const & s1, 
      +00084                         value_type const & s2, 
      +00085                         value_type const & s3);
      +00086 
      +00088                 // Convertion scalar constructors
      +00089 
      +00091                 template <typename U> 
      +00092                 GLM_FUNC_DECL explicit tvec4(
      +00093                         U const & x);
      +00095                 template <typename A, typename B, typename C, typename D> 
      +00096                 GLM_FUNC_DECL explicit tvec4(
      +00097                         A const & x, 
      +00098                         B const & y, 
      +00099                         C const & z, 
      +00100                         D const & w);                   
      +00101 
      +00103                 // Convertion vector constructors
      +00104 
      +00106                 template <typename A, typename B, typename C> 
      +00107                 GLM_FUNC_DECL explicit tvec4(tvec2<A> const & v, B const & s1, C const & s2);
      +00109                 template <typename A, typename B, typename C> 
      +00110                 GLM_FUNC_DECL explicit tvec4(A const & s1, tvec2<B> const & v, C const & s2);
      +00112                 template <typename A, typename B, typename C> 
      +00113                 GLM_FUNC_DECL explicit tvec4(A const & s1, B const & s2, tvec2<C> const & v);
      +00115                 template <typename A, typename B> 
      +00116                 GLM_FUNC_DECL explicit tvec4(tvec3<A> const & v, B const & s);
      +00118                 template <typename A, typename B> 
      +00119                 GLM_FUNC_DECL explicit tvec4(A const & s, tvec3<B> const & v);
      +00121                 template <typename A, typename B> 
      +00122                 GLM_FUNC_DECL explicit tvec4(tvec2<A> const & v1, tvec2<B> const & v2);
      +00124                 template <typename U> 
      +00125                 GLM_FUNC_DECL explicit tvec4(tvec4<U> const & v);
      +00126 
      +00128                 // Swizzle constructors
      +00129 
      +00130                 GLM_FUNC_DECL tvec4(tref4<T> const & r);
      +00131 
      +00133                 template <typename A, typename B, typename C> 
      +00134                 GLM_FUNC_DECL explicit tvec4(tref2<A> const & v, B const & s1, C const & s2);
      +00136                 template <typename A, typename B, typename C> 
      +00137                 GLM_FUNC_DECL explicit tvec4(A const & s1, tref2<B> const & v, C const & s2);
      +00139                 template <typename A, typename B, typename C> 
      +00140                 GLM_FUNC_DECL explicit tvec4(A const & s1, B const & s2, tref2<C> const & v);
      +00142                 template <typename A, typename B> 
      +00143                 GLM_FUNC_DECL explicit tvec4(tref3<A> const & v, B const & s);
      +00145                 template <typename A, typename B> 
      +00146                 GLM_FUNC_DECL explicit tvec4(A const & s, tref3<B> const & v);
      +00148                 template <typename A, typename B> 
      +00149                 GLM_FUNC_DECL explicit tvec4(tref2<A> const & v1, tref2<B> const & v2);
      +00151                 template <typename A, typename B> 
      +00152                 GLM_FUNC_DECL explicit tvec4(tvec2<A> const & v1, tref2<B> const & v2);
      +00154                 template <typename A, typename B> 
      +00155                 GLM_FUNC_DECL explicit tvec4(tref2<A> const & v1, tvec2<B> const & v2);
      +00156 
      +00158                 // Unary arithmetic operators
      +00159 
      +00160                 GLM_FUNC_DECL tvec4<T> & operator= (tvec4<T> const & v);
      +00161                 template <typename U>
      +00162                 GLM_FUNC_DECL tvec4<T> & operator= (tvec4<U> const & v);
      +00163 
      +00164                 template <typename U>
      +00165                 GLM_FUNC_DECL tvec4<T> & operator+=(U const & s);
      +00166                 template <typename U>
      +00167                 GLM_FUNC_DECL tvec4<T> & operator+=(tvec4<U> const & v);
      +00168                 template <typename U>
      +00169                 GLM_FUNC_DECL tvec4<T> & operator-=(U const & s);
      +00170                 template <typename U>
      +00171                 GLM_FUNC_DECL tvec4<T> & operator-=(tvec4<U> const & v);
      +00172                 template <typename U>
      +00173                 GLM_FUNC_DECL tvec4<T> & operator*=(U const & s);
      +00174                 template <typename U>
      +00175                 GLM_FUNC_DECL tvec4<T> & operator*=(tvec4<U> const & v);
      +00176                 template <typename U>
      +00177                 GLM_FUNC_DECL tvec4<T> & operator/=(U const & s);
      +00178                 template <typename U>
      +00179                 GLM_FUNC_DECL tvec4<T> & operator/=(tvec4<U> const & v);
      +00180                 GLM_FUNC_DECL tvec4<T> & operator++();
      +00181                 GLM_FUNC_DECL tvec4<T> & operator--();
      +00182 
      +00184                 // Unary bit operators
      +00185 
      +00186                 template <typename U>
      +00187                 GLM_FUNC_DECL tvec4<T> & operator%= (U const & s);
      +00188                 template <typename U>
      +00189                 GLM_FUNC_DECL tvec4<T> & operator%= (tvec4<U> const & v);
      +00190                 template <typename U>
      +00191                 GLM_FUNC_DECL tvec4<T> & operator&= (U const & s);
      +00192                 template <typename U>
      +00193                 GLM_FUNC_DECL tvec4<T> & operator&= (tvec4<U> const & v);
      +00194                 template <typename U>
      +00195                 GLM_FUNC_DECL tvec4<T> & operator|= (U const & s);
      +00196                 template <typename U>
      +00197                 GLM_FUNC_DECL tvec4<T> & operator|= (tvec4<U> const & v);
      +00198                 template <typename U>
      +00199                 GLM_FUNC_DECL tvec4<T> & operator^= (U const & s);
      +00200                 template <typename U>
      +00201                 GLM_FUNC_DECL tvec4<T> & operator^= (tvec4<U> const & v);
      +00202                 template <typename U>
      +00203                 GLM_FUNC_DECL tvec4<T> & operator<<=(U const & s);
      +00204                 template <typename U>
      +00205                 GLM_FUNC_DECL tvec4<T> & operator<<=(tvec4<U> const & v);
      +00206                 template <typename U>
      +00207                 GLM_FUNC_DECL tvec4<T> & operator>>=(U const & s);
      +00208                 template <typename U>
      +00209                 GLM_FUNC_DECL tvec4<T> & operator>>=(tvec4<U> const & v);
      +00210 
      +00212                 // Swizzle operators
      +00213 
      +00214                 GLM_FUNC_DECL value_type swizzle(comp X) const;
      +00215                 GLM_FUNC_DECL tvec2<T> swizzle(comp X, comp Y) const;
      +00216                 GLM_FUNC_DECL tvec3<T> swizzle(comp X, comp Y, comp Z) const;
      +00217                 GLM_FUNC_DECL tvec4<T> swizzle(comp X, comp Y, comp Z, comp W) const;
      +00218                 GLM_FUNC_DECL tref2<T> swizzle(comp X, comp Y);
      +00219                 GLM_FUNC_DECL tref3<T> swizzle(comp X, comp Y, comp Z);
      +00220                 GLM_FUNC_DECL tref4<T> swizzle(comp X, comp Y, comp Z, comp W);
      +00221         };
      +00222 
      +00223         template <typename T>
      +00224         struct tref4
      +00225         {
      +00226                 GLM_FUNC_DECL tref4(T & x, T & y, T & z, T & w);
      +00227                 GLM_FUNC_DECL tref4(tref4<T> const & r);
      +00228                 GLM_FUNC_DECL tref4(tvec4<T> const & v);
      +00229 
      +00230                 GLM_FUNC_DECL tref4<T> & operator= (tref4<T> const & r);
      +00231                 GLM_FUNC_DECL tref4<T> & operator= (tvec4<T> const & v);
      +00232 
      +00233                 GLM_FUNC_DECL tvec4<T> operator() ();
      +00234 
      +00235                 T & x;
      +00236                 T & y;
      +00237                 T & z;
      +00238                 T & w;
      +00239         };
      +00240 
      +00241         GLM_DETAIL_IS_VECTOR(tvec4);
      +00242 }//namespace detail
      +00243 
      +00244 namespace core{
      +00245 namespace type{
      +00246 namespace precision
      +00247 {
      +00252         typedef detail::tvec4<highp_float>              highp_vec4;
      +00253 
      +00258         typedef detail::tvec4<mediump_float>    mediump_vec4;
      +00259 
      +00264         typedef detail::tvec4<lowp_float>               lowp_vec4;
      +00265 
      +00270         typedef detail::tvec4<highp_int>                highp_ivec4;
      +00271 
      +00276         typedef detail::tvec4<mediump_int>              mediump_ivec4;
      +00277 
      +00282         typedef detail::tvec4<lowp_int>                 lowp_ivec4;
      +00283 
      +00288         typedef detail::tvec4<highp_uint>               highp_uvec4;
      +00289 
      +00294         typedef detail::tvec4<mediump_uint>             mediump_uvec4;
      +00295 
      +00300         typedef detail::tvec4<lowp_uint>                lowp_uvec4;
      +00301 
      +00302 }//namespace precision
      +00303 }//namespace type
      +00304 }//namespace core
      +00305 }//namespace glm
      +00306 
      +00307 #ifndef GLM_EXTERNAL_TEMPLATE
      +00308 #include "type_vec4.inl"
      +00309 #endif//GLM_EXTERNAL_TEMPLATE
      +00310 
      +00311 #endif//glm_core_type_gentype4
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00133_source.html b/doc/api-0.9.2/a00133_source.html new file mode 100644 index 00000000..a95cb15a --- /dev/null +++ b/doc/api-0.9.2/a00133_source.html @@ -0,0 +1,98 @@ + + + + +ulp.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      ulp.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2011-02-21
      +00005 // Updated : 2009-02-21
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/ulp.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_ulp
      +00014 #define glm_gtx_ulp
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_ulp extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace ulp 
      +00026 {
      +00029 
      +00032     template <typename genType>
      +00033     genType next_float(genType const & x);
      +00034         
      +00037     template <typename genType>
      +00038     genType prev_float(genType const & x);
      +00039 
      +00042     template <typename genType>
      +00043     genType next_float(genType const & x, uint const & Distance);
      +00044         
      +00047     template <typename genType>
      +00048     genType prev_float(genType const & x, uint const & Distance);
      +00049         
      +00052     template <typename T>
      +00053     uint float_distance(T const & x, T const & y);
      +00054         
      +00057     template<typename T, template<typename> class vecType>
      +00058     vecType<uint> float_distance(vecType<T> const & x, vecType<T> const & y);
      +00059         
      +00061 }// namespace ulp
      +00062 }// namespace gtx
      +00063 }// namespace glm
      +00064 
      +00065 #include "ulp.inl"
      +00066 
      +00067 namespace glm{using namespace gtx::ulp;}
      +00068 
      +00069 #endif//glm_gtx_ulp
      +00070 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00134_source.html b/doc/api-0.9.2/a00134_source.html new file mode 100644 index 00000000..c9021f3d --- /dev/null +++ b/doc/api-0.9.2/a00134_source.html @@ -0,0 +1,91 @@ + + + + +unsigned_int.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      unsigned_int.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-24
      +00005 // Updated : 2008-10-07
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/unsigned_int.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_integer
      +00013 
      +00014 #ifndef glm_gtx_unsigned_int
      +00015 #define glm_gtx_unsigned_int
      +00016 
      +00017 // Dependency:
      +00018 #include "../glm.hpp"
      +00019 #include "../gtx/integer.hpp"
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00022 #       pragma message("GLM: GLM_GTX_unsigned_int extension included")
      +00023 #endif
      +00024 
      +00025 namespace glm{
      +00026 namespace gtx{
      +00027 namespace unsigned_int 
      +00028 {
      +00029         using namespace gtx::integer;
      +00030 
      +00033 
      +00036         typedef signed int                                      sint;
      +00037 
      +00040         uint pow(uint x, uint y);
      +00041 
      +00044         uint sqrt(uint x);
      +00045 
      +00048         uint mod(uint x, uint y);
      +00049 
      +00051 }//namespace unsigned_int
      +00052 }//namespace gtx
      +00053 }//namespace glm
      +00054 
      +00055 #include "unsigned_int.inl"
      +00056 
      +00057 namespace glm{using namespace gtx::unsigned_int;}
      +00058 
      +00059 #endif//glm_gtx_unsigned_int
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00135_source.html b/doc/api-0.9.2/a00135_source.html new file mode 100644 index 00000000..6df9bd63 --- /dev/null +++ b/doc/api-0.9.2/a00135_source.html @@ -0,0 +1,134 @@ + + + + +vec1.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      vec1.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2010-02-08
      +00005 // Updated : 2010-02-08
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/vec1.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_vec1
      +00014 #define glm_gtx_vec1
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 #include "../core/type_vec1.hpp"
      +00019 
      +00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00021 #       pragma message("GLM: GLM_GTX_vec1 extension included")
      +00022 #endif
      +00023 
      +00024 namespace glm{
      +00025 namespace gtx{
      +00026 namespace vector1{ 
      +00027 namespace precision
      +00028 {
      +00032         typedef detail::highp_vec1_t                    highp_vec1;
      +00036         typedef detail::mediump_vec1_t                  mediump_vec1;
      +00040         typedef detail::lowp_vec1_t                             lowp_vec1;
      +00041 
      +00045         typedef detail::highp_ivec1_t                   highp_ivec1;
      +00049         typedef detail::mediump_ivec1_t                 mediump_ivec1;
      +00053         typedef detail::lowp_ivec1_t                    lowp_ivec1;
      +00054 
      +00058         typedef detail::highp_uvec1_t                   highp_uvec1;
      +00062         typedef detail::mediump_uvec1_t                 mediump_uvec1;
      +00066         typedef detail::lowp_uvec1_t                    lowp_uvec1;
      +00067 }//namespace precision
      +00068 
      +00070         // vec1 definition
      +00071 
      +00074         typedef detail::tvec1<bool>     bvec1;
      +00075 
      +00076 #if(defined(GLM_PRECISION_HIGHP_FLOAT))
      +00077         typedef precision::highp_vec1                   vec1;
      +00078 #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
      +00079         typedef precision::mediump_vec1                 vec1;
      +00080 #elif(defined(GLM_PRECISION_LOWP_FLOAT))
      +00081         typedef precision::lowp_vec1                    vec1;
      +00082 #else
      +00083 
      +00084 
      +00085         typedef precision::mediump_vec1                 vec1;
      +00086 #endif//GLM_PRECISION
      +00087 
      +00088 #if(defined(GLM_PRECISION_HIGHP_INT))
      +00089         typedef precision::highp_ivec1                  ivec1;
      +00090 #elif(defined(GLM_PRECISION_MEDIUMP_INT))
      +00091         typedef precision::mediump_ivec1                ivec1;
      +00092 #elif(defined(GLM_PRECISION_LOWP_INT))
      +00093         typedef precision::lowp_ivec1                   ivec1;
      +00094 #else
      +00095 
      +00096 
      +00097         typedef precision::mediump_ivec1                ivec1;
      +00098 #endif//GLM_PRECISION
      +00099 
      +00100 #if(defined(GLM_PRECISION_HIGHP_UINT))
      +00101         typedef precision::highp_uvec1                  uvec1;
      +00102 #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
      +00103         typedef precision::mediump_uvec1                uvec1;
      +00104 #elif(defined(GLM_PRECISION_LOWP_UINT))
      +00105         typedef precision::lowp_uvec1                   uvec1;
      +00106 #else
      +00107 
      +00108 
      +00109         typedef precision::mediump_uvec1                uvec1;
      +00110 #endif//GLM_PRECISION
      +00111 
      +00112 }// namespace vec1
      +00113 }// namespace gtx
      +00114 }// namespace glm
      +00115 
      +00116 #include "vec1.inl"
      +00117 
      +00118 namespace glm{using namespace gtx::vector1;}
      +00119 
      +00120 #endif//glm_gtx_vec1
      +00121 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00136_source.html b/doc/api-0.9.2/a00136_source.html new file mode 100644 index 00000000..f16b4b1e --- /dev/null +++ b/doc/api-0.9.2/a00136_source.html @@ -0,0 +1,100 @@ + + + + +vector_access.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      vector_access.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2006-01-16
      +00005 // Updated : 2008-10-07
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/vector_access.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_vector_access
      +00014 #define glm_gtx_vector_access
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_vector_access extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace vector_access 
      +00026 {
      +00029 
      +00032     template <typename valType> 
      +00033         void set(
      +00034                 detail::tvec2<valType> & v, 
      +00035                 valType const & x, 
      +00036                 valType const & y);
      +00037 
      +00040     template <typename valType> 
      +00041         void set(
      +00042                 detail::tvec3<valType> & v, 
      +00043                 valType const & x, 
      +00044                 valType const & y, 
      +00045                 valType const & z);
      +00046 
      +00049     template <typename valType> 
      +00050         void set(
      +00051                 detail::tvec4<valType> & v, 
      +00052                 valType const & x, 
      +00053                 valType const & y, 
      +00054                 valType const & z, 
      +00055                 valType const & w);
      +00056 
      +00058 }//namespace vector_access
      +00059 }//namespace gtx
      +00060 }//namespace glm
      +00061 
      +00062 #include "vector_access.inl"
      +00063 
      +00064 namespace glm{using namespace gtx::vector_access;}
      +00065 
      +00066 #endif//glm_gtx_vector_access
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00137_source.html b/doc/api-0.9.2/a00137_source.html new file mode 100644 index 00000000..596b54ad --- /dev/null +++ b/doc/api-0.9.2/a00137_source.html @@ -0,0 +1,103 @@ + + + + +vector_angle.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      vector_angle.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2005-12-30
      +00005 // Updated : 2006-11-13
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/vector_angle.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00011 // - GLM_GTX_quaternion
      +00012 // - GLM_GTX_epsilon
      +00014 
      +00015 #ifndef glm_gtx_vector_angle
      +00016 #define glm_gtx_vector_angle
      +00017 
      +00018 // Dependency:
      +00019 #include "../glm.hpp"
      +00020 #include "../gtx/epsilon.hpp"
      +00021 #include "../gtx/quaternion.hpp"
      +00022 #include "../gtx/rotate_vector.hpp"
      +00023 
      +00024 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00025 #       pragma message("GLM: GLM_GTX_vector_angle extension included")
      +00026 #endif
      +00027 
      +00028 namespace glm{
      +00029 namespace gtx{
      +00030 namespace vector_angle 
      +00031 {
      +00032         using namespace quaternion;
      +00033         using namespace epsilon;
      +00034 
      +00037 
      +00041         template <typename vecType> 
      +00042         GLM_FUNC_QUALIFIER typename vecType::value_type angle(
      +00043                 vecType const & x, 
      +00044                 vecType const & y);
      +00045 
      +00049         template <typename T> 
      +00050         GLM_FUNC_QUALIFIER T orientedAngle(
      +00051                 detail::tvec2<T> const & x, 
      +00052                 detail::tvec2<T> const & y);
      +00053 
      +00057         template <typename T>
      +00058         GLM_FUNC_QUALIFIER T orientedAngle(
      +00059                 detail::tvec3<T> const & x,
      +00060                 detail::tvec3<T> const & y,
      +00061                 detail::tvec3<T> const & ref);
      +00062 
      +00064 }// namespace vector_angle
      +00065 }// namespace gtx
      +00066 }// namespace glm
      +00067 
      +00068 #include "vector_angle.inl"
      +00069 
      +00070 namespace glm{using namespace gtx::vector_angle;}
      +00071 
      +00072 #endif//glm_gtx_vector_angle
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00138_source.html b/doc/api-0.9.2/a00138_source.html new file mode 100644 index 00000000..0d018671 --- /dev/null +++ b/doc/api-0.9.2/a00138_source.html @@ -0,0 +1,121 @@ + + + + +vector_query.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      vector_query.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-03-05
      +00005 // Updated : 2007-03-05
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/vector_query.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_vector_query
      +00014 #define glm_gtx_vector_query
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 #include <cfloat>
      +00019 #include <limits>
      +00020 
      +00021 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00022 #       pragma message("GLM: GLM_GTX_vector_query extension included")
      +00023 #endif
      +00024 
      +00025 namespace glm{
      +00026 namespace gtx{
      +00027 namespace vector_query 
      +00028 {
      +00031 
      +00034         template <typename genType> 
      +00035         bool areCollinear(
      +00036                 genType const & v0, 
      +00037                 genType const & v1, 
      +00038                 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
      +00039                 
      +00042         template <typename genType> 
      +00043         bool areOpposite(
      +00044                 genType const & v0, 
      +00045                 genType const & v1, 
      +00046                 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
      +00047                 
      +00050         template <typename genType> 
      +00051         bool areOrthogonal(
      +00052                 genType const & v0, 
      +00053                 genType const & v1, 
      +00054                 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
      +00055 
      +00058         template <typename genType> 
      +00059         bool isNormalized(
      +00060                 genType const & v, 
      +00061                 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
      +00062                 
      +00065         template <typename genType> 
      +00066         bool isNull(
      +00067                 genType const & v, 
      +00068                 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
      +00069 
      +00072         template <typename genType>
      +00073         bool areOrthonormal(
      +00074                 genType const & v0, 
      +00075                 genType const & v1, 
      +00076                 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
      +00077 
      +00080         template <typename genType> 
      +00081         bool areSimilar(
      +00082                 genType const & v0, 
      +00083                 genType const & v1, 
      +00084                 typename genType::value_type const & epsilon = std::numeric_limits<typename genType::value_type>::epsilon());
      +00085 
      +00087 }// namespace vector_query
      +00088 }// namespace gtx
      +00089 }// namespace glm
      +00090 
      +00091 #include "vector_query.inl"
      +00092 
      +00093 namespace glm{using namespace gtx::vector_query;}
      +00094 
      +00095 #endif//glm_gtx_vector_query
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00139_source.html b/doc/api-0.9.2/a00139_source.html new file mode 100644 index 00000000..a2f38df9 --- /dev/null +++ b/doc/api-0.9.2/a00139_source.html @@ -0,0 +1,94 @@ + + + + +verbose_operator.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      verbose_operator.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2007-05-21
      +00005 // Updated : 2007-05-21
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/verbose_operator.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_verbose_operator
      +00014 #define glm_gtx_verbose_operator
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_verbose_operator extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace verbose_operator 
      +00026 {
      +00029 
      +00032         template <typename genTypeT, typename genTypeU> 
      +00033         genTypeT add(genTypeT const & a, genTypeU const & b);
      +00034 
      +00037         template <typename genTypeT, typename genTypeU> 
      +00038         genTypeT sub(genTypeT const & a, genTypeU const & b);
      +00039 
      +00042         template <typename genTypeT, typename genTypeU> 
      +00043         genTypeT mul(genTypeT const & a, genTypeU const & b);
      +00044 
      +00047         template <typename genTypeT, typename genTypeU> 
      +00048         genTypeT div(genTypeT const & a, genTypeU const & b);
      +00049 
      +00052         template <typename genTypeT, typename genTypeU, typename genTypeV> 
      +00053         genTypeT mad(genTypeT const & a, genTypeU const & b, genTypeV const & c);
      +00054 
      +00056 }// namespace verbose_operator
      +00057 }// namespace gtx
      +00058 }// namespace glm
      +00059 
      +00060 #include "verbose_operator.inl"
      +00061 
      +00062 namespace glm{using namespace gtx::verbose_operator;}
      +00063 
      +00064 #endif//glm_gtx_verbose_operator
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00140_source.html b/doc/api-0.9.2/a00140_source.html new file mode 100644 index 00000000..aa054d38 --- /dev/null +++ b/doc/api-0.9.2/a00140_source.html @@ -0,0 +1,47 @@ + + + + +virtrevModules.doxy Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      virtrevModules.doxy
      +
      +
      +
      00001 
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00141_source.html b/doc/api-0.9.2/a00141_source.html new file mode 100644 index 00000000..ec945213 --- /dev/null +++ b/doc/api-0.9.2/a00141_source.html @@ -0,0 +1,88 @@ + + + + +wrap.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      wrap.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00004 // Created : 2009-11-25
      +00005 // Updated : 2009-11-25
      +00006 // Licence : This source is under MIT License
      +00007 // File    : glm/gtx/wrap.hpp
      +00009 // Dependency:
      +00010 // - GLM core
      +00012 
      +00013 #ifndef glm_gtx_wrap
      +00014 #define glm_gtx_wrap
      +00015 
      +00016 // Dependency:
      +00017 #include "../glm.hpp"
      +00018 
      +00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00020 #       pragma message("GLM: GLM_GTX_wrap extension included")
      +00021 #endif
      +00022 
      +00023 namespace glm{
      +00024 namespace gtx{
      +00025 namespace wrap 
      +00026 {
      +00029 
      +00032         template <typename genType> 
      +00033         genType clamp(genType const & Texcoord);
      +00034 
      +00037         template <typename genType> 
      +00038         genType repeat(genType const & Texcoord);
      +00039 
      +00042         template <typename genType> 
      +00043         genType mirrorRepeat(genType const & Texcoord);
      +00044 
      +00046 }// namespace wrap
      +00047 }// namespace gtx
      +00048 }// namespace glm
      +00049 
      +00050 #include "wrap.inl"
      +00051 
      +00052 namespace glm{using namespace gtx::wrap;}
      +00053 
      +00054 #endif//glm_img_wrap
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00142_source.html b/doc/api-0.9.2/a00142_source.html new file mode 100644 index 00000000..4a48dd9b --- /dev/null +++ b/doc/api-0.9.2/a00142_source.html @@ -0,0 +1,190 @@ + + + + +xstream.hpp Source File + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      xstream.hpp
      +
      +
      +
      00001 
      +00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
      +00003 // Virtrev SDK copyright matrem (matrem84.free.fr)
      +00005 // Created : 2008-05-24
      +00006 // Updated : 2008-05-26
      +00007 // Licence : This source is under MIT License
      +00008 // File    : glm/ext/virtrev/xstream.hpp
      +00010 // Dependency:
      +00011 // - GLM core
      +00012 // - GLM_GTX_matrix_selection
      +00014 
      +00015 #ifndef GLM_EXT_VIRTREV_XSTREAM_HPP
      +00016 #define GLM_EXT_VIRTREV_XSTREAM_HPP
      +00017 
      +00018 #include "../glm.hpp"
      +00019 #include "../gtc/matrix_access.hpp"
      +00020 #include <iostream>
      +00021 
      +00022 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
      +00023 #       pragma message("GLM: GLM_VIRTREV_xstream extension included")
      +00024 #endif
      +00025 
      +00026 namespace glm
      +00027 {
      +00028         namespace virtrev_glmext
      +00029         {
      +00031                 namespace xstream
      +00032                 {
      +00033                         template<typename T>
      +00034                         std::ostream & operator << (std::ostream & stream, glm::detail::tvec2<T> const & vec)
      +00035                         {
      +00036                                 stream << "<glm_vec2 ";
      +00037                                 stream << "x=\"" << vec.x << "\" ";
      +00038                                 stream << "y=\"" << vec.y << "\" ";
      +00039                                 stream << "/>";
      +00040 
      +00041                                 return stream;
      +00042                         }
      +00043 
      +00044                         template<typename T>
      +00045                         std::ostream & operator << (std::ostream & stream, glm::detail::tvec3<T> const & vec)
      +00046                         {
      +00047                                 stream << "<glm_vec3 ";
      +00048                                 stream << "x=\"" << vec.x << "\" ";
      +00049                                 stream << "y=\"" << vec.y << "\" ";
      +00050                                 stream << "z=\"" << vec.z << "\" ";
      +00051                                 stream << "/>";
      +00052 
      +00053                                 return stream;
      +00054                         }
      +00055 
      +00056                         template<typename T>
      +00057                         std::ostream & operator << (std::ostream & stream, glm::detail::tvec4<T> const & vec)
      +00058                         {
      +00059                                 stream << "<glm_vec4 ";
      +00060                                 stream << "x=\"" << vec.x << "\" ";
      +00061                                 stream << "y=\"" << vec.y << "\" ";
      +00062                                 stream << "z=\"" << vec.z << "\" ";
      +00063                                 stream << "w=\"" << vec.w << "\" ";
      +00064                                 stream << "/>";
      +00065 
      +00066                                 return stream;
      +00067                         }
      +00068 
      +00069                         template<typename T>
      +00070                         std::ostream & operator << (std::ostream & stream, glm::detail::tmat2x2<T> const & mat)
      +00071                         {
      +00072                                 stream << "<glm_mat2>" << std::endl;
      +00073                                 stream << "<row ";
      +00074                                 stream << "x=\"" << glm::row(mat, 0)[0] << "\" ";
      +00075                                 stream << "y=\"" << glm::row(mat, 0)[1] << "\" ";
      +00076                                 stream << "/>" << std::endl;
      +00077                                 stream << "<row ";
      +00078                                 stream << "x=\"" << glm::row(mat, 1)[0] << "\" ";
      +00079                                 stream << "y=\"" << glm::row(mat, 1)[1] << "\" ";
      +00080                                 stream << "/>" << std::endl;
      +00081                                 stream << "</glm_mat2>";
      +00082 
      +00083                                 return stream;
      +00084                         }
      +00085 
      +00086                         template<typename T>
      +00087                         std::ostream & operator << (std::ostream & stream, glm::detail::tmat3x3<T> const & mat)
      +00088                         {
      +00089                                 stream << "<glm_mat3>" << std::endl;
      +00090                                 stream << "<row ";
      +00091                                 stream << "x=\"" << glm::row(mat, 0)[0] << "\" ";
      +00092                                 stream << "y=\"" << glm::row(mat, 0)[1] << "\" ";
      +00093                                 stream << "z=\"" << glm::row(mat, 0)[2] << "\" ";
      +00094                                 stream << "/>" << std::endl;
      +00095                                 stream << "<row ";
      +00096                                 stream << "x=\"" << glm::row(mat, 1)[0] << "\" ";
      +00097                                 stream << "y=\"" << glm::row(mat, 1)[1] << "\" ";
      +00098                                 stream << "z=\"" << glm::row(mat, 1)[2] << "\" ";
      +00099                                 stream << "/>" << std::endl;
      +00100                                 stream << "<row ";
      +00101                                 stream << "x=\"" << glm::row(mat, 2)[0] << "\" ";
      +00102                                 stream << "y=\"" << glm::row(mat, 2)[1] << "\" ";
      +00103                                 stream << "z=\"" << glm::row(mat, 2)[2] << "\" ";
      +00104                                 stream << "/>" << std::endl;
      +00105                                 stream << "</glm_mat3>";
      +00106 
      +00107                                 return stream;
      +00108                         }
      +00109 
      +00110                         template<typename T>
      +00111                         std::ostream & operator << (std::ostream & stream, glm::detail::tmat4x4<T> const & mat)
      +00112                         {
      +00113                                 stream << "<glm_mat4>" << std::endl;
      +00114                                 stream << "<row ";
      +00115                                 stream << "x=\"" << glm::row(mat, 0)[0] << "\" ";
      +00116                                 stream << "y=\"" << glm::row(mat, 0)[1] << "\" ";
      +00117                                 stream << "z=\"" << glm::row(mat, 0)[2] << "\" ";
      +00118                                 stream << "w=\"" << glm::row(mat, 0)[3] << "\" ";
      +00119                                 stream << "/>" << std::endl;
      +00120                                 stream << "<row ";
      +00121                                 stream << "x=\"" << glm::row(mat, 1)[0] << "\" ";
      +00122                                 stream << "y=\"" << glm::row(mat, 1)[1] << "\" ";
      +00123                                 stream << "z=\"" << glm::row(mat, 1)[2] << "\" ";
      +00124                                 stream << "w=\"" << glm::row(mat, 1)[3] << "\" ";
      +00125                                 stream << "/>" << std::endl;
      +00126                                 stream << "<row ";
      +00127                                 stream << "x=\"" << glm::row(mat, 2)[0] << "\" ";
      +00128                                 stream << "y=\"" << glm::row(mat, 2)[1] << "\" ";
      +00129                                 stream << "z=\"" << glm::row(mat, 2)[2] << "\" ";
      +00130                                 stream << "w=\"" << glm::row(mat, 2)[3] << "\" ";
      +00131                                 stream << "/>" << std::endl;
      +00132                                 stream << "<row ";
      +00133                                 stream << "x=\"" << glm::row(mat, 3)[0] << "\" ";
      +00134                                 stream << "y=\"" << glm::row(mat, 3)[1] << "\" ";
      +00135                                 stream << "z=\"" << glm::row(mat, 3)[2] << "\" ";
      +00136                                 stream << "w=\"" << glm::row(mat, 3)[3] << "\" ";
      +00137                                 stream << "/>" << std::endl;
      +00138                                 stream << "</glm_mat4>";
      +00139                         
      +00140                                 return stream;
      +00141                         }
      +00142                 }
      +00143         }
      +00144 }
      +00145 
      +00146 namespace glm{using namespace glm::virtrev_glmext::xstream;}
      +00147 
      +00148 #endif//GLM_EXT_VIRTREV_XSTREAM_HPP
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00143.html b/doc/api-0.9.2/a00143.html new file mode 100644 index 00000000..80b758e5 --- /dev/null +++ b/doc/api-0.9.2/a00143.html @@ -0,0 +1,62 @@ + + + + +glm Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      + +
      +
      glm Namespace Reference
      +
      +
      + +

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

      + + + + + + +

      +Namespaces

      namespace  core
      namespace  gtc
      namespace  gtx
      namespace  virtrev
      +

      Detailed Description

      +

      GLM namespace, it contains all GLSL based features.

      +
      + + + diff --git a/doc/api-0.9.2/a00144.html b/doc/api-0.9.2/a00144.html new file mode 100644 index 00000000..c0aed059 --- /dev/null +++ b/doc/api-0.9.2/a00144.html @@ -0,0 +1,66 @@ + + + + +glm::core Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::core Namespace Reference
      +
      +
      + +

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

      + + + + +

      +Namespaces

      namespace  function
      namespace  type
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00145.html b/doc/api-0.9.2/a00145.html new file mode 100644 index 00000000..9e32f1b3 --- /dev/null +++ b/doc/api-0.9.2/a00145.html @@ -0,0 +1,72 @@ + + + + +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  exponential
      namespace  integer
      namespace  matrix
      namespace  packing
      namespace  trigonometric
      namespace  vector_relational
      +

      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.

      +
      + + + diff --git a/doc/api-0.9.2/a00147.html b/doc/api-0.9.2/a00147.html new file mode 100644 index 00000000..9ef2a52b --- /dev/null +++ b/doc/api-0.9.2/a00147.html @@ -0,0 +1,80 @@ + + + + +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)
      template<typename genType >
      genType exp2 (genType const &x)
      template<typename genType >
      genType inversesqrt (genType const &x)
      template<typename genType >
      genType log (genType const &x)
      template<typename genType >
      genType log2 (genType const &x)
      template<typename genType >
      genType pow (genType const &x, genType const &y)
      template<typename genType >
      genType sqrt (genType const &x)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00149.html b/doc/api-0.9.2/a00149.html new file mode 100644 index 00000000..1e332aee --- /dev/null +++ b/doc/api-0.9.2/a00149.html @@ -0,0 +1,86 @@ + + + + +glm::core::function::integer Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::core::function::integer Namespace Reference
      +
      +
      + +

      Define integer functions from Section 8.8 of GLSL 4.00.8 specification. +More...

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

      +Functions

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

      Detailed Description

      +

      Define integer functions from Section 8.8 of GLSL 4.00.8 specification.

      +
      + + + diff --git a/doc/api-0.9.2/a00150.html b/doc/api-0.9.2/a00150.html new file mode 100644 index 00000000..1873fd50 --- /dev/null +++ b/doc/api-0.9.2/a00150.html @@ -0,0 +1,84 @@ + + + + +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 T >
      detail::tmat2x2< T >::value_type determinant (detail::tmat2x2< T > const &m)
      template<typename T >
      detail::tmat3x3< T >::value_type determinant (detail::tmat3x3< T > const &m)
      template<typename T >
      detail::tmat4x4< T >::value_type determinant (detail::tmat4x4< T > const &m)
      template<typename T >
      detail::tmat4x4< T > inverse (detail::tmat4x4< T > const &m)
      template<typename T >
      detail::tmat3x3< T > inverse (detail::tmat3x3< T > const &m)
      template<typename T >
      detail::tmat2x2< T > inverse (detail::tmat2x2< T > const &m)
      template<typename matType >
      matType matrixCompMult (matType const &x, matType const &y)
      template<typename vecType , typename matType >
      matType outerProduct (vecType const &c, vecType const &r)
      template<typename matType >
      matType::transpose_type transpose (matType const &x)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00152.html b/doc/api-0.9.2/a00152.html new file mode 100644 index 00000000..f343f5be --- /dev/null +++ b/doc/api-0.9.2/a00152.html @@ -0,0 +1,74 @@ + + + + +glm::core::function::packing Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::core::function::packing Namespace Reference
      +
      +
      + +

      Define packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification. +More...

      + + + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      Define packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification.

      +
      + + + diff --git a/doc/api-0.9.2/a00153.html b/doc/api-0.9.2/a00153.html new file mode 100644 index 00000000..9907dfe1 --- /dev/null +++ b/doc/api-0.9.2/a00153.html @@ -0,0 +1,97 @@ + + + + +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)
      template<typename genType >
      genType acosh (genType const &x)
      template<typename genType >
      genType asin (genType const &x)
      template<typename genType >
      genType asinh (genType const &x)
      template<typename genType >
      genType atan (genType const &y, genType const &x)
      template<typename genType >
      genType atan (genType const &y_over_x)
      template<typename genType >
      genType atanh (genType const &x)
      template<typename genType >
      genType cos (genType const &angle)
      template<typename genType >
      genType cosh (genType const &angle)
      template<typename genType >
      genType degrees (genType const &radians)
      template<typename genType >
      genType radians (genType const &degrees)
      template<typename genType >
      genType sin (genType const &angle)
      template<typename genType >
      genType sinh (genType const &angle)
      template<typename genType >
      genType tan (genType const &angle)
      template<typename genType >
      genType tanh (genType const &angle)
      +

      Detailed Description

      +

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

      +

      Included in glm namespace.

      +
      + + + diff --git a/doc/api-0.9.2/a00154.html b/doc/api-0.9.2/a00154.html new file mode 100644 index 00000000..b8096c14 --- /dev/null +++ b/doc/api-0.9.2/a00154.html @@ -0,0 +1,91 @@ + + + + +glm::core::function::vector_relational Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::core::function::vector_relational Namespace Reference
      +
      +
      + +

      Define vector relational functions from Section 8.6 of GLSL 1.30.8 specification. +More...

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

      +Functions

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

      Detailed Description

      +

      Define vector relational functions from Section 8.6 of GLSL 1.30.8 specification.

      +

      Included in glm namespace.

      +
      + + + diff --git a/doc/api-0.9.2/a00155.html b/doc/api-0.9.2/a00155.html new file mode 100644 index 00000000..f2ab5455 --- /dev/null +++ b/doc/api-0.9.2/a00155.html @@ -0,0 +1,129 @@ + + + + +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  precision

      +Typedefs

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

      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.

      +

      Typedef Documentation

      + +
      +
      + + + + +
      typedef uint_t uint
      +
      +
      + +

      Unsigned integer.

      +

      From GLSL 1.30.8 specification section 4.1.3 Integers.

      + +

      Definition at line 103 of file type_int.hpp.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00156.html b/doc/api-0.9.2/a00156.html new file mode 100644 index 00000000..c40f7631 --- /dev/null +++ b/doc/api-0.9.2/a00156.html @@ -0,0 +1,349 @@ + + + + +glm::core::type::precision Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::core::type::precision Namespace Reference
      +
      +
      + +

      < Namespace for precision stuff. +More...

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

      +Typedefs

      typedef highp_float_t highp_float
      typedef detail::highp_int_t highp_int
      typedef detail::tvec2< highp_inthighp_ivec2
      typedef detail::tvec3< highp_inthighp_ivec3
      typedef detail::tvec4< highp_inthighp_ivec4
      typedef detail::tmat2x2
      +< highp_float
      highp_mat2
      typedef detail::tmat2x2
      +< highp_float
      highp_mat2x2
      typedef detail::tmat2x3
      +< highp_float
      highp_mat2x3
      typedef detail::tmat2x4
      +< highp_float
      highp_mat2x4
      typedef detail::tmat3x3
      +< highp_float
      highp_mat3
      typedef detail::tmat3x2
      +< highp_float
      highp_mat3x2
      typedef detail::tmat3x3
      +< highp_float
      highp_mat3x3
      typedef detail::tmat3x4
      +< highp_float
      highp_mat3x4
      typedef detail::tmat4x4
      +< highp_float
      highp_mat4
      typedef detail::tmat4x2
      +< highp_float
      highp_mat4x2
      typedef detail::tmat4x3
      +< highp_float
      highp_mat4x3
      typedef detail::tmat4x4
      +< highp_float
      highp_mat4x4
      typedef detail::highp_uint_t highp_uint
      typedef detail::tvec2< highp_uinthighp_uvec2
      typedef detail::tvec3< highp_uinthighp_uvec3
      typedef detail::tvec4< highp_uinthighp_uvec4
      typedef detail::tvec2
      +< highp_float
      highp_vec2
      typedef detail::tvec3
      +< highp_float
      highp_vec3
      typedef detail::tvec4
      +< highp_float
      highp_vec4
      typedef lowp_float_t lowp_float
      typedef detail::lowp_int_t lowp_int
      typedef detail::tvec2< lowp_intlowp_ivec2
      typedef detail::tvec3< lowp_intlowp_ivec3
      typedef detail::tvec4< lowp_intlowp_ivec4
      typedef detail::tmat2x2
      +< lowp_float
      lowp_mat2
      typedef detail::tmat2x2
      +< lowp_float
      lowp_mat2x2
      typedef detail::tmat2x3
      +< lowp_float
      lowp_mat2x3
      typedef detail::tmat2x4
      +< lowp_float
      lowp_mat2x4
      typedef detail::tmat3x3
      +< lowp_float
      lowp_mat3
      typedef detail::tmat3x2
      +< lowp_float
      lowp_mat3x2
      typedef detail::tmat3x3
      +< lowp_float
      lowp_mat3x3
      typedef detail::tmat3x4
      +< lowp_float
      lowp_mat3x4
      typedef detail::tmat4x4
      +< lowp_float
      lowp_mat4
      typedef detail::tmat4x2
      +< lowp_float
      lowp_mat4x2
      typedef detail::tmat4x3
      +< lowp_float
      lowp_mat4x3
      typedef detail::tmat4x4
      +< lowp_float
      lowp_mat4x4
      typedef detail::lowp_uint_t lowp_uint
      typedef detail::tvec2< lowp_uintlowp_uvec2
      typedef detail::tvec3< lowp_uintlowp_uvec3
      typedef detail::tvec4< lowp_uintlowp_uvec4
      typedef detail::tvec2< lowp_floatlowp_vec2
      typedef detail::tvec3< lowp_floatlowp_vec3
      typedef detail::tvec4< lowp_floatlowp_vec4
      typedef mediump_float_t mediump_float
      typedef detail::mediump_int_t mediump_int
      typedef detail::tvec2
      +< mediump_int
      mediump_ivec2
      typedef detail::tvec3
      +< mediump_int
      mediump_ivec3
      typedef detail::tvec4
      +< mediump_int
      mediump_ivec4
      typedef detail::tmat2x2
      +< mediump_float
      mediump_mat2
      typedef detail::tmat2x2
      +< mediump_float
      mediump_mat2x2
      typedef detail::tmat2x3
      +< mediump_float
      mediump_mat2x3
      typedef detail::tmat2x4
      +< mediump_float
      mediump_mat2x4
      typedef detail::tmat3x3
      +< mediump_float
      mediump_mat3
      typedef detail::tmat3x2
      +< mediump_float
      mediump_mat3x2
      typedef detail::tmat3x3
      +< mediump_float
      mediump_mat3x3
      typedef detail::tmat3x4
      +< mediump_float
      mediump_mat3x4
      typedef detail::tmat4x4
      +< mediump_float
      mediump_mat4
      typedef detail::tmat4x2
      +< mediump_float
      mediump_mat4x2
      typedef detail::tmat4x3
      +< mediump_float
      mediump_mat4x3
      typedef detail::tmat4x4
      +< mediump_float
      mediump_mat4x4
      typedef detail::mediump_uint_t mediump_uint
      typedef detail::tvec2
      +< mediump_uint
      mediump_uvec2
      typedef detail::tvec3
      +< mediump_uint
      mediump_uvec3
      typedef detail::tvec4
      +< mediump_uint
      mediump_uvec4
      typedef detail::tvec2
      +< mediump_float
      mediump_vec2
      typedef detail::tvec3
      +< mediump_float
      mediump_vec3
      typedef detail::tvec4
      +< mediump_float
      mediump_vec4
      +

      Detailed Description

      +

      < Namespace for precision stuff.

      +

      Typedef Documentation

      + +
      + +
      + +

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

      +

      There is no guarantee 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 215 of file type_mat2x4.hpp.

      + +
      +
      + +
      + +
      + +

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

      +

      There is no guarantee 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 221 of file type_mat3x2.hpp.

      + +
      +
      + +
      + +
      + +

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

      +

      There is no guarantee 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 221 of file type_mat3x4.hpp.

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

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

      +

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

      + +

      Definition at line 207 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 guarantee 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 213 of file type_mat3x2.hpp.

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

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

      +

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

      + +

      Definition at line 213 of file type_mat3x4.hpp.

      + +
      +
      + +
      + +
      + +

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

      +

      There is no guarantee 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 211 of file type_mat2x4.hpp.

      + +
      +
      + +
      + +
      + +

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

      +

      There is no guarantee 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 217 of file type_mat3x2.hpp.

      + +
      +
      + +
      + +
      + +

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

      +

      There is no guarantee 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 217 of file type_mat3x4.hpp.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00158.html b/doc/api-0.9.2/a00158.html new file mode 100644 index 00000000..8b8edaa4 --- /dev/null +++ b/doc/api-0.9.2/a00158.html @@ -0,0 +1,73 @@ + + + + +glm::gtc Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtc Namespace Reference
      +
      +
      + +

      G-Truc Creation stable extensions. +More...

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

      +Namespaces

      namespace  half_float
      namespace  matrix_access
      namespace  matrix_integer
      namespace  matrix_inverse
      namespace  matrix_transform
      namespace  quaternion
      namespace  swizzle
      namespace  type_precision
      namespace  type_ptr
      +

      Detailed Description

      +

      G-Truc Creation stable extensions.

      +
      + + + diff --git a/doc/api-0.9.2/a00159.html b/doc/api-0.9.2/a00159.html new file mode 100644 index 00000000..4a84abf4 --- /dev/null +++ b/doc/api-0.9.2/a00159.html @@ -0,0 +1,96 @@ + + + + +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
      typedef detail::tmat2x2
      +< detail::thalf
      hmat2
      typedef detail::tmat2x2
      +< detail::thalf
      hmat2x2
      typedef detail::tmat2x3
      +< detail::thalf
      hmat2x3
      typedef detail::tmat2x4
      +< detail::thalf
      hmat2x4
      typedef detail::tmat3x3
      +< detail::thalf
      hmat3
      typedef detail::tmat3x2
      +< detail::thalf
      hmat3x2
      typedef detail::tmat3x3
      +< detail::thalf
      hmat3x3
      typedef detail::tmat3x4
      +< detail::thalf
      hmat3x4
      typedef detail::tmat4x4
      +< detail::thalf
      hmat4
      typedef detail::tmat4x2
      +< detail::thalf
      hmat4x2
      typedef detail::tmat4x3
      +< detail::thalf
      hmat4x3
      typedef detail::tmat4x4
      +< detail::thalf
      hmat4x4
      typedef detail::tvec2
      +< detail::thalf
      hvec2
      typedef detail::tvec3
      +< detail::thalf
      hvec3
      typedef detail::tvec4
      +< detail::thalf
      hvec4
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00160.html b/doc/api-0.9.2/a00160.html new file mode 100644 index 00000000..4c7b306b --- /dev/null +++ b/doc/api-0.9.2/a00160.html @@ -0,0 +1,73 @@ + + + + +glm::gtc::matrix_access Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtc::matrix_access Namespace Reference
      +
      +
      + +

      < GLM_GTC_matrix_access extension: Set a column or a row of a matrix +More...

      + + + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      < GLM_GTC_matrix_access extension: Set a column or a row of a matrix

      +
      + + + diff --git a/doc/api-0.9.2/a00161.html b/doc/api-0.9.2/a00161.html new file mode 100644 index 00000000..f750ab8d --- /dev/null +++ b/doc/api-0.9.2/a00161.html @@ -0,0 +1,317 @@ + + + + +glm::gtc::matrix_integer Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtc::matrix_integer Namespace Reference
      +
      +
      + +

      < GLM_GTC_matrix_integer extension: Add integer matrices +More...

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

      +Typedefs

      +typedef detail::tmat2x2
      +< highp_int
      highp_imat2
      +typedef detail::tmat2x2
      +< highp_int
      highp_imat2x2
      +typedef detail::tmat2x3
      +< highp_int
      highp_imat2x3
      +typedef detail::tmat2x4
      +< highp_int
      highp_imat2x4
      +typedef detail::tmat3x3
      +< highp_int
      highp_imat3
      +typedef detail::tmat3x2
      +< highp_int
      highp_imat3x2
      +typedef detail::tmat3x3
      +< highp_int
      highp_imat3x3
      +typedef detail::tmat3x4
      +< highp_int
      highp_imat3x4
      +typedef detail::tmat4x4
      +< highp_int
      highp_imat4
      +typedef detail::tmat4x2
      +< highp_int
      highp_imat4x2
      +typedef detail::tmat4x3
      +< highp_int
      highp_imat4x3
      +typedef detail::tmat4x4
      +< highp_int
      highp_imat4x4
      +typedef detail::tmat2x2
      +< highp_uint
      highp_umat2
      +typedef detail::tmat2x2
      +< highp_uint
      highp_umat2x2
      +typedef detail::tmat2x3
      +< highp_uint
      highp_umat2x3
      +typedef detail::tmat2x4
      +< highp_uint
      highp_umat2x4
      +typedef detail::tmat3x3
      +< highp_uint
      highp_umat3
      +typedef detail::tmat3x2
      +< highp_uint
      highp_umat3x2
      +typedef detail::tmat3x3
      +< highp_uint
      highp_umat3x3
      +typedef detail::tmat3x4
      +< highp_uint
      highp_umat3x4
      +typedef detail::tmat4x4
      +< highp_uint
      highp_umat4
      +typedef detail::tmat4x2
      +< highp_uint
      highp_umat4x2
      +typedef detail::tmat4x3
      +< highp_uint
      highp_umat4x3
      +typedef detail::tmat4x4
      +< highp_uint
      highp_umat4x4
      +typedef mediump_imat2 imat2
      +typedef mediump_imat2x2 imat2x2
      +typedef mediump_imat2x3 imat2x3
      +typedef mediump_imat2x4 imat2x4
      +typedef mediump_imat3 imat3
      +typedef mediump_imat3x2 imat3x2
      +typedef mediump_imat3x3 imat3x3
      +typedef mediump_imat3x4 imat3x4
      +typedef mediump_imat4 imat4
      +typedef mediump_imat4x2 imat4x2
      +typedef mediump_imat4x3 imat4x3
      +typedef mediump_imat4x4 imat4x4
      +typedef detail::tmat2x2< lowp_intlowp_imat2
      +typedef detail::tmat2x2< lowp_intlowp_imat2x2
      +typedef detail::tmat2x3< lowp_intlowp_imat2x3
      +typedef detail::tmat2x4< lowp_intlowp_imat2x4
      +typedef detail::tmat3x3< lowp_intlowp_imat3
      +typedef detail::tmat3x2< lowp_intlowp_imat3x2
      +typedef detail::tmat3x3< lowp_intlowp_imat3x3
      +typedef detail::tmat3x4< lowp_intlowp_imat3x4
      +typedef detail::tmat4x4< lowp_intlowp_imat4
      +typedef detail::tmat4x2< lowp_intlowp_imat4x2
      +typedef detail::tmat4x3< lowp_intlowp_imat4x3
      +typedef detail::tmat4x4< lowp_intlowp_imat4x4
      +typedef detail::tmat2x2
      +< lowp_uint
      lowp_umat2
      +typedef detail::tmat2x2
      +< lowp_uint
      lowp_umat2x2
      +typedef detail::tmat2x3
      +< lowp_uint
      lowp_umat2x3
      +typedef detail::tmat2x4
      +< lowp_uint
      lowp_umat2x4
      +typedef detail::tmat3x3
      +< lowp_uint
      lowp_umat3
      +typedef detail::tmat3x2
      +< lowp_uint
      lowp_umat3x2
      +typedef detail::tmat3x3
      +< lowp_uint
      lowp_umat3x3
      +typedef detail::tmat3x4
      +< lowp_uint
      lowp_umat3x4
      +typedef detail::tmat4x4
      +< lowp_uint
      lowp_umat4
      +typedef detail::tmat4x2
      +< lowp_uint
      lowp_umat4x2
      +typedef detail::tmat4x3
      +< lowp_uint
      lowp_umat4x3
      +typedef detail::tmat4x4
      +< lowp_uint
      lowp_umat4x4
      +typedef detail::tmat2x2
      +< mediump_int
      mediump_imat2
      +typedef detail::tmat2x2
      +< mediump_int
      mediump_imat2x2
      +typedef detail::tmat2x3
      +< mediump_int
      mediump_imat2x3
      +typedef detail::tmat2x4
      +< mediump_int
      mediump_imat2x4
      +typedef detail::tmat3x3
      +< mediump_int
      mediump_imat3
      +typedef detail::tmat3x2
      +< mediump_int
      mediump_imat3x2
      +typedef detail::tmat3x3
      +< mediump_int
      mediump_imat3x3
      +typedef detail::tmat3x4
      +< mediump_int
      mediump_imat3x4
      +typedef detail::tmat4x4
      +< mediump_int
      mediump_imat4
      +typedef detail::tmat4x2
      +< mediump_int
      mediump_imat4x2
      +typedef detail::tmat4x3
      +< mediump_int
      mediump_imat4x3
      +typedef detail::tmat4x4
      +< mediump_int
      mediump_imat4x4
      +typedef detail::tmat2x2
      +< mediump_uint
      mediump_umat2
      +typedef detail::tmat2x2
      +< mediump_uint
      mediump_umat2x2
      +typedef detail::tmat2x3
      +< mediump_uint
      mediump_umat2x3
      +typedef detail::tmat2x4
      +< mediump_uint
      mediump_umat2x4
      +typedef detail::tmat3x3
      +< mediump_uint
      mediump_umat3
      +typedef detail::tmat3x2
      +< mediump_uint
      mediump_umat3x2
      +typedef detail::tmat3x3
      +< mediump_uint
      mediump_umat3x3
      +typedef detail::tmat3x4
      +< mediump_uint
      mediump_umat3x4
      +typedef detail::tmat4x4
      +< mediump_uint
      mediump_umat4
      +typedef detail::tmat4x2
      +< mediump_uint
      mediump_umat4x2
      +typedef detail::tmat4x3
      +< mediump_uint
      mediump_umat4x3
      +typedef detail::tmat4x4
      +< mediump_uint
      mediump_umat4x4
      +typedef mediump_umat2 umat2
      +typedef mediump_umat2x2 umat2x2
      +typedef mediump_umat2x3 umat2x3
      +typedef mediump_umat2x4 umat2x4
      +typedef mediump_umat3 umat3
      +typedef mediump_umat3x2 umat3x2
      +typedef mediump_umat3x3 umat3x3
      +typedef mediump_umat3x4 umat3x4
      +typedef mediump_umat4 umat4
      +typedef mediump_umat4x2 umat4x2
      +typedef mediump_umat4x3 umat4x3
      +typedef mediump_umat4x4 umat4x4
      +

      Detailed Description

      +

      < GLM_GTC_matrix_integer extension: Add integer matrices

      +
      + + + diff --git a/doc/api-0.9.2/a00162.html b/doc/api-0.9.2/a00162.html new file mode 100644 index 00000000..3b6c8092 --- /dev/null +++ b/doc/api-0.9.2/a00162.html @@ -0,0 +1,70 @@ + + + + +glm::gtc::matrix_inverse Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtc::matrix_inverse Namespace Reference
      +
      +
      + +

      < GLM_GTC_matrix_inverse extension: Inverse matrix functions +More...

      + + + + + + +

      +Functions

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

      Detailed Description

      +

      < GLM_GTC_matrix_inverse extension: Inverse matrix functions

      +
      + + + diff --git a/doc/api-0.9.2/a00163.html b/doc/api-0.9.2/a00163.html new file mode 100644 index 00000000..aa651a9c --- /dev/null +++ b/doc/api-0.9.2/a00163.html @@ -0,0 +1,93 @@ + + + + +glm::gtc::matrix_transform Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtc::matrix_transform Namespace Reference
      +
      +
      + +

      < GLM_GTC_matrix_transform extension: Add transformation matrices +More...

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

      +Functions

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

      Detailed Description

      +

      < GLM_GTC_matrix_transform extension: Add transformation matrices

      +
      + + + diff --git a/doc/api-0.9.2/a00164.html b/doc/api-0.9.2/a00164.html new file mode 100644 index 00000000..768d65ca --- /dev/null +++ b/doc/api-0.9.2/a00164.html @@ -0,0 +1,102 @@ + + + + +glm::gtc::quaternion Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtc::quaternion Namespace Reference
      +
      +
      + +

      < GLM_GTC_quaternion extension: Quaternion types and functions +More...

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

      +Typedefs

      typedef detail::tquat< double > dquat
      typedef detail::tquat< float > fquat
      typedef detail::tquat
      +< highp_float
      highp_quat
      typedef detail::tquat
      +< detail::thalf
      hquat
      typedef detail::tquat< lowp_floatlowp_quat
      typedef detail::tquat
      +< mediump_float
      mediump_quat
      typedef detail::tquat< float > quat

      +Functions

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

      Detailed Description

      +

      < GLM_GTC_quaternion extension: Quaternion types and functions

      +
      + + + diff --git a/doc/api-0.9.2/a00165.html b/doc/api-0.9.2/a00165.html new file mode 100644 index 00000000..80668e5c --- /dev/null +++ b/doc/api-0.9.2/a00165.html @@ -0,0 +1,61 @@ + + + + +glm::gtc::swizzle Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      glm::gtc::swizzle Namespace Reference
      +
      +
      + +

      < GLM_GTC_swizzle extension +More...

      + +
      +

      Detailed Description

      +

      < GLM_GTC_swizzle extension

      +
      + + + diff --git a/doc/api-0.9.2/a00166.html b/doc/api-0.9.2/a00166.html new file mode 100644 index 00000000..0784c2c0 --- /dev/null +++ b/doc/api-0.9.2/a00166.html @@ -0,0 +1,283 @@ + + + + +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
      +typedef detail::tmat2x2< f16f16mat2
      +typedef detail::tmat2x2< f16f16mat2x2
      +typedef detail::tmat2x3< f16f16mat2x3
      +typedef detail::tmat2x4< f16f16mat2x4
      +typedef detail::tmat3x3< f16f16mat3
      +typedef detail::tmat3x2< f16f16mat3x2
      +typedef detail::tmat3x3< f16f16mat3x3
      +typedef detail::tmat3x4< f16f16mat3x4
      +typedef detail::tmat4x4< f16f16mat4
      +typedef detail::tmat4x2< f16f16mat4x2
      +typedef detail::tmat4x3< f16f16mat4x3
      +typedef detail::tmat4x4< f16f16mat4x4
      +typedef detail::tquat< f16f16quat
      +typedef detail::tvec2< f16f16vec2
      +typedef detail::tvec3< f16f16vec3
      +typedef detail::tvec4< f16f16vec4
      +typedef float32 f32
      +typedef detail::tmat2x2< f32f32mat2
      +typedef detail::tmat2x2< f32f32mat2x2
      +typedef detail::tmat2x3< f32f32mat2x3
      +typedef detail::tmat2x4< f32f32mat2x4
      +typedef detail::tmat3x3< f32f32mat3
      +typedef detail::tmat3x2< f32f32mat3x2
      +typedef detail::tmat3x3< f32f32mat3x3
      +typedef detail::tmat3x4< f32f32mat3x4
      +typedef detail::tmat4x4< f32f32mat4
      +typedef detail::tmat4x2< f32f32mat4x2
      +typedef detail::tmat4x3< f32f32mat4x3
      +typedef detail::tmat4x4< f32f32mat4x4
      +typedef detail::tquat< f32f32quat
      +typedef detail::tvec2< f32f32vec2
      +typedef detail::tvec3< f32f32vec3
      +typedef detail::tvec4< f32f32vec4
      +typedef float64 f64
      +typedef detail::tmat2x2< f64f64mat2
      +typedef detail::tmat2x2< f64f64mat2x2
      +typedef detail::tmat2x3< f64f64mat2x3
      +typedef detail::tmat2x4< f64f64mat2x4
      +typedef detail::tmat3x3< f64f64mat3
      +typedef detail::tmat3x2< f64f64mat3x2
      +typedef detail::tmat3x3< f64f64mat3x3
      +typedef detail::tmat3x4< f64f64mat3x4
      +typedef detail::tmat4x4< f64f64mat4
      +typedef detail::tmat4x2< f64f64mat4x2
      +typedef detail::tmat4x3< f64f64mat4x3
      +typedef detail::tmat4x4< f64f64mat4x4
      +typedef detail::tquat< f64f64quat
      +typedef detail::tvec2< f64f64vec2
      +typedef detail::tvec3< f64f64vec3
      +typedef detail::tvec4< f64f64vec4
      +typedef detail::float16 float16
      +typedef detail::float32 float32
      +typedef detail::float64 float64
      +typedef detail::tmat2x2< f32fmat2
      +typedef detail::tmat2x2< f32fmat2x2
      +typedef detail::tmat2x3< f32fmat2x3
      +typedef detail::tmat2x4< f32fmat2x4
      +typedef detail::tmat3x3< f32fmat3
      +typedef detail::tmat3x2< f32fmat3x2
      +typedef detail::tmat3x3< f32fmat3x3
      +typedef detail::tmat3x4< f32fmat3x4
      +typedef detail::tmat4x4< f32fmat4
      +typedef detail::tmat4x2< f32fmat4x2
      +typedef detail::tmat4x3< f32fmat4x3
      +typedef detail::tmat4x4< f32fmat4x4
      +typedef detail::tvec2< float > fvec2
      +typedef detail::tvec3< float > fvec3
      +typedef detail::tvec4< float > fvec4
      +typedef int16 i16
      +typedef detail::tvec2< i16i16vec2
      +typedef detail::tvec3< i16i16vec3
      +typedef detail::tvec4< i16i16vec4
      +typedef int32 i32
      +typedef detail::tvec2< i32i32vec2
      +typedef detail::tvec3< i32i32vec3
      +typedef detail::tvec4< i32i32vec4
      +typedef int64 i64
      +typedef detail::tvec2< i64i64vec2
      +typedef detail::tvec3< i64i64vec3
      +typedef detail::tvec4< i64i64vec4
      +typedef int8 i8
      +typedef detail::tvec2< i8i8vec2
      +typedef detail::tvec3< i8i8vec3
      +typedef detail::tvec4< i8i8vec4
      +typedef detail::int16 int16
      +typedef detail::int32 int32
      +typedef detail::int64 int64
      +typedef detail::int8 int8
      +typedef uint16 u16
      +typedef detail::tvec2< u16u16vec2
      +typedef detail::tvec3< u16u16vec3
      +typedef detail::tvec4< u16u16vec4
      +typedef uint32 u32
      +typedef detail::tvec2< u32u32vec2
      +typedef detail::tvec3< u32u32vec3
      +typedef detail::tvec4< u32u32vec4
      +typedef uint64 u64
      +typedef detail::tvec2< u64u64vec2
      +typedef detail::tvec3< u64u64vec3
      +typedef detail::tvec4< u64u64vec4
      +typedef uint8 u8
      +typedef detail::tvec2< u8u8vec2
      +typedef detail::tvec3< u8u8vec3
      +typedef detail::tvec4< u8u8vec4
      +typedef detail::uint16 uint16
      +typedef detail::uint32 uint32
      +typedef detail::uint64 uint64
      +typedef detail::uint8 uint8
      +

      Detailed Description

      +

      < GLM_GTC_type_precision extension: Defined types with specific size.

      +
      + + + diff --git a/doc/api-0.9.2/a00167.html b/doc/api-0.9.2/a00167.html new file mode 100644 index 00000000..9d397faa --- /dev/null +++ b/doc/api-0.9.2/a00167.html @@ -0,0 +1,158 @@ + + + + +glm::gtc::type_ptr Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtc::type_ptr Namespace Reference
      +
      +
      + +

      < GLM_GTC_type_ptr extension: Get access to vectors & matrices value type address. +More...

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

      +Functions

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

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00168.html b/doc/api-0.9.2/a00168.html new file mode 100644 index 00000000..9c4e03fd --- /dev/null +++ b/doc/api-0.9.2/a00168.html @@ -0,0 +1,124 @@ + + + + +glm::gtx Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx Namespace Reference
      +
      +
      + +

      G-Truc Creation experimental extensions. +More...

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

      +Namespaces

      namespace  associated_min_max
      namespace  bit
      namespace  closest_point
      namespace  color_cast
      namespace  color_space
      namespace  color_space_YCoCg
      namespace  compatibility
      namespace  component_wise
      namespace  epsilon
      namespace  euler_angles
      namespace  extend
      namespace  extented_min_max
      namespace  fast_exponential
      namespace  fast_square_root
      namespace  fast_trigonometry
      namespace  gradient_paint
      namespace  handed_coordinate_space
      namespace  inertia
      namespace  int_10_10_10_2
      namespace  integer
      namespace  intersect
      namespace  log_base
      namespace  matrix_cross_product
      namespace  matrix_interpolation
      namespace  matrix_major_storage
      namespace  matrix_operation
      namespace  matrix_query
      namespace  mixed_product
      namespace  multiple
      namespace  noise
      namespace  norm
      namespace  normal
      namespace  normalize_dot
      namespace  number_precision
      namespace  ocl_type
      namespace  optimum_pow
      namespace  orthonormalize
      namespace  perpendicular
      namespace  polar_coordinates
      namespace  projection
      namespace  quaternion
      namespace  random
      namespace  raw_data
      namespace  reciprocal
      namespace  rotate_vector
      namespace  simd_mat4
      namespace  simd_vec4
      namespace  spline
      namespace  std_based_type
      namespace  string_cast
      namespace  transform
      namespace  transform2
      namespace  ulp
      namespace  unsigned_int
      namespace  vector_access
      namespace  vector_angle
      namespace  vector_query
      namespace  verbose_operator
      namespace  wrap
      +

      Detailed Description

      +

      G-Truc Creation experimental extensions.

      +

      The interface could change between releases.

      +
      + + + diff --git a/doc/api-0.9.2/a00169.html b/doc/api-0.9.2/a00169.html new file mode 100644 index 00000000..681dabf8 --- /dev/null +++ b/doc/api-0.9.2/a00169.html @@ -0,0 +1,83 @@ + + + + +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)
      +template<typename genTypeT , typename genTypeU >
      genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
      +template<typename genTypeT , typename genTypeU >
      genTypeU associatedMax (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
      +template<typename genTypeT , typename genTypeU >
      genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c)
      +template<typename genTypeT , typename genTypeU >
      genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b)
      +template<typename genTypeT , typename genTypeU >
      genTypeU associatedMin (const genTypeT &x, const genTypeU &a, const genTypeT &y, const genTypeU &b, const genTypeT &z, const genTypeU &c, const genTypeT &w, const genTypeU &d)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00170.html b/doc/api-0.9.2/a00170.html new file mode 100644 index 00000000..359b6e16 --- /dev/null +++ b/doc/api-0.9.2/a00170.html @@ -0,0 +1,89 @@ + + + + +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)
      template<typename genType >
      genType bitRotateLeft (genType const &In, std::size_t Shift)
      template<typename genType >
      genType bitRotateRight (genType const &In, std::size_t Shift)
      template<typename genIUType , typename sizeType >
      genIUType extractField (genIUType const &v, sizeType const &first, sizeType const &count)
      template<typename genType >
      int highestBit (genType const &value)
      template<typename genType >
      genType highestBitValue (genType const &value)
      template<typename genType >
      bool isPowerOfTwo (genType const &value)
      template<typename genType >
      int lowestBit (genType const &value)
      template<typename genIType >
      genIType mask (genIType const &count)
      template<typename genType >
      genType powerOfTwoAbove (genType const &value)
      template<typename genType >
      genType powerOfTwoBelow (genType const &value)
      template<typename genType >
      genType powerOfTwoNearest (genType const &value)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00171.html b/doc/api-0.9.2/a00171.html new file mode 100644 index 00000000..33f91a83 --- /dev/null +++ b/doc/api-0.9.2/a00171.html @@ -0,0 +1,67 @@ + + + + +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)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00172.html b/doc/api-0.9.2/a00172.html new file mode 100644 index 00000000..17aac717 --- /dev/null +++ b/doc/api-0.9.2/a00172.html @@ -0,0 +1,198 @@ + + + + +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)
      +template<typename T >
      gtc::type_precision::f16vec4 f16_argb_cast (T c)
      +template<typename T >
      gtc::type_precision::f16vec4 f16_bgra_cast (T c)
      +template<typename T >
      gtc::type_precision::f16vec3 f16_bgrx_cast (T c)
      +template<typename T >
      gtx::number_precision::f16vec1 f16_channel_cast (T a)
      +template<typename T >
      gtc::type_precision::f16vec4 f16_rgba_cast (T c)
      +template<typename T >
      gtc::type_precision::f16vec3 f16_rgbx_cast (T c)
      +template<typename T >
      gtc::type_precision::f16vec3 f16_xbgr_cast (T c)
      +template<typename T >
      gtc::type_precision::f16vec3 f16_xrgb_cast (T c)
      +template<typename T >
      gtc::type_precision::f32vec4 f32_abgr_cast (T c)
      +template<typename T >
      gtc::type_precision::f32vec4 f32_argb_cast (T c)
      +template<typename T >
      gtc::type_precision::f32vec4 f32_bgra_cast (T c)
      +template<typename T >
      gtc::type_precision::f32vec3 f32_bgrx_cast (T c)
      +template<typename T >
      gtx::number_precision::f32vec1 f32_channel_cast (T a)
      +template<typename T >
      gtc::type_precision::f32vec4 f32_rgba_cast (T c)
      +template<typename T >
      gtc::type_precision::f32vec3 f32_rgbx_cast (T c)
      +template<typename T >
      gtc::type_precision::f32vec3 f32_xbgr_cast (T c)
      +template<typename T >
      gtc::type_precision::f32vec3 f32_xrgb_cast (T c)
      +template<typename T >
      gtc::type_precision::f64vec4 f64_abgr_cast (T c)
      +template<typename T >
      gtc::type_precision::f64vec4 f64_argb_cast (T c)
      +template<typename T >
      gtc::type_precision::f64vec4 f64_bgra_cast (T c)
      +template<typename T >
      gtc::type_precision::f64vec3 f64_bgrx_cast (T c)
      +template<typename T >
      gtx::number_precision::f64vec1 f64_channel_cast (T a)
      +template<typename T >
      gtc::type_precision::f64vec4 f64_rgba_cast (T c)
      +template<typename T >
      gtc::type_precision::f64vec3 f64_rgbx_cast (T c)
      +template<typename T >
      gtc::type_precision::f64vec3 f64_xbgr_cast (T c)
      +template<typename T >
      gtc::type_precision::f64vec3 f64_xrgb_cast (T c)
      template<typename valType >
      gtc::type_precision::uint16 u16channel_cast (valType a)
      +template<typename T >
      gtc::type_precision::uint32 u32_abgr_cast (const detail::tvec4< T > &c)
      +template<typename T >
      gtc::type_precision::uint32 u32_argb_cast (const detail::tvec4< T > &c)
      +template<typename T >
      gtc::type_precision::uint32 u32_bgra_cast (const detail::tvec4< T > &c)
      +template<typename T >
      gtc::type_precision::uint32 u32_bgrx_cast (const detail::tvec3< T > &c)
      +template<typename T >
      gtc::type_precision::uint32 u32_rgba_cast (const detail::tvec4< T > &c)
      +template<typename T >
      gtc::type_precision::uint32 u32_rgbx_cast (const detail::tvec3< T > &c)
      +template<typename T >
      gtc::type_precision::uint32 u32_xbgr_cast (const detail::tvec3< T > &c)
      +template<typename T >
      gtc::type_precision::uint32 u32_xrgb_cast (const detail::tvec3< T > &c)
      +template<typename T >
      gtc::type_precision::uint64 u64_abgr_cast (const detail::tvec4< T > &c)
      +template<typename T >
      gtc::type_precision::uint64 u64_argb_cast (const detail::tvec4< T > &c)
      +template<typename T >
      gtc::type_precision::uint64 u64_bgra_cast (const detail::tvec4< T > &c)
      +template<typename T >
      gtc::type_precision::uint64 u64_bgrx_cast (const detail::tvec3< T > &c)
      +template<typename T >
      gtc::type_precision::uint64 u64_rgba_cast (const detail::tvec4< T > &c)
      +template<typename T >
      gtc::type_precision::uint64 u64_rgbx_cast (const detail::tvec3< T > &c)
      +template<typename T >
      gtc::type_precision::uint64 u64_xbgr_cast (const detail::tvec3< T > &c)
      +template<typename T >
      gtc::type_precision::uint64 u64_xrgb_cast (const detail::tvec3< T > &c)
      template<typename valType >
      gtc::type_precision::uint8 u8channel_cast (valType a)
      +

      Detailed Description

      +

      < GLM_GTX_color_cast extension: Conversion between two color types

      +
      + + + diff --git a/doc/api-0.9.2/a00173.html b/doc/api-0.9.2/a00173.html new file mode 100644 index 00000000..cbc3f53e --- /dev/null +++ b/doc/api-0.9.2/a00173.html @@ -0,0 +1,77 @@ + + + + +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)
      template<typename valType >
      valType luminosity (detail::tvec3< valType > const &color)
      template<typename valType >
      detail::tvec3< valType > rgbColor (detail::tvec3< valType > const &hsvValue)
      template<typename valType >
      detail::tvec3< valType > saturation (valType const s, detail::tvec3< valType > const &color)
      template<typename valType >
      detail::tmat4x4< valType > saturation (valType const s)
      template<typename valType >
      detail::tvec4< valType > saturation (valType const s, detail::tvec4< valType > const &color)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00174.html b/doc/api-0.9.2/a00174.html new file mode 100644 index 00000000..4fde098e --- /dev/null +++ b/doc/api-0.9.2/a00174.html @@ -0,0 +1,73 @@ + + + + +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)
      template<typename valType >
      detail::tvec3< valType > rgb2YCoCgR (detail::tvec3< valType > const &rgbColor)
      template<typename valType >
      detail::tvec3< valType > YCoCg2rgb (detail::tvec3< valType > const &YCoCgColor)
      template<typename valType >
      detail::tvec3< valType > YCoCgR2rgb (detail::tvec3< valType > const &YCoCgColor)
      +

      Detailed Description

      +

      < GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations

      +
      + + + diff --git a/doc/api-0.9.2/a00175.html b/doc/api-0.9.2/a00175.html new file mode 100644 index 00000000..79cb94c8 --- /dev/null +++ b/doc/api-0.9.2/a00175.html @@ -0,0 +1,313 @@ + + + + +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
      +typedef bool bool1x1
      +typedef detail::tvec2< bool > bool2
      +typedef detail::tmat2x2< bool > bool2x2
      +typedef detail::tmat2x3< bool > bool2x3
      +typedef detail::tmat2x4< bool > bool2x4
      +typedef detail::tvec3< bool > bool3
      +typedef detail::tmat3x2< bool > bool3x2
      +typedef detail::tmat3x3< bool > bool3x3
      +typedef detail::tmat3x4< bool > bool3x4
      +typedef detail::tvec4< bool > bool4
      +typedef detail::tmat4x2< bool > bool4x2
      +typedef detail::tmat4x3< bool > bool4x3
      +typedef detail::tmat4x4< bool > bool4x4
      +typedef double double1
      +typedef double double1x1
      +typedef detail::tvec2< double > double2
      +typedef detail::tmat2x2< double > double2x2
      +typedef detail::tmat2x3< double > double2x3
      +typedef detail::tmat2x4< double > double2x4
      +typedef detail::tvec3< double > double3
      +typedef detail::tmat3x2< double > double3x2
      +typedef detail::tmat3x3< double > double3x3
      +typedef detail::tmat3x4< double > double3x4
      +typedef detail::tvec4< double > double4
      +typedef detail::tmat4x2< double > double4x2
      +typedef detail::tmat4x3< double > double4x3
      +typedef detail::tmat4x4< double > double4x4
      +typedef float float1
      +typedef float float1x1
      +typedef detail::tvec2< float > float2
      +typedef detail::tmat2x2< float > float2x2
      +typedef detail::tmat2x3< float > float2x3
      +typedef detail::tmat2x4< float > float2x4
      +typedef detail::tvec3< float > float3
      +typedef detail::tmat3x2< float > float3x2
      +typedef detail::tmat3x3< float > float3x3
      +typedef detail::tmat3x4< float > float3x4
      +typedef detail::tvec4< float > float4
      +typedef detail::tmat4x2< float > float4x2
      +typedef detail::tmat4x3< float > float4x3
      +typedef detail::tmat4x4< float > float4x4
      +typedef gtc::half_float::half half1
      +typedef gtc::half_float::half half1x1
      +typedef detail::tvec2
      +< gtc::half_float::half
      half2
      +typedef detail::tmat2x2
      +< gtc::half_float::half
      half2x2
      +typedef detail::tmat2x3
      +< gtc::half_float::half
      half2x3
      +typedef detail::tmat2x4
      +< gtc::half_float::half
      half2x4
      +typedef detail::tvec3
      +< gtc::half_float::half
      half3
      +typedef detail::tmat3x2
      +< gtc::half_float::half
      half3x2
      +typedef detail::tmat3x3
      +< gtc::half_float::half
      half3x3
      +typedef detail::tmat3x4
      +< gtc::half_float::half
      half3x4
      +typedef detail::tvec4
      +< gtc::half_float::half
      half4
      +typedef detail::tmat4x2
      +< gtc::half_float::half
      half4x2
      +typedef detail::tmat4x3
      +< gtc::half_float::half
      half4x3
      +typedef detail::tmat4x4
      +< gtc::half_float::half
      half4x4
      +typedef int int1
      +typedef int int1x1
      +typedef detail::tvec2< int > int2
      +typedef detail::tmat2x2< int > int2x2
      +typedef detail::tmat2x3< int > int2x3
      +typedef detail::tmat2x4< int > int2x4
      +typedef detail::tvec3< int > int3
      +typedef detail::tmat3x2< int > int3x2
      +typedef detail::tmat3x3< int > int3x3
      +typedef detail::tmat3x4< int > int3x4
      +typedef detail::tvec4< int > int4
      +typedef detail::tmat4x2< int > int4x2
      +typedef detail::tmat4x3< int > int4x3
      +typedef detail::tmat4x4< int > int4x4

      +Functions

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

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00176.html b/doc/api-0.9.2/a00176.html new file mode 100644 index 00000000..19e8b202 --- /dev/null +++ b/doc/api-0.9.2/a00176.html @@ -0,0 +1,73 @@ + + + + +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)
      template<typename genType >
      genType::value_type compMax (genType const &v)
      template<typename genType >
      genType::value_type compMin (genType const &v)
      template<typename genType >
      genType::value_type compMul (genType const &v)
      +

      Detailed Description

      +

      < GLM_GTX_component_wise extension: Operations between components of a type

      +
      + + + diff --git a/doc/api-0.9.2/a00177.html b/doc/api-0.9.2/a00177.html new file mode 100644 index 00000000..aabe5866 --- /dev/null +++ b/doc/api-0.9.2/a00177.html @@ -0,0 +1,69 @@ + + + + +glm::gtx::epsilon Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::epsilon Namespace Reference
      +
      +
      + +

      < GLM_GTX_epsilon extension: Comparison 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)
      template<typename genTypeT , typename genTypeU >
      bool notEqualEpsilon (genTypeT const &x, genTypeT const &y, genTypeU const &epsilon)
      +

      Detailed Description

      +

      < GLM_GTX_epsilon extension: Comparison functions for a user defined epsilon values.

      +
      + + + diff --git a/doc/api-0.9.2/a00178.html b/doc/api-0.9.2/a00178.html new file mode 100644 index 00000000..142a789c --- /dev/null +++ b/doc/api-0.9.2/a00178.html @@ -0,0 +1,95 @@ + + + + +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)
      template<typename valType >
      detail::tmat4x4< valType > eulerAngleXY (valType const &angleX, valType const &angleY)
      template<typename valType >
      detail::tmat4x4< valType > eulerAngleXZ (valType const &angleX, valType const &angleZ)
      template<typename valType >
      detail::tmat4x4< valType > eulerAngleY (valType const &angleY)
      template<typename valType >
      detail::tmat4x4< valType > eulerAngleYX (valType const &angleY, valType const &angleX)
      template<typename valType >
      detail::tmat4x4< valType > eulerAngleYXZ (valType const &yaw, valType const &pitch, valType const &roll)
      template<typename valType >
      detail::tmat4x4< valType > eulerAngleYZ (valType const &angleY, valType const &angleZ)
      template<typename valType >
      detail::tmat4x4< valType > eulerAngleZ (valType const &angleZ)
      template<typename valType >
      detail::tmat4x4< valType > eulerAngleZX (valType const &angleZ, valType const &angleX)
      template<typename valType >
      detail::tmat4x4< valType > eulerAngleZY (valType const &angleZ, valType const &angleY)
      template<typename T >
      detail::tmat2x2< T > orientate2 (T const &angle)
      template<typename T >
      detail::tmat3x3< T > orientate3 (detail::tvec3< T > const &angles)
      template<typename T >
      detail::tmat3x3< T > orientate3 (T const &angle)
      template<typename T >
      detail::tmat4x4< T > orientate4 (detail::tvec3< T > const &angles)
      template<typename valType >
      detail::tmat4x4< valType > yawPitchRoll (valType const &yaw, valType const &pitch, valType const &roll)
      +

      Detailed Description

      +

      < GLM_GTX_euler_angles extension: Build matrices from Euler angles.

      +
      + + + diff --git a/doc/api-0.9.2/a00179.html b/doc/api-0.9.2/a00179.html new file mode 100644 index 00000000..eb40aef8 --- /dev/null +++ b/doc/api-0.9.2/a00179.html @@ -0,0 +1,67 @@ + + + + +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)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00180.html b/doc/api-0.9.2/a00180.html new file mode 100644 index 00000000..9567fa2c --- /dev/null +++ b/doc/api-0.9.2/a00180.html @@ -0,0 +1,61 @@ + + + + +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...

      + +
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00181.html b/doc/api-0.9.2/a00181.html new file mode 100644 index 00000000..b39bbc14 --- /dev/null +++ b/doc/api-0.9.2/a00181.html @@ -0,0 +1,79 @@ + + + + +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)
      template<typename T >
      fastExp2 (const T &x)
      template<typename T >
      fastLn (const T &x)
      template<typename T >
      fastLog (const T &x)
      template<typename T >
      fastLog2 (const T &x)
      template<typename valType >
      valType fastPow (valType const &x, valType const &y)
      template<typename T , typename U >
      fastPow (const T &x, const U &y)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00182.html b/doc/api-0.9.2/a00182.html new file mode 100644 index 00000000..a9b1c142 --- /dev/null +++ b/doc/api-0.9.2/a00182.html @@ -0,0 +1,75 @@ + + + + +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)
      template<typename genType >
      genType fastInverseSqrt (genType const &x)
      template<typename genType >
      genType::value_type fastLength (genType const &x)
      template<typename genType >
      genType fastNormalize (genType const &x)
      template<typename genType >
      genType fastSqrt (genType const &x)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00183.html b/doc/api-0.9.2/a00183.html new file mode 100644 index 00000000..46527296 --- /dev/null +++ b/doc/api-0.9.2/a00183.html @@ -0,0 +1,79 @@ + + + + +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)
      template<typename T >
      fastAsin (const T &angle)
      template<typename T >
      fastAtan (const T &angle)
      template<typename T >
      fastAtan (const T &y, const T &x)
      template<typename T >
      fastCos (const T &angle)
      template<typename T >
      fastSin (const T &angle)
      template<typename T >
      fastTan (const T &angle)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00184.html b/doc/api-0.9.2/a00184.html new file mode 100644 index 00000000..9ee4c5ef --- /dev/null +++ b/doc/api-0.9.2/a00184.html @@ -0,0 +1,61 @@ + + + + +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

      +
      + + + diff --git a/doc/api-0.9.2/a00185.html b/doc/api-0.9.2/a00185.html new file mode 100644 index 00000000..1545b51e --- /dev/null +++ b/doc/api-0.9.2/a00185.html @@ -0,0 +1,69 @@ + + + + +glm::gtx::handed_coordinate_space Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::handed_coordinate_space Namespace Reference
      +
      +
      + +

      < GLM_GTX_handed_coordinate_space extension: To know if a set of three basis vectors defines a right or left-handed coordinate system. +More...

      + + + + + + +

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_handed_coordinate_space extension: To know if a set of three basis vectors defines a right or left-handed coordinate system.

      +
      + + + diff --git a/doc/api-0.9.2/a00186.html b/doc/api-0.9.2/a00186.html new file mode 100644 index 00000000..f70a237e --- /dev/null +++ b/doc/api-0.9.2/a00186.html @@ -0,0 +1,81 @@ + + + + +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)
      template<typename T >
      detail::tmat4x4< T > ballInertia4 (const T Mass, const T Radius)
      template<typename T >
      detail::tmat3x3< T > boxInertia3 (const T Mass, const detail::tvec3< T > &Scale)
      template<typename T >
      detail::tmat4x4< T > boxInertia4 (const T Mass, const detail::tvec3< T > &Scale)
      template<typename T >
      detail::tmat3x3< T > diskInertia3 (const T Mass, const T Radius)
      template<typename T >
      detail::tmat4x4< T > diskInertia4 (const T Mass, const T Radius)
      template<typename T >
      detail::tmat3x3< T > sphereInertia3 (const T Mass, const T Radius)
      template<typename T >
      detail::tmat4x4< T > sphereInertia4 (const T Mass, const T Radius)
      +

      Detailed Description

      +

      < GLM_GTX_inertia extension: Create inertia matrices

      +
      + + + diff --git a/doc/api-0.9.2/a00187.html b/doc/api-0.9.2/a00187.html new file mode 100644 index 00000000..7ef83c4f --- /dev/null +++ b/doc/api-0.9.2/a00187.html @@ -0,0 +1,66 @@ + + + + +glm::gtx::int_10_10_10_2 Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::int_10_10_10_2 Namespace Reference
      +
      +
      + +

      < GLM_GTX_int_10_10_10_2 extension: Add support for integer for core functions +More...

      + + + +

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_int_10_10_10_2 extension: Add support for integer for core functions

      +
      + + + diff --git a/doc/api-0.9.2/a00188.html b/doc/api-0.9.2/a00188.html new file mode 100644 index 00000000..cfccd79a --- /dev/null +++ b/doc/api-0.9.2/a00188.html @@ -0,0 +1,70 @@ + + + + +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)
      int mod (int x, int y)
      int pow (int x, int y)
      int sqrt (int x)
      +

      Detailed Description

      +

      < GLM_GTX_integer extension: Add support for integer for core functions

      +
      + + + diff --git a/doc/api-0.9.2/a00189.html b/doc/api-0.9.2/a00189.html new file mode 100644 index 00000000..b57a0bc3 --- /dev/null +++ b/doc/api-0.9.2/a00189.html @@ -0,0 +1,73 @@ + + + + +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)
      template<typename genType >
      bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
      template<typename genType >
      bool intersectRaySphere (genType const &orig, genType const &dir, genType const &center, typename genType::value_type radius, genType &position, genType &normal)
      template<typename genType >
      bool intersectRayTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
      +

      Detailed Description

      +

      < GLM_GTX_intersect extension: Add intersection functions

      +
      + + + diff --git a/doc/api-0.9.2/a00190.html b/doc/api-0.9.2/a00190.html new file mode 100644 index 00000000..19f6ff29 --- /dev/null +++ b/doc/api-0.9.2/a00190.html @@ -0,0 +1,67 @@ + + + + +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)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00191.html b/doc/api-0.9.2/a00191.html new file mode 100644 index 00000000..3085d4d0 --- /dev/null +++ b/doc/api-0.9.2/a00191.html @@ -0,0 +1,69 @@ + + + + +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)
      template<typename T >
      detail::tmat4x4< T > matrixCross4 (detail::tvec3< T > const &x)
      +

      Detailed Description

      +

      < GLM_GTX_matrix_cross_product: Build cross product matrices

      +
      + + + diff --git a/doc/api-0.9.2/a00192.html b/doc/api-0.9.2/a00192.html new file mode 100644 index 00000000..c301c624 --- /dev/null +++ b/doc/api-0.9.2/a00192.html @@ -0,0 +1,71 @@ + + + + +glm::gtx::matrix_interpolation Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::matrix_interpolation Namespace Reference
      +
      +
      + +

      < GLM_GTX_matrix_interpolation extension: Add transformation matrices +More...

      + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_matrix_interpolation extension: Add transformation matrices

      +
      + + + diff --git a/doc/api-0.9.2/a00193.html b/doc/api-0.9.2/a00193.html new file mode 100644 index 00000000..91bf9d21 --- /dev/null +++ b/doc/api-0.9.2/a00193.html @@ -0,0 +1,89 @@ + + + + +glm::gtx::matrix_major_storage Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::matrix_major_storage Namespace Reference
      +
      +
      + +

      < GLM_GTX_matrix_major_storage: Build matrices with specific matrix order, row or column +More...

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

      +Functions

      template<typename T >
      detail::tmat2x2< T > colMajor2 (const detail::tvec2< T > &v1, const detail::tvec2< T > &v2)
      template<typename T >
      detail::tmat2x2< T > colMajor2 (const detail::tmat2x2< T > &m)
      template<typename T >
      detail::tmat3x3< T > colMajor3 (const detail::tvec3< T > &v1, const detail::tvec3< T > &v2, const detail::tvec3< T > &v3)
      template<typename T >
      detail::tmat3x3< T > colMajor3 (const detail::tmat3x3< T > &m)
      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)
      template<typename T >
      detail::tmat4x4< T > colMajor4 (const detail::tmat4x4< T > &m)
      template<typename T >
      detail::tmat2x2< T > rowMajor2 (const detail::tmat2x2< T > &m)
      template<typename T >
      detail::tmat2x2< T > rowMajor2 (const detail::tvec2< T > &v1, const detail::tvec2< T > &v2)
      template<typename T >
      detail::tmat3x3< T > rowMajor3 (const detail::tvec3< T > &v1, const detail::tvec3< T > &v2, const detail::tvec3< T > &v3)
      template<typename T >
      detail::tmat3x3< T > rowMajor3 (const detail::tmat3x3< T > &m)
      template<typename T >
      detail::tmat4x4< T > rowMajor4 (const detail::tmat4x4< T > &m)
      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)
      +

      Detailed Description

      +

      < GLM_GTX_matrix_major_storage: Build matrices with specific matrix order, row or column

      +
      + + + diff --git a/doc/api-0.9.2/a00194.html b/doc/api-0.9.2/a00194.html new file mode 100644 index 00000000..2afa8898 --- /dev/null +++ b/doc/api-0.9.2/a00194.html @@ -0,0 +1,83 @@ + + + + +glm::gtx::matrix_operation Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::matrix_operation Namespace Reference
      +
      +
      + +

      < GLM_GTX_matrix_operation: Build diagonal matrices +More...

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

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_matrix_operation: Build diagonal matrices

      +
      + + + diff --git a/doc/api-0.9.2/a00195.html b/doc/api-0.9.2/a00195.html new file mode 100644 index 00000000..e2509cca --- /dev/null +++ b/doc/api-0.9.2/a00195.html @@ -0,0 +1,81 @@ + + + + +glm::gtx::matrix_query Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::matrix_query Namespace Reference
      +
      +
      + +

      < GLM_GTX_matrix_query: Query to evaluate matrix 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())
      template<typename T >
      bool isNormalized (const detail::tmat2x2< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
      template<typename T >
      bool isNormalized (const detail::tmat4x4< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
      template<typename T >
      bool isNormalized (const detail::tmat3x3< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
      template<typename T >
      bool isNull (const detail::tmat2x2< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
      template<typename T >
      bool isNull (const detail::tmat3x3< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
      template<typename T >
      bool isNull (const detail::tmat4x4< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
      template<typename genType >
      bool isOrthogonal (const genType &m, const typename genType::value_type epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      +

      Detailed Description

      +

      < GLM_GTX_matrix_query: Query to evaluate matrix properties

      +
      + + + diff --git a/doc/api-0.9.2/a00196.html b/doc/api-0.9.2/a00196.html new file mode 100644 index 00000000..1a85ea01 --- /dev/null +++ b/doc/api-0.9.2/a00196.html @@ -0,0 +1,68 @@ + + + + +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)
      +

      Detailed Description

      +

      < GLM_GTX_mixed_product extension: Mixed product of 3 vectors.

      +
      + + + diff --git a/doc/api-0.9.2/a00197.html b/doc/api-0.9.2/a00197.html new file mode 100644 index 00000000..59168837 --- /dev/null +++ b/doc/api-0.9.2/a00197.html @@ -0,0 +1,69 @@ + + + + +glm::gtx::multiple Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::multiple Namespace Reference
      +
      +
      + +

      < GLM_GTX_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)
      template<typename genType >
      genType lowerMultiple (genType const &Source, genType const &Multiple)
      +

      Detailed Description

      +

      < GLM_GTX_multiple: Find the closest number of a number multiple of other number.

      +
      + + + diff --git a/doc/api-0.9.2/a00198.html b/doc/api-0.9.2/a00198.html new file mode 100644 index 00000000..02ccfe53 --- /dev/null +++ b/doc/api-0.9.2/a00198.html @@ -0,0 +1,71 @@ + + + + +glm::gtx::noise Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::noise Namespace Reference
      +
      +
      + +

      < GLM_GTX_noise extension: Comparison functions for a user defined epsilon values. +More...

      + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_noise extension: Comparison functions for a user defined epsilon values.

      +
      + + + diff --git a/doc/api-0.9.2/a00199.html b/doc/api-0.9.2/a00199.html new file mode 100644 index 00000000..ca86f1b1 --- /dev/null +++ b/doc/api-0.9.2/a00199.html @@ -0,0 +1,95 @@ + + + + +glm::gtx::norm Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::norm Namespace Reference
      +
      +
      + +

      < GLM_GTX_norm extension: Various way to compute vector norms. +More...

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

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_norm extension: Various way to compute vector norms.

      +
      + + + diff --git a/doc/api-0.9.2/a00200.html b/doc/api-0.9.2/a00200.html new file mode 100644 index 00000000..b27448d2 --- /dev/null +++ b/doc/api-0.9.2/a00200.html @@ -0,0 +1,67 @@ + + + + +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)
      +

      Detailed Description

      +

      < GLM_GTX_normal extension: Compute the normal of a triangle.

      +
      + + + diff --git a/doc/api-0.9.2/a00201.html b/doc/api-0.9.2/a00201.html new file mode 100644 index 00000000..e9321f69 --- /dev/null +++ b/doc/api-0.9.2/a00201.html @@ -0,0 +1,69 @@ + + + + +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)
      template<typename genType >
      genType::value_type normalizeDot (genType const &x, genType const &y)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00202.html b/doc/api-0.9.2/a00202.html new file mode 100644 index 00000000..d42d9d89 --- /dev/null +++ b/doc/api-0.9.2/a00202.html @@ -0,0 +1,91 @@ + + + + +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
      +typedef f16 f16mat1x1
      +typedef f16 f16vec1
      +typedef f32 f32mat1
      +typedef f32 f32mat1x1
      +typedef f32 f32vec1
      +typedef f64 f64mat1
      +typedef f64 f64mat1x1
      +typedef f64 f64vec1
      +typedef u16 u16vec1
      +typedef u32 u32vec1
      +typedef u64 u64vec1
      +typedef u8 u8vec1
      +

      Detailed Description

      +

      < GLM_GTX_number_precision extension: Defined size types.

      +
      + + + diff --git a/doc/api-0.9.2/a00203.html b/doc/api-0.9.2/a00203.html new file mode 100644 index 00000000..34cf53b5 --- /dev/null +++ b/doc/api-0.9.2/a00203.html @@ -0,0 +1,184 @@ + + + + +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
      +typedef detail::int8 cl_char1
      +typedef detail::tvec2
      +< detail::int8 > 
      cl_char2
      +typedef detail::tvec3
      +< detail::int8 > 
      cl_char3
      +typedef detail::tvec4
      +< detail::int8 > 
      cl_char4
      +typedef detail::float32 cl_float
      +typedef detail::float32 cl_float1
      +typedef detail::tvec2
      +< detail::float32 > 
      cl_float2
      +typedef detail::tvec3
      +< detail::float32 > 
      cl_float3
      +typedef detail::tvec4
      +< detail::float32 > 
      cl_float4
      +typedef detail::float16 cl_half
      +typedef detail::int32 cl_int
      +typedef detail::int32 cl_int1
      +typedef detail::tvec2
      +< detail::int32 > 
      cl_int2
      +typedef detail::tvec3
      +< detail::int32 > 
      cl_int3
      +typedef detail::tvec4
      +< detail::int32 > 
      cl_int4
      +typedef detail::int64 cl_long
      +typedef detail::int64 cl_long1
      +typedef detail::tvec2
      +< detail::int64 > 
      cl_long2
      +typedef detail::tvec3
      +< detail::int64 > 
      cl_long3
      +typedef detail::tvec4
      +< detail::int64 > 
      cl_long4
      +typedef detail::int16 cl_short
      +typedef detail::int16 cl_short1
      +typedef detail::tvec2
      +< detail::int16 > 
      cl_short2
      +typedef detail::tvec3
      +< detail::int16 > 
      cl_short3
      +typedef detail::tvec4
      +< detail::int16 > 
      cl_short4
      +typedef detail::uint8 cl_uchar
      +typedef detail::uint8 cl_uchar1
      +typedef detail::tvec2
      +< detail::uint8 > 
      cl_uchar2
      +typedef detail::tvec3
      +< detail::uint8 > 
      cl_uchar3
      +typedef detail::tvec4
      +< detail::uint8 > 
      cl_uchar4
      +typedef detail::uint32 cl_uint
      +typedef detail::uint32 cl_uint1
      +typedef detail::tvec2
      +< detail::uint32 > 
      cl_uint2
      +typedef detail::tvec3
      +< detail::uint32 > 
      cl_uint3
      +typedef detail::tvec4
      +< detail::uint32 > 
      cl_uint4
      +typedef detail::uint64 cl_ulong
      +typedef detail::uint64 cl_ulong1
      +typedef detail::tvec2
      +< detail::uint64 > 
      cl_ulong2
      +typedef detail::tvec3
      +< detail::uint64 > 
      cl_ulong3
      +typedef detail::tvec4
      +< detail::uint64 > 
      cl_ulong4
      +typedef detail::uint16 cl_ushort
      +typedef detail::uint16 cl_ushort1
      +typedef detail::tvec2
      +< detail::uint16 > 
      cl_ushort2
      +typedef detail::tvec3
      +< detail::uint16 > 
      cl_ushort3
      +typedef detail::tvec4
      +< detail::uint16 > 
      cl_ushort4
      +

      Detailed Description

      +

      < GLM_GTX_ocl_type extension: OpenCL types.

      +
      + + + diff --git a/doc/api-0.9.2/a00204.html b/doc/api-0.9.2/a00204.html new file mode 100644 index 00000000..a9c12e92 --- /dev/null +++ b/doc/api-0.9.2/a00204.html @@ -0,0 +1,75 @@ + + + + +glm::gtx::optimum_pow Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::optimum_pow Namespace Reference
      +
      +
      + +

      < GLM_GTX_optimum_pow extension: Integer exponentiation of power functions. +More...

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

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_optimum_pow extension: Integer exponentiation of power functions.

      +
      + + + diff --git a/doc/api-0.9.2/a00205.html b/doc/api-0.9.2/a00205.html new file mode 100644 index 00000000..bf6e7685 --- /dev/null +++ b/doc/api-0.9.2/a00205.html @@ -0,0 +1,69 @@ + + + + +glm::gtx::orthonormalize Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::orthonormalize Namespace Reference
      +
      +
      + +

      < GLM_GTX_orthonormalize extension: Orthonormalize matrices. +More...

      + + + + + + +

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_orthonormalize extension: Orthonormalize matrices.

      +
      + + + diff --git a/doc/api-0.9.2/a00206.html b/doc/api-0.9.2/a00206.html new file mode 100644 index 00000000..096ce27b --- /dev/null +++ b/doc/api-0.9.2/a00206.html @@ -0,0 +1,71 @@ + + + + +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::tvec2< T > perp (detail::tvec2< T > const &x, detail::tvec2< T > const &Normal)
      template<typename T >
      detail::tvec4< T > perp (detail::tvec4< T > const &x, detail::tvec4< T > const &Normal)
      template<typename T >
      detail::tvec3< T > perp (detail::tvec3< T > const &x, detail::tvec3< T > const &Normal)
      +

      Detailed Description

      +

      < GLM_GTX_perpendicular extension: Perpendicular of a vector from other one

      +
      + + + diff --git a/doc/api-0.9.2/a00207.html b/doc/api-0.9.2/a00207.html new file mode 100644 index 00000000..ddbe0174 --- /dev/null +++ b/doc/api-0.9.2/a00207.html @@ -0,0 +1,69 @@ + + + + +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)
      template<typename T >
      detail::tvec3< T > polar (const detail::tvec3< T > &euclidean)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00208.html b/doc/api-0.9.2/a00208.html new file mode 100644 index 00000000..ebd58ed7 --- /dev/null +++ b/doc/api-0.9.2/a00208.html @@ -0,0 +1,71 @@ + + + + +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::tvec2< T > proj (detail::tvec2< T > const &x, detail::tvec2< T > const &Normal)
      template<typename T >
      detail::tvec4< T > proj (detail::tvec4< T > const &x, detail::tvec4< T > const &Normal)
      template<typename T >
      detail::tvec3< T > proj (detail::tvec3< T > const &x, detail::tvec3< T > const &Normal)
      +

      Detailed Description

      +

      < GLM_GTX_projection extension: Projection of a vector to other one

      +
      + + + diff --git a/doc/api-0.9.2/a00209.html b/doc/api-0.9.2/a00209.html new file mode 100644 index 00000000..0c8d097c --- /dev/null +++ b/doc/api-0.9.2/a00209.html @@ -0,0 +1,113 @@ + + + + +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)
      template<typename valType >
      detail::tquat< valType > angleAxis (valType const &angle, valType const &x, valType const &y, valType const &z)
      template<typename valType >
      detail::tquat< valType > angleAxis (valType const &angle, detail::tvec3< valType > const &axis)
      template<typename valType >
      detail::tvec3< valType > axis (detail::tquat< valType > const &x)
      template<typename valType >
      detail::tvec3< valType > cross (detail::tquat< valType > const &q, detail::tvec3< valType > const &v)
      template<typename valType >
      detail::tvec3< valType > cross (detail::tvec3< valType > const &v, detail::tquat< valType > const &q)
      template<typename valType >
      detail::tvec3< valType > eulerAngles (detail::tquat< valType > const &x)
      template<typename valType >
      detail::tquat< valType > exp (detail::tquat< valType > const &q, valType const &exponent)
      template<typename valType >
      valType extractRealComponent (detail::tquat< valType > const &q)
      template<typename T >
      detail::tquat< T > fastMix (detail::tquat< T > const &x, detail::tquat< T > const &y, T const &a)
      template<typename valType >
      detail::tquat< valType > intermediate (detail::tquat< valType > const &prev, detail::tquat< valType > const &curr, detail::tquat< valType > const &next)
      template<typename valType >
      detail::tquat< valType > log (detail::tquat< valType > const &q)
      template<typename valType >
      valType pitch (detail::tquat< valType > const &x)
      template<typename valType >
      detail::tquat< valType > pow (detail::tquat< valType > const &x, valType const &y)
      template<typename valType >
      valType roll (detail::tquat< valType > const &x)
      template<typename valType >
      detail::tvec3< valType > rotate (detail::tquat< valType > const &q, detail::tvec3< valType > const &v)
      template<typename valType >
      detail::tvec4< valType > rotate (detail::tquat< valType > const &q, detail::tvec4< valType > const &v)
      template<typename T >
      detail::tquat< T > shortMix (detail::tquat< T > const &x, detail::tquat< T > const &y, T const &a)
      template<typename valType >
      detail::tquat< valType > squad (detail::tquat< valType > const &q1, detail::tquat< valType > const &q2, detail::tquat< valType > const &s1, detail::tquat< valType > const &s2, valType const &h)
      template<typename valType >
      detail::tmat3x3< valType > toMat3 (detail::tquat< valType > const &x)
      template<typename valType >
      detail::tmat4x4< valType > toMat4 (detail::tquat< valType > const &x)
      template<typename valType >
      detail::tquat< valType > toQuat (detail::tmat4x4< valType > const &x)
      template<typename valType >
      detail::tquat< valType > toQuat (detail::tmat3x3< valType > const &x)
      template<typename valType >
      valType yaw (detail::tquat< valType > const &x)
      +

      Detailed Description

      +

      < GLM_GTX_quaternion extension: Quaternion types and functions

      +
      + + + diff --git a/doc/api-0.9.2/a00210.html b/doc/api-0.9.2/a00210.html new file mode 100644 index 00000000..51371313 --- /dev/null +++ b/doc/api-0.9.2/a00210.html @@ -0,0 +1,175 @@ + + + + +glm::gtx::random Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::random Namespace Reference
      +
      +
      + +

      < GLM_GTX_random extension: Generate random number from various distribution methods +More...

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

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_random extension: Generate random number from various distribution methods

      +
      + + + diff --git a/doc/api-0.9.2/a00211.html b/doc/api-0.9.2/a00211.html new file mode 100644 index 00000000..48d47044 --- /dev/null +++ b/doc/api-0.9.2/a00211.html @@ -0,0 +1,69 @@ + + + + +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 uint8 byte
      typedef uint32 dword
      typedef uint64 qword
      typedef uint16 word
      +

      Detailed Description

      +

      < GLM_GTX_raw_data extension: Projection of a vector to other one

      +
      + + + diff --git a/doc/api-0.9.2/a00212.html b/doc/api-0.9.2/a00212.html new file mode 100644 index 00000000..924e3766 --- /dev/null +++ b/doc/api-0.9.2/a00212.html @@ -0,0 +1,89 @@ + + + + +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)
      template<typename genType >
      genType acoth (genType const &x)
      template<typename genType >
      genType acsc (genType const &x)
      template<typename genType >
      genType acsch (genType const &x)
      template<typename genType >
      genType asec (genType const &x)
      template<typename genType >
      genType asech (genType const &x)
      template<typename genType >
      genType cot (genType const &angle)
      template<typename genType >
      genType coth (genType const &angle)
      template<typename genType >
      genType csc (genType const &angle)
      template<typename genType >
      genType csch (genType const &angle)
      template<typename genType >
      genType sec (genType const &angle)
      template<typename genType >
      genType sech (genType const &angle)
      +

      Detailed Description

      +

      < GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions.

      +
      + + + diff --git a/doc/api-0.9.2/a00213.html b/doc/api-0.9.2/a00213.html new file mode 100644 index 00000000..6225d81f --- /dev/null +++ b/doc/api-0.9.2/a00213.html @@ -0,0 +1,85 @@ + + + + +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 (detail::tvec3< T > const &Normal, detail::tvec3< T > const &Up)
      template<typename T >
      detail::tvec2< T > rotate (detail::tvec2< T > const &v, T const &angle)
      template<typename T >
      detail::tvec3< T > rotate (detail::tvec3< T > const &v, T const &angle, detail::tvec3< T > const &normal)
      template<typename T >
      detail::tvec4< T > rotate (detail::tvec4< T > const &v, T const &angle, detail::tvec3< T > const &normal)
      template<typename T >
      detail::tvec3< T > rotateX (detail::tvec3< T > const &v, T const &angle)
      template<typename T >
      detail::tvec4< T > rotateX (detail::tvec4< T > const &v, T const &angle)
      template<typename T >
      detail::tvec3< T > rotateY (detail::tvec3< T > const &v, T const &angle)
      template<typename T >
      detail::tvec4< T > rotateY (detail::tvec4< T > const &v, T const &angle)
      template<typename T >
      detail::tvec3< T > rotateZ (detail::tvec3< T > const &v, T const &angle)
      template<typename T >
      detail::tvec4< T > rotateZ (detail::tvec4< T > const &v, T const &angle)
      +

      Detailed Description

      +

      < GLM_GTX_rotate_vector extension: Function to directly rotate a vector

      +
      + + + diff --git a/doc/api-0.9.2/a00214.html b/doc/api-0.9.2/a00214.html new file mode 100644 index 00000000..a641ced3 --- /dev/null +++ b/doc/api-0.9.2/a00214.html @@ -0,0 +1,71 @@ + + + + +glm::gtx::simd_mat4 Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::simd_mat4 Namespace Reference
      +
      +
      + +

      < GLM_GTX_simd_mat4 extension: SIMD implementation of mat4 type. +More...

      + + + + + + + + +

      +Functions

      float determinant (detail::fmat4x4SIMD const &m)
      detail::fmat4x4SIMD inverse (detail::fmat4x4SIMD const &m)
      detail::tmat4x4< float > mat4_cast (detail::fmat4x4SIMD const &x)
      detail::fmat4x4SIMD matrixCompMult (detail::fmat4x4SIMD const &x, detail::fmat4x4SIMD const &y)
      detail::fmat4x4SIMD outerProduct (detail::fvec4SIMD const &c, detail::fvec4SIMD const &r)
      detail::fmat4x4SIMD transpose (detail::fmat4x4SIMD const &x)
      +

      Detailed Description

      +

      < GLM_GTX_simd_mat4 extension: SIMD implementation of mat4 type.

      +
      + + + diff --git a/doc/api-0.9.2/a00215.html b/doc/api-0.9.2/a00215.html new file mode 100644 index 00000000..0f307e59 --- /dev/null +++ b/doc/api-0.9.2/a00215.html @@ -0,0 +1,103 @@ + + + + +glm::gtx::simd_vec4 Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::simd_vec4 Namespace Reference
      +
      +
      + +

      < GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type. +More...

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

      +Functions

      detail::fvec4SIMD abs (detail::fvec4SIMD const &x)
      detail::fvec4SIMD ceil (detail::fvec4SIMD const &x)
      detail::fvec4SIMD clamp (detail::fvec4SIMD const &x, detail::fvec4SIMD const &minVal, detail::fvec4SIMD const &maxVal)
      detail::fvec4SIMD cross (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y)
      float distance (detail::fvec4SIMD const &p0, detail::fvec4SIMD const &p1)
      detail::fvec4SIMD distance4 (detail::fvec4SIMD const &p0, detail::fvec4SIMD const &p1)
      detail::fvec4SIMD dot4 (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y)
      detail::fvec4SIMD fastInversesqrt (detail::fvec4SIMD const &x)
      float fastLength (detail::fvec4SIMD const &x)
      detail::fvec4SIMD fastLength4 (detail::fvec4SIMD const &x)
      detail::fvec4SIMD fastNormalize (detail::fvec4SIMD const &x)
      detail::fvec4SIMD fastSqrt (detail::fvec4SIMD const &x)
      detail::fvec4SIMD floor (detail::fvec4SIMD const &x)
      detail::fvec4SIMD fma (detail::fvec4SIMD const &a, detail::fvec4SIMD const &b, detail::fvec4SIMD const &c)
      detail::fvec4SIMD fract (detail::fvec4SIMD const &x)
      detail::fvec4SIMD inversesqrt (detail::fvec4SIMD const &x)
      float length (detail::fvec4SIMD const &x)
      detail::fvec4SIMD length4 (detail::fvec4SIMD const &x)
      detail::fvec4SIMD max (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y)
      detail::fvec4SIMD min (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y)
      detail::fvec4SIMD mix (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y, detail::fvec4SIMD const &a)
      detail::fvec4SIMD mod (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y)
      detail::fvec4SIMD mod (detail::fvec4SIMD const &x, float const &y)
      float niceLength (detail::fvec4SIMD const &x)
      detail::fvec4SIMD niceLength4 (detail::fvec4SIMD const &x)
      detail::fvec4SIMD niceSqrt (detail::fvec4SIMD const &x)
      detail::fvec4SIMD normalize (detail::fvec4SIMD const &x)
      detail::fvec4SIMD reflect (detail::fvec4SIMD const &I, detail::fvec4SIMD const &N)
      detail::fvec4SIMD refract (detail::fvec4SIMD const &I, detail::fvec4SIMD const &N, float const &eta)
      detail::fvec4SIMD round (detail::fvec4SIMD const &x)
      detail::fvec4SIMD sign (detail::fvec4SIMD const &x)
      float simdDot (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y)
      detail::fvec4SIMD simdFaceforward (detail::fvec4SIMD const &N, detail::fvec4SIMD const &I, detail::fvec4SIMD const &Nref)
      detail::fvec4SIMD smoothstep (detail::fvec4SIMD const &edge0, detail::fvec4SIMD const &edge1, detail::fvec4SIMD const &x)
      detail::fvec4SIMD sqrt (detail::fvec4SIMD const &x)
      detail::fvec4SIMD step (detail::fvec4SIMD const &edge, detail::fvec4SIMD const &x)
      detail::fvec4SIMD trunc (detail::fvec4SIMD const &x)
      detail::tvec4< float > vec4_cast (detail::fvec4SIMD const &x)
      +

      Detailed Description

      +

      < GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type.

      +
      + + + diff --git a/doc/api-0.9.2/a00216.html b/doc/api-0.9.2/a00216.html new file mode 100644 index 00000000..5b54c9b6 --- /dev/null +++ b/doc/api-0.9.2/a00216.html @@ -0,0 +1,72 @@ + + + + +glm::gtx::spline Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::spline Namespace Reference
      +
      +
      + +

      < GLM_GTX_simplex extension: Spline functions +More...

      + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_simplex extension: Spline functions

      +

      < GLM_GTX_spline extension: Spline functions

      +
      + + + diff --git a/doc/api-0.9.2/a00217.html b/doc/api-0.9.2/a00217.html new file mode 100644 index 00000000..f6b6cc2c --- /dev/null +++ b/doc/api-0.9.2/a00217.html @@ -0,0 +1,61 @@ + + + + +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

      +
      + + + diff --git a/doc/api-0.9.2/a00218.html b/doc/api-0.9.2/a00218.html new file mode 100644 index 00000000..700ee785 --- /dev/null +++ b/doc/api-0.9.2/a00218.html @@ -0,0 +1,67 @@ + + + + +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 to_string (genType const &x)
      +

      Detailed Description

      +

      < GLM_GTX_string_cast extension: Setup strings for GLM type values

      +
      + + + diff --git a/doc/api-0.9.2/a00219.html b/doc/api-0.9.2/a00219.html new file mode 100644 index 00000000..010cbe1a --- /dev/null +++ b/doc/api-0.9.2/a00219.html @@ -0,0 +1,83 @@ + + + + +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 (T angle, T x, T y, T z)
      template<typename T >
      detail::tmat4x4< T > rotate (T angle, detail::tvec3< T > const &v)
      template<typename T >
      detail::tmat4x4< T > rotate (detail::tmat4x4< T > const &m, T angle, T x, T y, T z)
      template<typename T >
      detail::tmat4x4< T > scale (detail::tvec3< T > const &v)
      template<typename T >
      detail::tmat4x4< T > scale (detail::tmat4x4< T > const &m, T x, T y, T z)
      template<typename T >
      detail::tmat4x4< T > scale (T x, T y, T z)
      template<typename T >
      detail::tmat4x4< T > translate (detail::tmat4x4< T > const &m, T x, T y, T z)
      template<typename T >
      detail::tmat4x4< T > translate (T x, T y, T z)
      template<typename T >
      detail::tmat4x4< T > translate (detail::tvec3< T > const &v)
      +

      Detailed Description

      +

      < GLM_GTX_transform extension: Add transformation matrices

      +
      + + + diff --git a/doc/api-0.9.2/a00220.html b/doc/api-0.9.2/a00220.html new file mode 100644 index 00000000..30e72865 --- /dev/null +++ b/doc/api-0.9.2/a00220.html @@ -0,0 +1,83 @@ + + + + +glm::gtx::transform2 Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::transform2 Namespace Reference
      +
      +
      + +

      < GLM_GTX_transform2 extension: Add extra transformation matrices +More...

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

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_transform2 extension: Add extra transformation matrices

      +
      + + + diff --git a/doc/api-0.9.2/a00221.html b/doc/api-0.9.2/a00221.html new file mode 100644 index 00000000..0e993c82 --- /dev/null +++ b/doc/api-0.9.2/a00221.html @@ -0,0 +1,77 @@ + + + + +glm::gtx::ulp Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::ulp Namespace Reference
      +
      +
      + +

      < GLM_GTX_ulp extension: Precision calculation functions +More...

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

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_ulp extension: Precision calculation functions

      +
      + + + diff --git a/doc/api-0.9.2/a00222.html b/doc/api-0.9.2/a00222.html new file mode 100644 index 00000000..0e4c5a4a --- /dev/null +++ b/doc/api-0.9.2/a00222.html @@ -0,0 +1,72 @@ + + + + +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

      +Functions

      uint mod (uint x, uint y)
      uint pow (uint x, uint y)
      uint sqrt (uint x)
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00224.html b/doc/api-0.9.2/a00224.html new file mode 100644 index 00000000..ca2c1207 --- /dev/null +++ b/doc/api-0.9.2/a00224.html @@ -0,0 +1,238 @@ + + + + +glm::gtx::vector1::precision Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::vector1::precision Namespace Reference
      +
      +
      + +

      < GLM_GTX_vec1 extension: 1 component vector. +More...

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

      +Typedefs

      typedef detail::highp_ivec1_t highp_ivec1
      typedef detail::highp_uvec1_t highp_uvec1
      typedef detail::highp_vec1_t highp_vec1
      typedef detail::lowp_ivec1_t lowp_ivec1
      typedef detail::lowp_uvec1_t lowp_uvec1
      typedef detail::lowp_vec1_t lowp_vec1
      typedef detail::mediump_ivec1_t mediump_ivec1
      typedef detail::mediump_uvec1_t mediump_uvec1
      typedef detail::mediump_vec1_t mediump_vec1
      +

      Detailed Description

      +

      < GLM_GTX_vec1 extension: 1 component vector.

      +

      Typedef Documentation

      + +
      +
      + + + + +
      typedef detail::highp_ivec1_t highp_ivec1
      +
      +
      + +

      1 component vector of high precision signed integer numbers.

      +

      There is no guarantee on the actual precision. From GLM_GTX_vec1 extension.

      + +

      Definition at line 45 of file vec1.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::highp_uvec1_t highp_uvec1
      +
      +
      + +

      1 component vector of high precision unsigned integer numbers.

      +

      There is no guarantee on the actual precision. From GLM_GTX_vec1 extension.

      + +

      Definition at line 58 of file vec1.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::highp_vec1_t highp_vec1
      +
      +
      + +

      1 component vector of high precision floating-point numbers.

      +

      There is no guarantee on the actual precision. From GLM_GTX_vec1 extension.

      + +

      Definition at line 32 of file vec1.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::lowp_ivec1_t lowp_ivec1
      +
      +
      + +

      1 component vector of low precision signed integer numbers.

      +

      There is no guarantee on the actual precision. From GLM_GTX_vec1 extension.

      + +

      Definition at line 53 of file vec1.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::lowp_uvec1_t lowp_uvec1
      +
      +
      + +

      1 component vector of low precision unsigned integer numbers.

      +

      There is no guarantee on the actual precision. From GLM_GTX_vec1 extension.

      + +

      Definition at line 66 of file vec1.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::lowp_vec1_t lowp_vec1
      +
      +
      + +

      1 component vector of low precision floating-point numbers.

      +

      There is no guarantee on the actual precision. From GLM_GTX_vec1 extension.

      + +

      Definition at line 40 of file vec1.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::mediump_ivec1_t mediump_ivec1
      +
      +
      + +

      1 component vector of medium precision signed integer numbers.

      +

      There is no guarantee on the actual precision. From GLM_GTX_vec1 extension.

      + +

      Definition at line 49 of file vec1.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::mediump_uvec1_t mediump_uvec1
      +
      +
      + +

      1 component vector of medium precision unsigned integer numbers.

      +

      There is no guarantee on the actual precision. From GLM_GTX_vec1 extension.

      + +

      Definition at line 62 of file vec1.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::mediump_vec1_t mediump_vec1
      +
      +
      + +

      1 component vector of medium precision floating-point numbers.

      +

      There is no guarantee on the actual precision. From GLM_GTX_vec1 extension.

      + +

      Definition at line 36 of file vec1.hpp.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00225.html b/doc/api-0.9.2/a00225.html new file mode 100644 index 00000000..23d91ca1 --- /dev/null +++ b/doc/api-0.9.2/a00225.html @@ -0,0 +1,71 @@ + + + + +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::tvec2< valType > &v, valType const &x, valType const &y)
      template<typename valType >
      void set (detail::tvec4< valType > &v, valType const &x, valType const &y, valType const &z, valType const &w)
      template<typename valType >
      void set (detail::tvec3< valType > &v, valType const &x, valType const &y, valType const &z)
      +

      Detailed Description

      +

      < GLM_GTX_vector_access extension: Function to set values to vectors

      +
      + + + diff --git a/doc/api-0.9.2/a00226.html b/doc/api-0.9.2/a00226.html new file mode 100644 index 00000000..8cd2ab07 --- /dev/null +++ b/doc/api-0.9.2/a00226.html @@ -0,0 +1,72 @@ + + + + +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 >
      GLM_FUNC_QUALIFIER
      +vecType::value_type 
      angle (vecType const &x, vecType const &y)
      template<typename T >
      GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec3< T > const &x, detail::tvec3< T > const &y, detail::tvec3< T > const &ref)
      template<typename T >
      GLM_FUNC_QUALIFIER T orientedAngle (detail::tvec2< T > const &x, detail::tvec2< T > const &y)
      +

      Detailed Description

      +

      < GLM_GTX_vector_angle extension: Compute angle between vectors

      +
      + + + diff --git a/doc/api-0.9.2/a00227.html b/doc/api-0.9.2/a00227.html new file mode 100644 index 00000000..f1f06aba --- /dev/null +++ b/doc/api-0.9.2/a00227.html @@ -0,0 +1,79 @@ + + + + +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 (genType const &v0, genType const &v1, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      template<typename genType >
      bool areOpposite (genType const &v0, genType const &v1, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      template<typename genType >
      bool areOrthogonal (genType const &v0, genType const &v1, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      template<typename genType >
      bool areOrthonormal (genType const &v0, genType const &v1, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      template<typename genType >
      bool areSimilar (genType const &v0, genType const &v1, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      template<typename genType >
      bool isNormalized (genType const &v, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      template<typename genType >
      bool isNull (genType const &v, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      +

      Detailed Description

      +

      < GLM_GTX_vector_query extension: Query informations of vector types

      +
      + + + diff --git a/doc/api-0.9.2/a00228.html b/doc/api-0.9.2/a00228.html new file mode 100644 index 00000000..d638fe3d --- /dev/null +++ b/doc/api-0.9.2/a00228.html @@ -0,0 +1,75 @@ + + + + +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)
      template<typename genTypeT , typename genTypeU >
      genTypeT div (genTypeT const &a, genTypeU const &b)
      template<typename genTypeT , typename genTypeU , typename genTypeV >
      genTypeT mad (genTypeT const &a, genTypeU const &b, genTypeV const &c)
      template<typename genTypeT , typename genTypeU >
      genTypeT mul (genTypeT const &a, genTypeU const &b)
      template<typename genTypeT , typename genTypeU >
      genTypeT sub (genTypeT const &a, genTypeU const &b)
      +

      Detailed Description

      +

      < GLM_GTX_verbose_operator extension: Use words to replace operators

      +
      + + + diff --git a/doc/api-0.9.2/a00229.html b/doc/api-0.9.2/a00229.html new file mode 100644 index 00000000..a5f48f1e --- /dev/null +++ b/doc/api-0.9.2/a00229.html @@ -0,0 +1,71 @@ + + + + +glm::gtx::wrap Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      + +
      +
      glm::gtx::wrap Namespace Reference
      +
      +
      + +

      < GLM_GTX_wrap: Wrapping mode using my texture samping. +More...

      + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      < GLM_GTX_wrap: Wrapping mode using my texture samping.

      +
      + + + diff --git a/doc/api-0.9.2/a00230.html b/doc/api-0.9.2/a00230.html new file mode 100644 index 00000000..f60aa25d --- /dev/null +++ b/doc/api-0.9.2/a00230.html @@ -0,0 +1,60 @@ + + + + +glm::virtrev Namespace Reference + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      glm::virtrev Namespace Reference
      +
      +
      + +

      VIRTREV extensions. +More...

      + +
      +

      Detailed Description

      +

      VIRTREV extensions.

      +
      + + + diff --git a/doc/api-0.9.2/a00232.html b/doc/api-0.9.2/a00232.html new file mode 100644 index 00000000..770e7b3a --- /dev/null +++ b/doc/api-0.9.2/a00232.html @@ -0,0 +1,61 @@ + + + + +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.

      +
      + + + diff --git a/doc/api-0.9.2/a00234.html b/doc/api-0.9.2/a00234.html new file mode 100644 index 00000000..27626f09 --- /dev/null +++ b/doc/api-0.9.2/a00234.html @@ -0,0 +1,58 @@ + + + + +GLM Core + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM Core
      +
      +
      + +

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

      + + + + + + +

      +Modules

       Types
       Precision types
       Template types
       Functions
      +

      Detailed Description

      +

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

      +

      The GLM core consists of C++ types that mirror GLSL types, C++ functions that mirror the GLSL functions. It also includes a set of precision-based types that can be used in the appropriate functions. The C++ types are all based on a basic set of template types.

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00235.html b/doc/api-0.9.2/a00235.html new file mode 100644 index 00000000..db8cebce --- /dev/null +++ b/doc/api-0.9.2/a00235.html @@ -0,0 +1,795 @@ + + + + +Types + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      Types
      +
      +
      + +

      The standard types defined by the specification. +More...

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

      +Typedefs

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

      Detailed Description

      +

      The standard types defined by the specification.

      +

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

      +

      Typedef Documentation

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

      2 components vector of boolean.

      +

      From GLSL 1.30.8 specification, section 4.1.5 Vectors.

      + +

      Definition at line 228 of file type.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 233 of file type.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 238 of file type.hpp.

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

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

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 261 of file type.hpp.

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

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

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 276 of file type.hpp.

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

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

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 281 of file type.hpp.

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

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

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 286 of file type.hpp.

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

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

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 266 of file type.hpp.

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

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

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 291 of file type.hpp.

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

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

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 296 of file type.hpp.

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

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

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 301 of file type.hpp.

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

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

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 271 of file type.hpp.

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

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

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 306 of file type.hpp.

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

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

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 311 of file type.hpp.

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

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

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 316 of file type.hpp.

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

      Vector of 2 double-precision floating-point numbers.

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 246 of file type.hpp.

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

      Vector of 3 double-precision floating-point numbers.

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 251 of file type.hpp.

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

      Vector of 4 double-precision floating-point numbers.

      +

      From GLSL 4.00.8 specification, section 4.1 Basic Types.

      + +

      Definition at line 256 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_ivec2 ivec2
      +
      +
      + +

      2 components vector of signed integer numbers.

      +

      From GLSL 1.30.8 specification, section 4.1.5 Vectors.

      + +

      Definition at line 177 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_ivec3 ivec3
      +
      +
      + +

      3 components vector of signed integer numbers.

      +

      From GLSL 1.30.8 specification, section 4.1.5 Vectors.

      + +

      Definition at line 182 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_ivec4 ivec4
      +
      +
      + +

      4 components vector of signed integer numbers.

      +

      From GLSL 1.30.8 specification, section 4.1.5 Vectors.

      + +

      Definition at line 187 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      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 146 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_mat2x2 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 99 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_mat2x3 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 104 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_mat2x4 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 109 of file type.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 151 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_mat3x2 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 114 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_mat3x3 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 119 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_mat3x4 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 124 of file type.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 156 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_mat4x2 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 129 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_mat4x3 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 134 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_mat4x4 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 139 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_uvec2 uvec2
      +
      +
      + +

      2 components vector of unsigned integer numbers.

      +

      From GLSL 1.30.8 specification, section 4.1.5 Vectors.

      + +

      Definition at line 209 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_uvec3 uvec3
      +
      +
      + +

      3 components vector of unsigned integer numbers.

      +

      From GLSL 1.30.8 specification, section 4.1.5 Vectors.

      + +

      Definition at line 214 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_uvec4 uvec4
      +
      +
      + +

      4 components vector of unsigned integer numbers.

      +

      From GLSL 1.30.8 specification, section 4.1.5 Vectors.

      + +

      Definition at line 219 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_vec2 vec2
      +
      +
      + +

      2 components vector of floating-point numbers.

      +

      From GLSL 1.30.8 specification, section 4.1.5 Vectors.

      + +

      Definition at line 84 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_vec3 vec3
      +
      +
      + +

      3 components vector of floating-point numbers.

      +

      From GLSL 1.30.8 specification, section 4.1.5 Vectors.

      + +

      Definition at line 89 of file type.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef precision::mediump_vec4 vec4
      +
      +
      + +

      4 components vector of floating-point numbers.

      +

      From GLSL 1.30.8 specification, section 4.1.5 Vectors.

      + +

      Definition at line 94 of file type.hpp.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00236.html b/doc/api-0.9.2/a00236.html new file mode 100644 index 00000000..79ce180d --- /dev/null +++ b/doc/api-0.9.2/a00236.html @@ -0,0 +1,1292 @@ + + + + +Precision types + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      Precision types
      +
      +
      + +

      Non-GLSL types that are used to define precision-based types. +More...

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

      +Typedefs

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

      Detailed Description

      +

      Non-GLSL types that are used to define precision-based types.

      +

      The GLSL language allows the user to define the precision of a particular variable. In OpenGL's GLSL, these precision qualifiers have no effect; they are there for compatibility with OpenGL ES's precision qualifiers, where they do have an effect.

      +

      C++ has no language equivalent to precision qualifiers. So GLM provides the next-best thing: a number of typedefs of the Template types that use a particular precision.

      +

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

      +

      Typedef Documentation

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

      High precision floating-point numbers.

      +

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

      + +

      Definition at line 54 of file type_float.hpp.

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

      High precision signed integer.

      +

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

      + +

      Definition at line 58 of file type_int.hpp.

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

      2 components vector of high precision signed integer numbers.

      +

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

      + +

      Definition at line 224 of file type_vec2.hpp.

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

      3 components vector of high precision signed integer numbers.

      +

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

      + +

      Definition at line 237 of file type_vec3.hpp.

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

      4 components vector of high precision signed integer numbers.

      +

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

      + +

      Definition at line 270 of file type_vec4.hpp.

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

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

      +

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

      + +

      Definition at line 252 of file type_mat2x2.hpp.

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

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

      +

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

      + +

      Definition at line 270 of file type_mat2x2.hpp.

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

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

      +

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

      + +

      Definition at line 217 of file type_mat2x3.hpp.

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

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

      +

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

      + +

      Definition at line 254 of file type_mat3x3.hpp.

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

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

      +

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

      + +

      Definition at line 272 of file type_mat3x3.hpp.

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

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

      +

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

      + +

      Definition at line 257 of file type_mat4x4.hpp.

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

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

      +

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

      + +

      Definition at line 231 of file type_mat4x2.hpp.

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

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

      +

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

      + +

      Definition at line 229 of file type_mat4x3.hpp.

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

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

      +

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

      + +

      Definition at line 275 of file type_mat4x4.hpp.

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

      High precision unsigned integer.

      +

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

      + +

      Definition at line 74 of file type_int.hpp.

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

      2 components vector of high precision unsigned integer numbers.

      +

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

      + +

      Definition at line 242 of file type_vec2.hpp.

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

      3 components vector of high precision unsigned integer numbers.

      +

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

      + +

      Definition at line 255 of file type_vec3.hpp.

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

      4 components vector of high precision unsigned integer numbers.

      +

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

      + +

      Definition at line 288 of file type_vec4.hpp.

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

      2 components vector of high precision floating-point numbers.

      +

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

      + +

      Definition at line 206 of file type_vec2.hpp.

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

      3 components vector of high precision floating-point numbers.

      +

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

      + +

      Definition at line 219 of file type_vec3.hpp.

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

      4 components vector of high precision floating-point numbers.

      +

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

      + +

      Definition at line 252 of file type_vec4.hpp.

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

      Low precision floating-point numbers.

      +

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

      + +

      Definition at line 44 of file type_float.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::lowp_int_t lowp_int
      +
      +
      + +

      Low precision signed integer.

      +

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

      + +

      Definition at line 48 of file type_int.hpp.

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

      2 components vector of low precision signed integer numbers.

      +

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

      + +

      Definition at line 236 of file type_vec2.hpp.

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

      3 components vector of low precision signed integer numbers.

      +

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

      + +

      Definition at line 249 of file type_vec3.hpp.

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

      4 components vector of low precision signed integer numbers.

      +

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

      + +

      Definition at line 282 of file type_vec4.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat2x2<lowp_float> lowp_mat2
      +
      +
      + +

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

      +

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

      + +

      Definition at line 240 of file type_mat2x2.hpp.

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

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

      +

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

      + +

      Definition at line 258 of file type_mat2x2.hpp.

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

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

      +

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

      + +

      Definition at line 207 of file type_mat2x3.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat3x3<lowp_float> lowp_mat3
      +
      +
      + +

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

      +

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

      + +

      Definition at line 244 of file type_mat3x3.hpp.

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

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

      +

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

      + +

      Definition at line 260 of file type_mat3x3.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat4x4<lowp_float> lowp_mat4
      +
      +
      + +

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

      +

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

      + +

      Definition at line 245 of file type_mat4x4.hpp.

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

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

      +

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

      + +

      Definition at line 219 of file type_mat4x2.hpp.

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

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

      +

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

      + +

      Definition at line 217 of file type_mat4x3.hpp.

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

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

      +

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

      + +

      Definition at line 263 of file type_mat4x4.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::lowp_uint_t lowp_uint
      +
      +
      + +

      Low precision unsigned integer.

      +

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

      + +

      Definition at line 64 of file type_int.hpp.

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

      2 components vector of low precision unsigned integer numbers.

      +

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

      + +

      Definition at line 254 of file type_vec2.hpp.

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

      3 components vector of low precision unsigned integer numbers.

      +

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

      + +

      Definition at line 267 of file type_vec3.hpp.

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

      4 components vector of low precision unsigned integer numbers.

      +

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

      + +

      Definition at line 300 of file type_vec4.hpp.

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

      2 components vector of low precision floating-point numbers.

      +

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

      + +

      Definition at line 218 of file type_vec2.hpp.

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

      3 components vector of low precision floating-point numbers.

      +

      There is no guarantee on the actual precision. 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 guarantee on the actual precision. From GLSL 1.30.8 specification, section 4.5.2 Precision Qualifiers.

      + +

      Definition at line 264 of file type_vec4.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef mediump_float_t mediump_float
      +
      +
      + +

      Medium precision floating-point numbers.

      +

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

      + +

      Definition at line 49 of file type_float.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::mediump_int_t mediump_int
      +
      +
      + +

      Medium precision signed integer.

      +

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

      + +

      Definition at line 53 of file type_int.hpp.

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

      2 components vector of medium precision signed integer numbers.

      +

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

      + +

      Definition at line 230 of file type_vec2.hpp.

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

      3 components vector of medium precision signed integer numbers.

      +

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

      + +

      Definition at line 243 of file type_vec3.hpp.

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

      4 components vector of medium precision signed integer numbers.

      +

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

      + +

      Definition at line 276 of file type_vec4.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat2x2<mediump_float> mediump_mat2
      +
      +
      + +

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

      +

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

      + +

      Definition at line 246 of file type_mat2x2.hpp.

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

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

      +

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

      + +

      Definition at line 264 of file type_mat2x2.hpp.

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

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

      +

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

      + +

      Definition at line 212 of file type_mat2x3.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat3x3<mediump_float> mediump_mat3
      +
      +
      + +

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

      +

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

      + +

      Definition at line 249 of file type_mat3x3.hpp.

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

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

      +

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

      + +

      Definition at line 266 of file type_mat3x3.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat4x4<mediump_float> mediump_mat4
      +
      +
      + +

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

      +

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

      + +

      Definition at line 251 of file type_mat4x4.hpp.

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

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

      +

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

      + +

      Definition at line 225 of file type_mat4x2.hpp.

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

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

      +

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

      + +

      Definition at line 223 of file type_mat4x3.hpp.

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

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

      +

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

      + +

      Definition at line 269 of file type_mat4x4.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::mediump_uint_t mediump_uint
      +
      +
      + +

      Medium precision unsigned integer.

      +

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

      + +

      Definition at line 69 of file type_int.hpp.

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

      2 components vector of medium precision unsigned integer numbers.

      +

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

      + +

      Definition at line 248 of file type_vec2.hpp.

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

      3 components vector of medium precision unsigned integer numbers.

      +

      There is no guarantee on the actual precision. 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_uint> mediump_uvec4
      +
      +
      + +

      4 components vector of medium precision unsigned integer numbers.

      +

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

      + +

      Definition at line 294 of file type_vec4.hpp.

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

      2 components vector of medium precision floating-point numbers.

      +

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

      + +

      Definition at line 212 of file type_vec2.hpp.

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

      3 components vector of medium precision floating-point numbers.

      +

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

      + +

      Definition at line 225 of file type_vec3.hpp.

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

      4 components vector of medium precision floating-point numbers.

      +

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

      + +

      Definition at line 258 of file type_vec4.hpp.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00237.html b/doc/api-0.9.2/a00237.html new file mode 100644 index 00000000..43b4f51b --- /dev/null +++ b/doc/api-0.9.2/a00237.html @@ -0,0 +1,77 @@ + + + + +Template types + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      Template types
      +
      +
      + +

      The generic template types used as the basis for the core types. +More...

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

      +Classes

      struct  tmat2x2< T >
       Template for 2 * 2 matrix of floating-point numbers. More...
      struct  tmat2x3< T >
       Template for 2 columns and 3 rows matrix of floating-point numbers. More...
      struct  tmat2x4< T >
       Template for 2 columns and 4 rows matrix of floating-point numbers. More...
      struct  tmat3x2< T >
       Template for 3 columns and 2 rows matrix of floating-point numbers. More...
      struct  tmat3x3< T >
       Template for 3 * 3 matrix of floating-point numbers. More...
      struct  tmat3x4< T >
       Template for 3 columns and 4 rows matrix of floating-point numbers. More...
      struct  tmat4x2< T >
       Template for 4 columns and 2 rows matrix of floating-point numbers. More...
      struct  tmat4x3< T >
       Template for 4 columns and 3 rows matrix of floating-point numbers. More...
      struct  tmat4x4< T >
       Template for 4 * 4 matrix of floating-point numbers. More...
      struct  tvec2< T >
       The basic 2D vector type. More...
      struct  tvec3< T >
       Basic 3D vector type. More...
      struct  tvec4< T >
       Basic 4D vector type. More...
      +

      Detailed Description

      +

      The generic template types used as the basis for the core types.

      +

      These types are all templates used to define the actual Types. These templetes are implementation details of GLM types and should not be used explicitly.

      +
      + + + diff --git a/doc/api-0.9.2/a00238.html b/doc/api-0.9.2/a00238.html new file mode 100644 index 00000000..c843a469 --- /dev/null +++ b/doc/api-0.9.2/a00238.html @@ -0,0 +1,2974 @@ + + + + +Functions + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      Functions
      +
      +
      + +

      The functions defined by the specification. +More...

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

      +Functions

      template<typename genFIType >
      genFIType abs (genFIType const &x)
      template<typename genType >
      genType acos (genType const &x)
      template<typename genType >
      genType acosh (genType const &x)
      template<template< typename > class vecType>
      GLM_FUNC_QUALIFIER bool all (vecType< bool > const &v)
      template<template< typename > class vecType>
      GLM_FUNC_QUALIFIER bool any (vecType< bool > const &v)
      template<typename genType >
      genType asin (genType const &x)
      template<typename genType >
      genType asinh (genType const &x)
      template<typename genType >
      genType atan (genType const &y, genType const &x)
      template<typename genType >
      genType atan (genType const &y_over_x)
      template<typename genType >
      genType atanh (genType const &x)
      template<typename T , template< typename > class C>
      C< T >::signed_type bitCount (C< T > const &Value)
      template<typename genIUType >
      genIUType bitfieldExtract (genIUType const &Value, int const &Offset, int const &Bits)
      template<typename genIUType >
      genIUType bitfieldInsert (genIUType const &Base, genIUType const &Insert, int const &Offset, int const &Bits)
      template<typename genIUType >
      genIUType bitfieldReverse (genIUType const &value)
      template<typename genType >
      genType ceil (genType const &x)
      template<typename genType >
      genType clamp (genType const &x, genType const &minVal, genType const &maxVal)
      template<typename genType >
      genType cos (genType const &angle)
      template<typename genType >
      genType cosh (genType const &angle)
      template<typename T >
      detail::tvec3< T > cross (detail::tvec3< T > const &x, detail::tvec3< T > const &y)
      template<typename genType >
      genType degrees (genType const &radians)
      template<typename T >
      detail::tmat2x2< T >::value_type determinant (detail::tmat2x2< T > const &m)
      template<typename T >
      detail::tmat3x3< T >::value_type determinant (detail::tmat3x3< T > const &m)
      template<typename T >
      detail::tmat4x4< T >::value_type determinant (detail::tmat4x4< T > const &m)
      template<typename genType >
      genType::value_type distance (genType const &p0, genType const &p1)
      template<typename genType >
      genType::value_type dot (genType const &x, genType const &y)
      template<typename T , template< typename > class vecType>
      GLM_FUNC_QUALIFIER vecType< T >
      +::bool_type 
      equal (vecType< T > const &x, vecType< T > const &y)
      template<typename genType >
      genType exp (genType const &x)
      template<typename genType >
      genType exp2 (genType const &x)
      template<typename genType >
      genType faceforward (genType const &N, genType const &I, genType const &Nref)
      template<typename T , template< typename > class C>
      C< T >::signed_type findLSB (C< T > const &Value)
      template<typename T , template< typename > class C>
      C< T >::signed_type findMSB (C< T > const &Value)
      template<typename genType , typename genIType >
      genIType floatBitsToInt (genType const &value)
      template<typename genType , typename genUType >
      genUType floatBitsToUint (genType const &value)
      template<typename genType >
      genType floor (genType const &x)
      template<typename genType >
      genType fma (genType const &a, genType const &b, genType const &c)
      template<typename genType >
      genType fract (genType const &x)
      template<typename genType , typename genIType >
      genType frexp (genType const &x, genIType &exp)
      template<typename T , template< typename > class vecType>
      GLM_FUNC_QUALIFIER vecType< T >
      +::bool_type 
      greaterThan (vecType< T > const &x, vecType< T > const &y)
      template<typename T , template< typename > class vecType>
      GLM_FUNC_QUALIFIER vecType< T >
      +::bool_type 
      greaterThanEqual (vecType< T > const &x, vecType< T > const &y)
      template<typename genIType >
      void imulExtended (genIType const &x, genIType const &y, genIType &msb, genIType &lsb)
      template<typename genType , typename genIType >
      genType intBitsToFloat (genIType const &value)
      template<typename T >
      detail::tmat3x3< T > inverse (detail::tmat3x3< T > const &m)
      template<typename T >
      detail::tmat4x4< T > inverse (detail::tmat4x4< T > const &m)
      template<typename T >
      detail::tmat2x2< T > inverse (detail::tmat2x2< T > const &m)
      template<typename genType >
      genType inversesqrt (genType const &x)
      template<typename genType >
      genType::bool_type isinf (genType const &x)
      template<typename genType >
      genType::bool_type isnan (genType const &x)
      template<typename genType , typename genIType >
      genType ldexp (genType const &x, genIType const &exp)
      template<typename genType >
      genType::value_type length (genType const &x)
      template<typename T , template< typename > class vecType>
      GLM_FUNC_QUALIFIER vecType< T >
      +::bool_type 
      lessThan (vecType< T > const &x, vecType< T > const &y)
      template<typename T , template< typename > class vecType>
      GLM_FUNC_QUALIFIER vecType< T >
      +::bool_type 
      lessThanEqual (vecType< T > const &x, vecType< T > const &y)
      template<typename genType >
      genType log (genType const &x)
      template<typename genType >
      genType log2 (genType const &x)
      template<typename matType >
      matType matrixCompMult (matType const &x, matType const &y)
      template<typename genType >
      genType max (genType const &x, genType const &y)
      template<typename genType >
      genType min (genType const &x, genType const &y)
      template<typename genTypeT , typename genTypeU >
      genTypeT mix (genTypeT const &x, genTypeT const &y, genTypeU const &a)
      template<typename genType >
      genType mod (genType const &x, genType const &y)
      template<typename genType >
      genType mod (genType const &x, typename genType::value_type const &y)
      template<typename genType >
      genType modf (genType const &x, genType &i)
      template<typename genType >
      genType::value_type noise1 (genType const &x)
      template<typename genType >
      detail::tvec2< typename
      +genType::value_type > 
      noise2 (genType const &x)
      template<typename genType >
      detail::tvec3< typename
      +genType::value_type > 
      noise3 (genType const &x)
      template<typename genType >
      detail::tvec4< typename
      +genType::value_type > 
      noise4 (genType const &x)
      template<typename genType >
      genType normalize (genType const &x)
      template<template< typename > class vecType>
      GLM_FUNC_QUALIFIER vecType< bool > not_ (vecType< bool > const &v)
      template<typename T , template< typename > class vecType>
      GLM_FUNC_QUALIFIER vecType< T >
      +::bool_type 
      notEqual (vecType< T > const &x, vecType< T > const &y)
      template<typename vecType , typename matType >
      matType outerProduct (vecType const &c, vecType const &r)
      double packDouble2x32 (detail::tvec2< detail::uint32 > const &v)
      detail::uint32 packSnorm4x8 (detail::tvec4< detail::float32 > const &v)
      detail::uint32 packUnorm2x16 (detail::tvec2< detail::float32 > const &v)
      detail::uint32 packUnorm4x8 (detail::tvec4< detail::float32 > const &v)
      template<typename genType >
      genType pow (genType const &x, genType const &y)
      template<typename genType >
      genType radians (genType const &degrees)
      template<typename genType >
      genType reflect (genType const &I, genType const &N)
      template<typename genType >
      genType refract (genType const &I, genType const &N, typename genType::value_type const &eta)
      template<typename genType >
      genType round (genType const &x)
      template<typename genType >
      genType roundEven (genType const &x)
      template<typename genFIType >
      genFIType sign (genFIType const &x)
      template<typename genType >
      genType sin (genType const &angle)
      template<typename genType >
      genType sinh (genType const &angle)
      template<typename genType >
      genType smoothstep (genType const &edge0, genType const &edge1, genType const &x)
      template<typename genType >
      genType sqrt (genType const &x)
      template<typename genType >
      genType step (genType const &edge, genType const &x)
      template<typename genType >
      genType tan (genType const &angle)
      template<typename genType >
      genType tanh (genType const &angle)
      template<typename matType >
      matType::transpose_type transpose (matType const &x)
      template<typename genType >
      genType trunc (genType const &x)
      template<typename genUType >
      genUType uaddCarry (genUType const &x, genUType const &y, genUType &carry)
      template<typename genType , typename genUType >
      genType uintBitsToFloat (genUType const &value)
      template<typename genUType >
      void umulExtended (genUType const &x, genUType const &y, genUType &msb, genUType &lsb)
      detail::tvec2< detail::uint32 > unpackDouble2x32 (double const &v)
      detail::tvec4< detail::float32 > unpackSnorm4x8 (detail::uint32 const &p)
      detail::tvec2< detail::float32 > unpackUnorm2x16 (detail::uint32 const &p)
      detail::tvec4< detail::float32 > unpackUnorm4x8 (detail::uint32 const &p)
      template<typename genUType >
      genUType usubBorrow (genUType const &x, genUType const &y, genUType &borrow)
      +

      Detailed Description

      +

      The functions defined by the specification.

      +

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

      +

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

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

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER bool glm::core::function::vector_relational::all (vecType< bool > const & v)
      +
      +
      + +

      Returns true if all components of x are true.

      + + +

      Definition at line 176 of file func_vector_relational.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER bool glm::core::function::vector_relational::any (vecType< bool > const & v)
      +
      +
      + +

      Returns true if any component of x is true.

      + + +

      Definition at line 160 of file func_vector_relational.hpp.

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

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

      Arc hyperbolic sine; returns the inverse of sinh.

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

      + + +

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

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

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

      Arc hyperbolic tangent; returns the inverse of tanh.

      +

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      C<T>::signed_type glm::core::function::integer::bitCount (C< T > const & Value)
      +
      +
      + +

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

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      genIUType glm::core::function::integer::bitfieldExtract (genIUType const & Value,
      int const & Offset,
      int const & Bits 
      )
      +
      +
      + +

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

      +

      For unsigned data types, the most significant bits of the result will be set to zero. For signed data types, the most significant bits will be set to the value of bit offset + base – 1.

      +

      If bits is zero, the result will be zero. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      genIUType glm::core::function::integer::bitfieldInsert (genIUType const & Base,
      genIUType const & Insert,
      int const & Offset,
      int const & Bits 
      )
      +
      +
      + +

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

      +

      The result will have bits [offset, offset + bits - 1] taken from bits [0, bits – 1] of insert, and all other bits taken directly from the corresponding bits of base. If bits is zero, the result will simply be base. The result will be undefined if offset or bits is negative, or if the sum of offset and bits is greater than the number of bits used to store the operand.

      + + +
      +
      + +
      +
      + + + + + + + + +
      genIUType glm::core::function::integer::bitfieldReverse (genIUType const & value)
      +
      +
      + +

      Returns the reversal of the bits of value.

      +

      The bit numbered n of the result will be taken from bit (bits - 1) - n of value, where bits is the total number of bits used to represent value.

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

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      genType glm::core::function::common::clamp (genType const & x,
      genType const & minVal,
      genType const & maxVal 
      )
      +
      +
      + +

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

      +

      using the floating-point values minVal and maxVal.

      + + +

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

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      genType glm::core::function::trigonometric::cosh (genType const & angle)
      +
      +
      + +

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

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

      Returns the cross product of x and y.

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

      Converts radians to degrees and returns the result.

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tmat2x2<T>::value_type glm::core::function::matrix::determinant (detail::tmat2x2< T > const & m)
      +
      +
      + +

      Return the determinant of a mat2 matrix.

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tmat3x3<T>::value_type glm::core::function::matrix::determinant (detail::tmat3x3< T > const & m)
      +
      +
      + +

      Return the determinant of a mat3 matrix.

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tmat4x4<T>::value_type glm::core::function::matrix::determinant (detail::tmat4x4< T > const & m)
      +
      +
      + +

      Return the determinant of a mat4 matrix.

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

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

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      GLM_FUNC_QUALIFIER vecType<T>::bool_type glm::core::function::vector_relational::equal (vecType< T > const & x,
      vecType< T > const & y 
      )
      +
      +
      + +

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

      + + +

      Definition at line 121 of file func_vector_relational.hpp.

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

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

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

      Returns 2 raised to the x power.

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      C<T>::signed_type glm::core::function::integer::findLSB (C< T > const & Value)
      +
      +
      + +

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

      +

      If value is zero, -1 will be returned.

      + + +
      +
      + +
      +
      + + + + + + + + +
      C<T>::signed_type glm::core::function::integer::findMSB (C< T > const & Value)
      +
      +
      + +

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

      +

      For positive integers, the result will be the bit number of the most significant bit set to 1. For negative integers, the result will be the bit number of the most significant bit set to 0. For a value of zero or negative one, -1 will be returned.

      + + +
      +
      + +
      +
      + + + + + + + + +
      genIType glm::core::function::common::floatBitsToInt (genType const & value)
      +
      +
      + +

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

      +

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      genUType glm::core::function::common::floatBitsToUint (genType const & value)
      +
      +
      + +

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

      +

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

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

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      genType glm::core::function::common::fma (genType const & a,
      genType const & b,
      genType const & c 
      )
      +
      +
      + +

      Computes and returns a * b + c.

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

      Return x - floor(x).

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType glm::core::function::common::frexp (genType const & x,
      genIType & exp 
      )
      +
      +
      + +

      Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent)

      +

      The significand is returned by the function and the exponent is returned in the parameter exp. For a floating-point value of zero, the significant and exponent are both zero. For a floating-point value that is an infinity or is not a number, the results are undefined.

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      GLM_FUNC_QUALIFIER vecType<T>::bool_type glm::core::function::vector_relational::greaterThan (vecType< T > const & x,
      vecType< T > const & y 
      )
      +
      +
      + +

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

      + + +

      Definition at line 77 of file func_vector_relational.hpp.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      GLM_FUNC_QUALIFIER vecType<T>::bool_type glm::core::function::vector_relational::greaterThanEqual (vecType< T > const & x,
      vecType< T > const & y 
      )
      +
      +
      + +

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

      + + +

      Definition at line 99 of file func_vector_relational.hpp.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      void glm::core::function::integer::imulExtended (genIType const & x,
      genIType const & y,
      genIType & msb,
      genIType & lsb 
      )
      +
      +
      + +

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

      +

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      genType glm::core::function::common::intBitsToFloat (genIType const & value)
      +
      +
      + +

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

      +

      If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tmat3x3<T> glm::core::function::matrix::inverse (detail::tmat3x3< T > const & m)
      +
      +
      + +

      Return the inverse of a mat3 matrix.

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tmat4x4<T> glm::core::function::matrix::inverse (detail::tmat4x4< T > const & m)
      +
      +
      + +

      Return the inverse of a mat4 matrix.

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tmat2x2<T> glm::core::function::matrix::inverse (detail::tmat2x2< T > const & m)
      +
      +
      + +

      Return the inverse of a mat2 matrix.

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

      Returns the reciprocal of the positive square root of x.

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

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

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType glm::core::function::common::ldexp (genType const & x,
      genIType const & exp 
      )
      +
      +
      + +

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

      +

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

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

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

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      GLM_FUNC_QUALIFIER vecType<T>::bool_type glm::core::function::vector_relational::lessThan (vecType< T > const & x,
      vecType< T > const & y 
      )
      +
      +
      + +

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

      + + +

      Definition at line 32 of file func_vector_relational.hpp.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      GLM_FUNC_QUALIFIER vecType<T>::bool_type glm::core::function::vector_relational::lessThanEqual (vecType< T > const & x,
      vecType< T > const & y 
      )
      +
      +
      + +

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

      + + +

      Definition at line 55 of file func_vector_relational.hpp.

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

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

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

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType glm::core::function::common::max (genType const & x,
      genType const & y 
      )
      +
      +
      + +

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

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType glm::core::function::common::min (genType const & x,
      genType const & y 
      )
      +
      +
      + +

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

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      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. +
      +
      Parameters:
      + + + + +
      [in]xFloating point scalar or vector.
      [in]yFloating point scalar or vector.
      [in]aFloating point or boolean scalar or vector.
      +
      +
      + +

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

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

      Modulus.

      +

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

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType glm::core::function::common::mod (genType const & x,
      typename genType::value_type const & y 
      )
      +
      +
      + +

      Modulus.

      +

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

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      genType::value_type glm::core::function::noise::noise1 (genType const & x)
      +
      +
      + +

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tvec2<typename genType::value_type> glm::core::function::noise::noise2 (genType const & x)
      +
      +
      + +

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tvec3<typename genType::value_type> glm::core::function::noise::noise3 (genType const & x)
      +
      +
      + +

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tvec4<typename genType::value_type> glm::core::function::noise::noise4 (genType const & x)
      +
      +
      + +

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

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

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER vecType<bool> glm::core::function::vector_relational::not_ (vecType< bool > const & v)
      +
      +
      + +

      Returns the component-wise logical complement of x.

      +

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

      + + +

      Definition at line 193 of file func_vector_relational.hpp.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      GLM_FUNC_QUALIFIER vecType<T>::bool_type glm::core::function::vector_relational::notEqual (vecType< T > const & x,
      vecType< T > const & y 
      )
      +
      +
      + +

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

      + + +

      Definition at line 141 of file func_vector_relational.hpp.

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

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

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

      +

      If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit- level representation of v is preserved. The first vector component specifies the 32 least significant bits; the second component specifies the 32 most significant bits.

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::uint32 glm::core::function::packing::packSnorm4x8 (detail::tvec4< detail::float32 > const & v)
      +
      +
      + +

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

      +

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

      +

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

      +

      The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::uint32 glm::core::function::packing::packUnorm2x16 (detail::tvec2< detail::float32 > const & v)
      +
      +
      + +

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

      +

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

      +

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

      +

      The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::uint32 glm::core::function::packing::packUnorm4x8 (detail::tvec4< detail::float32 > const & v)
      +
      +
      + +

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

      +

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

      +

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

      +

      The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

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

      Returns x raised to the y power.

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

      Converts degrees to radians and returns the result.

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

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

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

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

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

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      genType glm::core::function::trigonometric::sinh (genType const & angle)
      +
      +
      + +

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

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      genType glm::core::function::common::smoothstep (genType const & edge0,
      genType const & edge1,
      genType const & x 
      )
      +
      +
      + +

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

      +

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

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

      Returns the positive square root of x.

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType glm::core::function::common::step (genType const & edge,
      genType const & x 
      )
      +
      +
      + +

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

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

      The standard trigonometric tangent function.

      + + +
      +
      + +
      +
      + + + + + + + + +
      genType glm::core::function::trigonometric::tanh (genType const & angle)
      +
      +
      + +

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      matType::transpose_type glm::core::function::matrix::transpose (matType const & x)
      +
      +
      + +

      Returns the transposed matrix of x.

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

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      genUType glm::core::function::integer::uaddCarry (genUType const & x,
      genUType const & y,
      genUType & carry 
      )
      +
      +
      + +

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

      +

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      genType glm::core::function::common::uintBitsToFloat (genUType const & value)
      +
      +
      + +

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

      +

      If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved.

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      void glm::core::function::integer::umulExtended (genUType const & x,
      genUType const & y,
      genUType & msb,
      genUType & lsb 
      )
      +
      +
      + +

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

      +

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

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tvec2<detail::uint32> glm::core::function::packing::unpackDouble2x32 (double const & v)
      +
      +
      + +

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

      +

      The bit-level representation of v is preserved. The first component of the vector contains the 32 least significant bits of the double; the second component consists the 32 most significant bits.

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tvec4<detail::float32> glm::core::function::packing::unpackSnorm4x8 (detail::uint32 const & p)
      +
      +
      + +

      First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

      +

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

      +

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

      +

      The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tvec2<detail::float32> glm::core::function::packing::unpackUnorm2x16 (detail::uint32 const & p)
      +
      +
      + +

      First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

      +

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

      +

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

      +

      The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

      + + +
      +
      + +
      +
      + + + + + + + + +
      detail::tvec4<detail::float32> glm::core::function::packing::unpackUnorm4x8 (detail::uint32 const & p)
      +
      +
      + +

      First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers.

      +

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

      +

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

      +

      The first component of the returned vector will be extracted from the least significant bits of the input; the last component will be extracted from the most significant bits.

      + + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      genUType glm::core::function::integer::usubBorrow (genUType const & x,
      genUType const & y,
      genUType & borrow 
      )
      +
      +
      + +

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

      +

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

      + + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00239.html b/doc/api-0.9.2/a00239.html new file mode 100644 index 00000000..84caec1b --- /dev/null +++ b/doc/api-0.9.2/a00239.html @@ -0,0 +1,62 @@ + + + + +GTC Extensions (Stable) + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GTC Extensions (Stable)
      +
      +
      + +

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

      + + + + + + + + + + +

      +Modules

       GLM_GTC_half_float: Half-precision floating-point based types and functions.
       GLM_GTC_matrix_access: Access matrix rows and columns.
       GLM_GTC_matrix_integer: Integer matrix types.
       GLM_GTC_matrix_inverse: Additional matrix inverse function
       GLM_GTC_matrix_transform: Matrix transform functions.
       GLM_GTC_quaternion: Quaternion types and functions
       GLM_GTC_type_precision: Vector and matrix types with defined precisions.
       GLM_GTC_type_ptr: Memory layout access.
      +

      Detailed Description

      +

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

      +

      GTC extensions aim to be stable.

      +

      Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.

      +
      + + + diff --git a/doc/api-0.9.2/a00240.html b/doc/api-0.9.2/a00240.html new file mode 100644 index 00000000..ef9498ae --- /dev/null +++ b/doc/api-0.9.2/a00240.html @@ -0,0 +1,374 @@ + + + + +GLM_GTC_half_float: Half-precision floating-point based types and functions. + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTC_half_float: Half-precision floating-point based types and functions.
      +
      +
      + + + + + + + + + + + + + + + + + + + + + +

      +Classes

      class  thalf
       16-bit floating point type. More...

      +Typedefs

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

      Detailed Description

      +

      Defines the half-precision floating-point type, along with various typedefs for vectors and matrices. <glm/gtc/half_float.hpp> need to be included to use these functionalities.

      +

      Typedef Documentation

      + +
      +
      + + + + +
      typedef detail::thalf half
      +
      +
      + +

      Type for half-precision floating-point numbers.

      +

      From GLM_GTC_half_float extension.

      + +

      Definition at line 332 of file 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 348 of file half_float.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat2x2<detail::thalf> hmat2x2
      +
      +
      + +

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

      +

      From GLM_GTC_half_float extension.

      + +

      Definition at line 360 of file half_float.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat2x3<detail::thalf> hmat2x3
      +
      +
      + +

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

      +

      From GLM_GTC_half_float extension.

      + +

      Definition at line 364 of file half_float.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat2x4<detail::thalf> hmat2x4
      +
      +
      + +

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

      +

      From GLM_GTC_half_float extension.

      + +

      Definition at line 368 of file 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 352 of file half_float.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat3x2<detail::thalf> hmat3x2
      +
      +
      + +

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

      +

      From GLM_GTC_half_float extension.

      + +

      Definition at line 372 of file half_float.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat3x3<detail::thalf> hmat3x3
      +
      +
      + +

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

      +

      From GLM_GTC_half_float extension.

      + +

      Definition at line 376 of file half_float.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat3x4<detail::thalf> hmat3x4
      +
      +
      + +

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

      +

      From GLM_GTC_half_float extension.

      + +

      Definition at line 380 of file 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 356 of file half_float.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat4x2<detail::thalf> hmat4x2
      +
      +
      + +

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

      +

      From GLM_GTC_half_float extension.

      + +

      Definition at line 384 of file half_float.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat4x3<detail::thalf> hmat4x3
      +
      +
      + +

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

      +

      From GLM_GTC_half_float extension.

      + +

      Definition at line 388 of file half_float.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tmat4x4<detail::thalf> hmat4x4
      +
      +
      + +

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

      +

      From GLM_GTC_half_float extension.

      + +

      Definition at line 392 of file 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 336 of file 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 340 of file 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 344 of file half_float.hpp.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00241.html b/doc/api-0.9.2/a00241.html new file mode 100644 index 00000000..f6657e22 --- /dev/null +++ b/doc/api-0.9.2/a00241.html @@ -0,0 +1,190 @@ + + + + +GLM_GTC_matrix_access: Access matrix rows and columns. + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTC_matrix_access: Access matrix rows and columns.
      +
      +
      + + + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      Defines functions to access rows or columns of a matrix easily. <glm/gtc/matrix_access.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType::col_type glm::gtc::matrix_access::column (genType const & m,
      int index 
      )
      +
      +
      + +

      Get a specific column of a matrix.

      +

      From GLM_GTC_matrix_access extension.

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

      Set a specific column to a matrix.

      +

      From GLM_GTC_matrix_access extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType::row_type glm::gtc::matrix_access::row (genType const & m,
      int index 
      )
      +
      +
      + +

      Get a specific row of a matrix.

      +

      From GLM_GTC_matrix_access extension.

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

      Set a specific row to a matrix.

      +

      From GLM_GTC_matrix_access extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00242.html b/doc/api-0.9.2/a00242.html new file mode 100644 index 00000000..e57b96a7 --- /dev/null +++ b/doc/api-0.9.2/a00242.html @@ -0,0 +1,301 @@ + + + + +GLM_GTC_matrix_integer: Integer matrix types. + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTC_matrix_integer: Integer matrix types.
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +Typedefs

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

      Detailed Description

      +

      Defines a number of matrices with integer types. <glm/gtc/matrix_integer.hpp> need to be included to use these functionalities.

      +
      + + + diff --git a/doc/api-0.9.2/a00243.html b/doc/api-0.9.2/a00243.html new file mode 100644 index 00000000..7c130c09 --- /dev/null +++ b/doc/api-0.9.2/a00243.html @@ -0,0 +1,95 @@ + + + + +GLM_GTC_matrix_inverse: Additional matrix inverse function + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTC_matrix_inverse: Additional matrix inverse function
      +
      +
      + + + + + + +

      +Functions

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

      Detailed Description

      +

      Defines additional matrix inverting functions. <glm/gtc/matrix_inverse.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      genType glm::gtc::matrix_inverse::affineInverse (genType const & m)
      +
      +
      + +

      Fast matrix inverse for affine matrix.

      +

      From GLM_GTC_matrix_inverse extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER genType::value_type glm::gtc::matrix_inverse::inverseTranspose (genType const & m)
      +
      +
      + +

      Compute the inverse transpose of a matrix.

      +

      From GLM_GTC_matrix_inverse extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00244.html b/doc/api-0.9.2/a00244.html new file mode 100644 index 00000000..fc1f0f88 --- /dev/null +++ b/doc/api-0.9.2/a00244.html @@ -0,0 +1,645 @@ + + + + +GLM_GTC_matrix_transform: Matrix transform functions. + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTC_matrix_transform: Matrix transform functions.
      +
      +
      + +

      Defines functions that generate common transformation matrices. +More...

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

      +Functions

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

      Detailed Description

      +

      Defines functions that generate common transformation matrices.

      +

      The matrices generated by this extension use standard OpenGL fixed-function conventions. For example, the lookAt function generates a transform from world space into the specific eye space that the projective matrix functions ( perspective, ortho, etc) are designed to expect. The OpenGL compatibility specifications defines the particular layout of this eye space.

      +

      <glm/gtc/matrix_transform.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::gtc::matrix_transform::frustum (T const & left,
      T const & right,
      T const & bottom,
      T const & top,
      T const & nearVal,
      T const & farVal 
      )
      +
      +
      + +

      Creates a frustum matrix.

      +

      From GLM_GTC_matrix_transform extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::gtc::matrix_transform::infinitePerspective (fovy,
      aspect,
      zNear 
      )
      +
      +
      + +

      Creates a matrix for a symmetric perspective-view frustum with far plane at infinite .

      +

      From GLM_GTC_matrix_transform extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::gtc::matrix_transform::lookAt (detail::tvec3< T > const & eye,
      detail::tvec3< T > const & center,
      detail::tvec3< T > const & up 
      )
      +
      +
      + +

      Build a look at view matrix.

      +

      From GLM_GTC_matrix_transform extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::gtc::matrix_transform::ortho (T const & left,
      T const & right,
      T const & bottom,
      T const & top 
      )
      +
      +
      + +

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

      +

      From GLM_GTC_matrix_transform extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::gtc::matrix_transform::ortho (T const & left,
      T const & right,
      T const & bottom,
      T const & top,
      T const & zNear,
      T const & zFar 
      )
      +
      +
      + +

      Creates a matrix for an orthographic parallel viewing volume.

      +

      From GLM_GTC_matrix_transform extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::gtc::matrix_transform::perspective (T const & fovy,
      T const & aspect,
      T const & zNear,
      T const & zFar 
      )
      +
      +
      + +

      Creates a matrix for a symetric perspective-view frustum.

      +

      From GLM_GTC_matrix_transform extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<valType> glm::gtc::matrix_transform::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_GTC_matrix_transform extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::gtc::matrix_transform::pickMatrix (detail::tvec2< T > const & center,
      detail::tvec2< T > const & delta,
      detail::tvec4< U > const & viewport 
      )
      +
      +
      + +

      Define a picking region From GLM_GTC_matrix_transform extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tvec3<T> glm::gtc::matrix_transform::project (detail::tvec3< T > const & obj,
      detail::tmat4x4< T > const & model,
      detail::tmat4x4< T > const & proj,
      detail::tvec4< U > const & viewport 
      )
      +
      +
      + +

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

      +

      From GLM_GTC_matrix_transform extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::gtc::matrix_transform::rotate (detail::tmat4x4< T > const & m,
      T const & angle,
      detail::tvec3< T > 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<T> glm::gtc::matrix_transform::scale (detail::tmat4x4< T > const & m,
      detail::tvec3< T > const & v 
      )
      +
      +
      + +

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

      +

      From GLM_GTC_matrix_transform extension.

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

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

      +

      From GLM_GTC_matrix_transform extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::gtc::matrix_transform::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_GTC_matrix_transform extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tvec3<T> glm::gtc::matrix_transform::unProject (detail::tvec3< T > const & win,
      detail::tmat4x4< T > const & model,
      detail::tmat4x4< T > const & proj,
      detail::tvec4< U > const & viewport 
      )
      +
      +
      + +

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

      +

      From GLM_GTC_matrix_transform extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00245.html b/doc/api-0.9.2/a00245.html new file mode 100644 index 00000000..3b1e4b83 --- /dev/null +++ b/doc/api-0.9.2/a00245.html @@ -0,0 +1,521 @@ + + + + +GLM_GTC_quaternion: Quaternion types and functions + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTC_quaternion: Quaternion types and functions
      +
      +
      + +

      Defines a templated quaternion type and several quaternion operations. +More...

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

      +Classes

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

      +Typedefs

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

      +Functions

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

      Detailed Description

      +

      Defines a templated quaternion type and several quaternion operations.

      +

      <glm/gtc/quaternion.hpp> need to be included to use these functionalities.

      +

      Typedef Documentation

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

      Quaternion of double-precision floating-point numbers.

      +

      From GLM_GTC_quaternion extension.

      + +

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

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

      Quaternion of single-precision floating-point numbers.

      +

      From GLM_GTC_quaternion extension.

      + +

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

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tquat<highp_float> highp_quat
      +
      +
      + +

      Quaternion of high precision floating-point numbers.

      +

      From GLM_GTC_quaternion extension.

      + +

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

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

      Quaternion of half-precision floating-point numbers.

      +

      From GLM_GTC_quaternion extension.

      + +

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

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tquat<lowp_float> lowp_quat
      +
      +
      + +

      Quaternion of low precision floating-point numbers.

      +

      From GLM_GTC_quaternion extension.

      + +

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

      + +
      +
      + +
      +
      + + + + +
      typedef detail::tquat<mediump_float> mediump_quat
      +
      +
      + +

      Quaternion of medium precision floating-point numbers.

      +

      From GLM_GTC_quaternion extension.

      + +

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

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

      Quaternion of floating-point numbers.

      +

      From GLM_GTC_quaternion extension.

      + +

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

      + +
      +
      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      detail::tquat<T> glm::gtc::quaternion::conjugate (detail::tquat< T > const & q)
      +
      +
      + +

      Returns the q conjugate.

      +

      From GLM_GTC_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      GLM_DEPRECATED detail::tquat<T> glm::gtc::quaternion::cross (detail::tquat< T > const & q1,
      detail::tquat< T > const & q2 
      )
      +
      +
      + +

      Returns the cross product of q1 and q2.

      +

      From GLM_GTC_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tquat<T>::value_type glm::gtc::quaternion::dot (detail::tquat< T > const & q1,
      detail::tquat< T > const & q2 
      )
      +
      +
      + +

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

      +

      From GLM_GTC_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::tquat<T> glm::gtc::quaternion::inverse (detail::tquat< T > const & q)
      +
      +
      + +

      Returns the q inverse.

      +

      From GLM_GTC_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::tquat<T>::value_type glm::gtc::quaternion::length (detail::tquat< T > const & q)
      +
      +
      + +

      Returns the length of the quaternion.

      +

      From GLM_GTC_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::tmat3x3<T> glm::gtc::quaternion::mat3_cast (detail::tquat< T > const & x)
      +
      +
      + +

      Converts a quaternion to a 3 * 3 matrix.

      +

      From GLM_GTC_quaternion extension.

      + +

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

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::tmat4x4<T> glm::gtc::quaternion::mat4_cast (detail::tquat< T > const & x)
      +
      +
      + +

      Converts a quaternion to a 4 * 4 matrix.

      +

      From GLM_GTC_quaternion extension.

      + +

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

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

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

      +

      From GLM_GTC_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::tquat<T> glm::gtc::quaternion::normalize (detail::tquat< T > const & q)
      +
      +
      + +

      Returns the normalized quaternion.

      +

      From GLM_GTC_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::tquat<T> glm::gtc::quaternion::quat_cast (detail::tmat4x4< T > const & x)
      +
      +
      + +

      Converts a 4 * 4 matrix to a quaternion.

      +

      From GLM_GTC_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::tquat<T> glm::gtc::quaternion::quat_cast (detail::tmat3x3< T > const & x)
      +
      +
      + +

      Converts a 3 * 3 matrix to a quaternion.

      +

      From GLM_GTC_quaternion extension.

      + +

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

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tquat<T> glm::gtc::quaternion::rotate (detail::tquat< T > const & q,
      typename detail::tquat< T >::value_type const & angle,
      detail::tvec3< T > const & v 
      )
      +
      +
      + +

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

      +

      From GLM_GTC_quaternion extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00246.html b/doc/api-0.9.2/a00246.html new file mode 100644 index 00000000..d9c750c6 --- /dev/null +++ b/doc/api-0.9.2/a00246.html @@ -0,0 +1,272 @@ + + + + +GLM_GTC_type_precision: Vector and matrix types with defined precisions. + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTC_type_precision: Vector and matrix types with defined precisions.
      +
      +
      + +

      Defines specific C++-based precision types. +More...

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

      +Typedefs

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

      Detailed Description

      +

      Defines specific C++-based precision types.

      +

      Precision types defines types based on GLSL's precision qualifiers. This extension defines types based on explicitly-sized C++ data types.

      +

      <glm/gtc/type_precision.hpp> need to be included to use these functionalities.

      +
      + + + diff --git a/doc/api-0.9.2/a00247.html b/doc/api-0.9.2/a00247.html new file mode 100644 index 00000000..61a18379 --- /dev/null +++ b/doc/api-0.9.2/a00247.html @@ -0,0 +1,1054 @@ + + + + +GLM_GTC_type_ptr: Memory layout access. + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTC_type_ptr: Memory layout access.
      +
      +
      + +

      Used to get a pointer to the memory layout of a basic type. +More...

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

      +Functions

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

      Detailed Description

      +

      Used to get a pointer to the memory layout of a basic type.

      +

      This extension defines an overloaded function, glm::value_ptr, which takes any of the core template types. It returns a pointer to the memory layout of the object. Matrix types store their values in column-major order.

      +

      This is useful for uploading data to matrices or copying data to buffer objects.

      +

      Example:

      +
      #include <glm/glm.hpp>
      +#include <glm/gtc/type_ptr.hpp>
      +
      +glm::vec3 aVector(3);
      +glm::mat4 someMatrix(1.0);
      +
      +glUniform3fv(uniformLoc, 1, glm::value_ptr(aVector));
      +glUniformMatrix4fv(uniformMatrixLoc, 1, GL_FALSE, glm::value_ptr(someMatrix));
      +

      <glm/gtc/type_ptr.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tmat2x2<T> glm::gtc::type_ptr::make_mat2 (T const *const ptr)
      +
      +
      + +

      Build a matrix from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 417 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::make_mat2x2().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tmat2x2<T> glm::gtc::type_ptr::make_mat2x2 (T const *const ptr)
      +
      +
      + +

      Build a matrix from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 326 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::value_ptr().

      + +

      Referenced by glm::gtc::type_ptr::make_mat2().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tmat2x3<T> glm::gtc::type_ptr::make_mat2x3 (T const *const ptr)
      +
      +
      + +

      Build a matrix from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 336 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::value_ptr().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tmat2x4<T> glm::gtc::type_ptr::make_mat2x4 (T const *const ptr)
      +
      +
      + +

      Build a matrix from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 346 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::value_ptr().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tmat3x3<T> glm::gtc::type_ptr::make_mat3 (T const *const ptr)
      +
      +
      + +

      Build a matrix from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 425 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::make_mat3x3().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tmat3x2<T> glm::gtc::type_ptr::make_mat3x2 (T const *const ptr)
      +
      +
      + +

      Build a matrix from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 356 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::value_ptr().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tmat3x3<T> glm::gtc::type_ptr::make_mat3x3 (T const *const ptr)
      +
      +
      + +

      Build a matrix from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 366 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::value_ptr().

      + +

      Referenced by glm::gtc::type_ptr::make_mat3().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tmat3x4<T> glm::gtc::type_ptr::make_mat3x4 (T const *const ptr)
      +
      +
      + +

      Build a matrix from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 376 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::value_ptr().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tmat4x4<T> glm::gtc::type_ptr::make_mat4 (T const *const ptr)
      +
      +
      + +

      Build a matrix from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 433 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::make_mat4x4().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tmat4x2<T> glm::gtc::type_ptr::make_mat4x2 (T const *const ptr)
      +
      +
      + +

      Build a matrix from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 387 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::value_ptr().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tmat4x3<T> glm::gtc::type_ptr::make_mat4x3 (T const *const ptr)
      +
      +
      + +

      Build a matrix from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 397 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::value_ptr().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tmat4x4<T> glm::gtc::type_ptr::make_mat4x4 (T const *const ptr)
      +
      +
      + +

      Build a matrix from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 407 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::value_ptr().

      + +

      Referenced by glm::gtc::type_ptr::make_mat4().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tvec2<T> glm::gtc::type_ptr::make_vec2 (T const *const ptr)
      +
      +
      + +

      Build a vector from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 296 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::value_ptr().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tvec3<T> glm::gtc::type_ptr::make_vec3 (T const *const ptr)
      +
      +
      + +

      Build a vector from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 306 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::value_ptr().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER detail::tvec4<T> glm::gtc::type_ptr::make_vec4 (T const *const ptr)
      +
      +
      + +

      Build a vector from a pointer.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 316 of file type_ptr.hpp.

      + +

      References glm::gtc::type_ptr::value_ptr().

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr (detail::tmat4x4< T > & mat)
      +
      +
      + +

      Get the address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 157 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr (detail::tmat4x3< T > & mat)
      +
      +
      + +

      Get the address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 288 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr (detail::tmat4x3< T > const & mat)
      +
      +
      + +

      Get the const address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 278 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr (detail::tmat3x4< T > & mat)
      +
      +
      + +

      Get the address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 267 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr (detail::tmat3x4< T > const & mat)
      +
      +
      + +

      Get the const address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 256 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr (detail::tmat4x2< T > & mat)
      +
      +
      + +

      Get the address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 245 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr (detail::tmat2x4< T > & mat)
      +
      +
      + +

      Get the address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 223 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr (detail::tmat2x4< T > const & mat)
      +
      +
      + +

      Get the const address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 212 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr (detail::tmat2x2< T > & mat)
      +
      +
      + +

      Get the address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 113 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr (detail::tvec3< T > & vec)
      +
      +
      + +

      Get the address of the vector content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 69 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr (detail::tmat3x3< T > const & mat)
      +
      +
      + +

      Get the const address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 124 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr (detail::tvec2< T > & vec)
      +
      +
      + +

      Get the address of the vector content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 47 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr (detail::tvec2< T > const & vec)
      +
      + +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr (detail::tvec4< T > & vec)
      +
      +
      + +

      Get the address of the vector content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 91 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr (detail::tmat4x4< T > const & mat)
      +
      +
      + +

      Get the const address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 146 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr (detail::tmat3x3< T > & mat)
      +
      +
      + +

      Get the address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 135 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr (detail::tmat4x2< T > const & mat)
      +
      +
      + +

      Get the const address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 234 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr (detail::tmat3x2< T > & mat)
      +
      +
      + +

      Get the address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 201 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T* glm::gtc::type_ptr::value_ptr (detail::tmat2x3< T > & mat)
      +
      +
      + +

      Get the address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 179 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr (detail::tvec3< T > const & vec)
      +
      +
      + +

      Get the const address of the vector content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 58 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr (detail::tvec4< T > const & vec)
      +
      +
      + +

      Get the const address of the vector content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 80 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr (detail::tmat3x2< T > const & mat)
      +
      +
      + +

      Get the const address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 190 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr (detail::tmat2x3< T > const & mat)
      +
      +
      + +

      Get the const address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 168 of file type_ptr.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_FUNC_QUALIFIER T const* glm::gtc::type_ptr::value_ptr (detail::tmat2x2< T > const & mat)
      +
      +
      + +

      Get the const address of the matrix content.

      +

      From GLM_GTC_type_ptr extension.

      + +

      Definition at line 102 of file type_ptr.hpp.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00248.html b/doc/api-0.9.2/a00248.html new file mode 100644 index 00000000..77af5c22 --- /dev/null +++ b/doc/api-0.9.2/a00248.html @@ -0,0 +1,108 @@ + + + + +GTX Extensions (Experimental) + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GTX Extensions (Experimental)
      +
      +
      + +

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

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

      +Modules

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

      Detailed Description

      +

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

      +

      Experimental extensions are useful functions and types, but the development of their API and functionality is not necessarily stable. They can change substantially between versions. Backwards compatibility is not much of an issue for them.

      +

      Even if it's highly unrecommended, it's possible to include all the extensions at once by including <glm/ext.hpp>. Otherwise, each extension needs to be included a specific file.

      +
      + + + diff --git a/doc/api-0.9.2/a00249.html b/doc/api-0.9.2/a00249.html new file mode 100644 index 00000000..4a89cd73 --- /dev/null +++ b/doc/api-0.9.2/a00249.html @@ -0,0 +1,70 @@ + + + + +GLM_GTX_associated_min_max: Associated Min/Max + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_associated_min_max: Associated Min/Max
      +
      +
      + +

      Min and max functions that return associated values not the compared onces. <glm/gtx/associated_min_max.hpp> need to be included to use these functionalities. +More...

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

      +Functions

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

      Detailed Description

      +

      Min and max functions that return associated values not the compared onces. <glm/gtx/associated_min_max.hpp> need to be included to use these functionalities.

      +
      + + + diff --git a/doc/api-0.9.2/a00250.html b/doc/api-0.9.2/a00250.html new file mode 100644 index 00000000..a573c62d --- /dev/null +++ b/doc/api-0.9.2/a00250.html @@ -0,0 +1,353 @@ + + + + +GLM_GTX_bit: Extended bitwise operations + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_bit: Extended bitwise operations
      +
      +
      + +

      Allow to perform bit operations on integer values. +More...

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

      +Functions

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

      Detailed Description

      +

      Allow to perform bit operations on integer values.

      +

      <glm/gtx/bit.hpp> need to be included to use these functionalities.

      +

      Function Documentation

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

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      genIUType glm::gtx::bit::extractField (genIUType const & v,
      sizeType const & first,
      sizeType const & count 
      )
      +
      +
      + +

      Component wise extraction of bit fields.

      +

      genType and genIType could be a scalar or a vector. 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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00251.html b/doc/api-0.9.2/a00251.html new file mode 100644 index 00000000..246f427d --- /dev/null +++ b/doc/api-0.9.2/a00251.html @@ -0,0 +1,92 @@ + + + + +GLM_GTX_closest_point: Find closest point + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_closest_point: Find closest point
      +
      +
      + +

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

      Detailed Description

      +

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

      +

      <glm/gtx/closest_point.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tvec3<T> glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00252.html b/doc/api-0.9.2/a00252.html new file mode 100644 index 00000000..9f669ea0 --- /dev/null +++ b/doc/api-0.9.2/a00252.html @@ -0,0 +1,227 @@ + + + + +GLM_GTX_color_cast: Color conversion + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_color_cast: Color conversion
      +
      +
      + +

      Conversion between two color types. +More...

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

      +Functions

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

      Detailed Description

      +

      Conversion between two color types.

      +

      <glm/gtx/color_cast.hpp> need to be included to use these functionalities.

      +

      Function Documentation

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

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00253.html b/doc/api-0.9.2/a00253.html new file mode 100644 index 00000000..c78b8a4f --- /dev/null +++ b/doc/api-0.9.2/a00253.html @@ -0,0 +1,206 @@ + + + + +GLM_GTX_color_space: RGB to HSV conversion + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_color_space: RGB to HSV conversion
      +
      +
      + +

      Related to RGB to HSV conversions and operations. +More...

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

      +Functions

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

      Detailed Description

      +

      Related to RGB to HSV conversions and operations.

      +

      <glm/gtx/color_space.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      detail::tvec3<valType> glm::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::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

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

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00254.html b/doc/api-0.9.2/a00254.html new file mode 100644 index 00000000..941a584a --- /dev/null +++ b/doc/api-0.9.2/a00254.html @@ -0,0 +1,142 @@ + + + + +GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_color_space_YCoCg: RGB to YCoCg conversion
      +
      +
      + +

      RGB to YCoCg conversions and operations. +More...

      + + + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      RGB to YCoCg conversions and operations.

      +

      <glm/gtx/color_space_YCoCg.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      detail::tvec3<valType> glm::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.
      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00255.html b/doc/api-0.9.2/a00255.html new file mode 100644 index 00000000..c26bd167 --- /dev/null +++ b/doc/api-0.9.2/a00255.html @@ -0,0 +1,301 @@ + + + + +GLM_GTX_compatibility: Cg and HLSL compatibility + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_compatibility: Cg and HLSL compatibility
      +
      +
      + +

      Provide functions to increase the compatibility with Cg and HLSL languages. +More...

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

      +Typedefs

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

      +Functions

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

      Detailed Description

      +

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

      +

      <glm/gtx/compatibility.hpp> need to be included to use these functionalities.

      +
      + + + diff --git a/doc/api-0.9.2/a00256.html b/doc/api-0.9.2/a00256.html new file mode 100644 index 00000000..696d1a9e --- /dev/null +++ b/doc/api-0.9.2/a00256.html @@ -0,0 +1,142 @@ + + + + +GLM_GTX_component_wise: Component wise + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_component_wise: Component wise
      +
      +
      + +

      Operations between components of a type. +More...

      + + + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      Operations between components of a type.

      +

      <glm/gtx/component_wise.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      genType::value_type glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00257.html b/doc/api-0.9.2/a00257.html new file mode 100644 index 00000000..ab43ff03 --- /dev/null +++ b/doc/api-0.9.2/a00257.html @@ -0,0 +1,130 @@ + + + + +GLM_GTX_epsilon: Epsilon comparison + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_epsilon: Epsilon comparison
      +
      +
      + +

      Comparison 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)
      template<typename genTypeT , typename genTypeU >
      bool notEqualEpsilon (genTypeT const &x, genTypeT const &y, genTypeU const &epsilon)
      +

      Detailed Description

      +

      Comparison functions for a user defined epsilon values.

      +

      <glm/gtx/epsilon.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00258.html b/doc/api-0.9.2/a00258.html new file mode 100644 index 00000000..957827ae --- /dev/null +++ b/doc/api-0.9.2/a00258.html @@ -0,0 +1,476 @@ + + + + +GLM_GTX_euler_angles: Matrix from euler angles + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_euler_angles: Matrix from euler angles
      +
      +
      + +

      Build matrices from Euler angles. +More...

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

      +Functions

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

      Detailed Description

      +

      Build matrices from Euler angles.

      +

      <glm/gtx/euler_angles.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      detail::tmat4x4<valType> glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00259.html b/doc/api-0.9.2/a00259.html new file mode 100644 index 00000000..15d1e817 --- /dev/null +++ b/doc/api-0.9.2/a00259.html @@ -0,0 +1,92 @@ + + + + +GLM_GTX_extend: Position extending + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_extend: Position extending
      +
      +
      + +

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

      Detailed Description

      +

      Extend a position from a source to a position at a defined length.

      +

      <glm/gtx/extend.hpp> need to be included to use these functionalities.

      +

      Function Documentation

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

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00260.html b/doc/api-0.9.2/a00260.html new file mode 100644 index 00000000..20500370 --- /dev/null +++ b/doc/api-0.9.2/a00260.html @@ -0,0 +1,49 @@ + + + + +GLM_GTX_extented_min_max: Extended min max + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      +
      +
      GLM_GTX_extented_min_max: Extended min max
      +
      +
      + +

      Min and max functions for 3 to 4 parameters. +More...

      + +
      +

      Detailed Description

      +

      Min and max functions for 3 to 4 parameters.

      +

      <glm/gtx/extented_min_max.hpp> need to be included to use these functionalities.

      +
      + + + diff --git a/doc/api-0.9.2/a00261.html b/doc/api-0.9.2/a00261.html new file mode 100644 index 00000000..bbc105fa --- /dev/null +++ b/doc/api-0.9.2/a00261.html @@ -0,0 +1,228 @@ + + + + +GLM_GTX_fast_exponential: Fast exponentiation functions + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_fast_exponential: Fast exponentiation functions
      +
      +
      + +

      Fast but less accurate implementations of exponential based functions. +More...

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

      +Functions

      template<typename T >
      fastExp (const T &x)
      template<typename T >
      fastExp2 (const T &x)
      template<typename T >
      fastLn (const T &x)
      template<typename T >
      fastLog (const T &x)
      template<typename T >
      fastLog2 (const T &x)
      template<typename valType >
      valType fastPow (valType const &x, valType const &y)
      template<typename T , typename U >
      fastPow (const T &x, const U &y)
      +

      Detailed Description

      +

      Fast but less accurate implementations of exponential based functions.

      +

      <glm/gtx/fast_exponential.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      T glm::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.

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

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

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00262.html b/doc/api-0.9.2/a00262.html new file mode 100644 index 00000000..868c37f5 --- /dev/null +++ b/doc/api-0.9.2/a00262.html @@ -0,0 +1,174 @@ + + + + +GLM_GTX_fast_square_root: Fast square root functions + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_fast_square_root: Fast square root functions
      +
      +
      + +

      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)
      template<typename genType >
      genType fastInverseSqrt (genType const &x)
      template<typename genType >
      genType::value_type fastLength (genType const &x)
      template<typename genType >
      genType fastNormalize (genType const &x)
      template<typename genType >
      genType fastSqrt (genType const &x)
      +

      Detailed Description

      +

      Fast but less accurate implementations of square root based functions.

      +

      <glm/gtx/fast_square_root.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType::value_type glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00263.html b/doc/api-0.9.2/a00263.html new file mode 100644 index 00000000..3dc2c7a1 --- /dev/null +++ b/doc/api-0.9.2/a00263.html @@ -0,0 +1,218 @@ + + + + +GLM_GTX_fast_trigonometry: Fast trigonometric functions + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_fast_trigonometry: Fast trigonometric functions
      +
      +
      + +

      Fast but less accurate implementations of trigonometric functions. +More...

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

      +Functions

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

      Detailed Description

      +

      Fast but less accurate implementations of trigonometric functions.

      +

      <glm/gtx/fast_trigonometry.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      T glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00264.html b/doc/api-0.9.2/a00264.html new file mode 100644 index 00000000..4142fee3 --- /dev/null +++ b/doc/api-0.9.2/a00264.html @@ -0,0 +1,130 @@ + + + + +GLM_GTX_handed_coordinate_space: Space Handedness + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_handed_coordinate_space: Space Handedness
      +
      +
      + +

      To know if a set of three basis vectors defines a right or left-handed coordinate system. +More...

      + + + + + + +

      +Functions

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

      Detailed Description

      +

      To know if a set of three basis vectors defines a right or left-handed coordinate system.

      +

      <glm/gtx/handed_coordinate_system.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00265.html b/doc/api-0.9.2/a00265.html new file mode 100644 index 00000000..b9644eb7 --- /dev/null +++ b/doc/api-0.9.2/a00265.html @@ -0,0 +1,310 @@ + + + + +GLM_GTX_inertia: Intertial matrix + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_inertia: Intertial matrix
      +
      +
      + +

      Create inertia matrices. +More...

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

      +Functions

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

      Detailed Description

      +

      Create inertia matrices.

      +

      <glm/gtx/inertia.hpp> need to be included to use these functionalities.

      +

      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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00266.html b/doc/api-0.9.2/a00266.html new file mode 100644 index 00000000..011119ba --- /dev/null +++ b/doc/api-0.9.2/a00266.html @@ -0,0 +1,75 @@ + + + + +GLM_GTX_int_10_10_10_2: Packed integer + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_int_10_10_10_2: Packed integer
      +
      +
      + +

      Pack vector to 1010102 integers. Storage only. +More...

      + + + +

      +Functions

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

      Detailed Description

      +

      Pack vector to 1010102 integers. Storage only.

      +

      <glm/gtx/int_10_10_10_2.hpp> need to be included to use these functionalities.

      +

      Function Documentation

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

      From GLM_GTX_int_10_10_10_2 extension.

      +

      Cast a vec4 to an u_10_10_10_2.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00267.html b/doc/api-0.9.2/a00267.html new file mode 100644 index 00000000..e5667619 --- /dev/null +++ b/doc/api-0.9.2/a00267.html @@ -0,0 +1,158 @@ + + + + +GLM_GTX_integer: Extended integer functions + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_integer: Extended integer functions
      +
      +
      + +

      Add support for integer for core functions. +More...

      + + + + + + + +

      +Functions

      template<typename genType >
      genType factorial (genType const &x)
      int mod (int x, int y)
      int pow (int x, int y)
      int sqrt (int x)
      +

      Detailed Description

      +

      Add support for integer for core functions.

      +

      <glm/gtx/integer.hpp> need to be included to use these functionalities.

      +

      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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00268.html b/doc/api-0.9.2/a00268.html new file mode 100644 index 00000000..14a74f16 --- /dev/null +++ b/doc/api-0.9.2/a00268.html @@ -0,0 +1,278 @@ + + + + +GLM_GTX_intersect: Intersection tests + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_intersect: Intersection tests
      +
      +
      + +

      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)
      template<typename genType >
      bool intersectLineTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &position)
      template<typename genType >
      bool intersectRaySphere (genType const &orig, genType const &dir, genType const &center, typename genType::value_type radius, genType &position, genType &normal)
      template<typename genType >
      bool intersectRayTriangle (genType const &orig, genType const &dir, genType const &vert0, genType const &vert1, genType const &vert2, genType &baryPosition)
      +

      Detailed Description

      +

      Add intersection functions.

      +

      <glm/gtx/intersect.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      bool glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00269.html b/doc/api-0.9.2/a00269.html new file mode 100644 index 00000000..9e726233 --- /dev/null +++ b/doc/api-0.9.2/a00269.html @@ -0,0 +1,86 @@ + + + + +GLM_GTX_log_base: Log with base + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_log_base: Log with base
      +
      +
      + +

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

      Detailed Description

      +

      Logarithm for any base. base can be a vector or a scalar.

      +

      <glm/gtx/log_base.hpp> need to be included to use these functionalities.

      +

      Function Documentation

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

      Logarithm for any base.

      +

      From GLM_GTX_log_base.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00270.html b/doc/api-0.9.2/a00270.html new file mode 100644 index 00000000..def51dd0 --- /dev/null +++ b/doc/api-0.9.2/a00270.html @@ -0,0 +1,98 @@ + + + + +GLM_GTX_matrix_cross_product: Cross product matrix form + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_matrix_cross_product: Cross product matrix form
      +
      +
      + +

      Build cross product matrices. +More...

      + + + + + + +

      +Functions

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

      Detailed Description

      +

      Build cross product matrices.

      +

      <glm/gtx/matrix_cross_product.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      detail::tmat3x3<T> glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00271.html b/doc/api-0.9.2/a00271.html new file mode 100644 index 00000000..df28e96d --- /dev/null +++ b/doc/api-0.9.2/a00271.html @@ -0,0 +1,414 @@ + + + + +GLM_GTX_matrix_major_storage: Build matrix + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_matrix_major_storage: Build matrix
      +
      +
      + +

      Build matrices with specific matrix order, row or column. +More...

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

      +Functions

      template<typename T >
      detail::tmat2x2< T > colMajor2 (const detail::tvec2< T > &v1, const detail::tvec2< T > &v2)
      template<typename T >
      detail::tmat2x2< T > colMajor2 (const detail::tmat2x2< T > &m)
      template<typename T >
      detail::tmat3x3< T > colMajor3 (const detail::tvec3< T > &v1, const detail::tvec3< T > &v2, const detail::tvec3< T > &v3)
      template<typename T >
      detail::tmat3x3< T > colMajor3 (const detail::tmat3x3< T > &m)
      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)
      template<typename T >
      detail::tmat4x4< T > colMajor4 (const detail::tmat4x4< T > &m)
      template<typename T >
      detail::tmat2x2< T > rowMajor2 (const detail::tmat2x2< T > &m)
      template<typename T >
      detail::tmat2x2< T > rowMajor2 (const detail::tvec2< T > &v1, const detail::tvec2< T > &v2)
      template<typename T >
      detail::tmat3x3< T > rowMajor3 (const detail::tvec3< T > &v1, const detail::tvec3< T > &v2, const detail::tvec3< T > &v3)
      template<typename T >
      detail::tmat3x3< T > rowMajor3 (const detail::tmat3x3< T > &m)
      template<typename T >
      detail::tmat4x4< T > rowMajor4 (const detail::tmat4x4< T > &m)
      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)
      +

      Detailed Description

      +

      Build matrices with specific matrix order, row or column.

      +

      <glm/gtx/matrix_major_storage.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tmat2x2<T> glm::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::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::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::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::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::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::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::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::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::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00272.html b/doc/api-0.9.2/a00272.html new file mode 100644 index 00000000..ae8d212c --- /dev/null +++ b/doc/api-0.9.2/a00272.html @@ -0,0 +1,252 @@ + + + + +GLM_GTX_matrix_operation: Extended matrix operations + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_matrix_operation: Extended matrix operations
      +
      +
      + +

      Build diagonal matrices from vectors. +More...

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

      +Functions

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

      Detailed Description

      +

      Build diagonal matrices from vectors.

      +

      <glm/gtx/matrix_operation.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      detail::tmat2x2<valType> glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00273.html b/doc/api-0.9.2/a00273.html new file mode 100644 index 00000000..a3c4cbeb --- /dev/null +++ b/doc/api-0.9.2/a00273.html @@ -0,0 +1,310 @@ + + + + +GLM_GTX_matrix_query: Query matrix properties + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_matrix_query: Query matrix properties
      +
      +
      + +

      Query to evaluate matrix 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())
      template<typename T >
      bool isNormalized (const detail::tmat2x2< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
      template<typename T >
      bool isNormalized (const detail::tmat4x4< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
      template<typename T >
      bool isNormalized (const detail::tmat3x3< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
      template<typename T >
      bool isNull (const detail::tmat2x2< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
      template<typename T >
      bool isNull (const detail::tmat3x3< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
      template<typename T >
      bool isNull (const detail::tmat4x4< T > &m, const T epsilon=std::numeric_limits< T >::epsilon())
      template<typename genType >
      bool isOrthogonal (const genType &m, const typename genType::value_type epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      +

      Detailed Description

      +

      Query to evaluate matrix properties.

      +

      <glm/gtx/matrix_query.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + +
      bool glm::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::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::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::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::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::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::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00274.html b/doc/api-0.9.2/a00274.html new file mode 100644 index 00000000..dac7b7bd --- /dev/null +++ b/doc/api-0.9.2/a00274.html @@ -0,0 +1,56 @@ + + + + +GLM_GTX_mixed_producte: Mixed product + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_mixed_producte: Mixed product
      +
      +
      + +

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

      Detailed Description

      +

      Mixed product of 3 vectors.

      +

      <glm/gtx/mixed_product.hpp> need to be included to use these functionalities.

      +
      + + + diff --git a/doc/api-0.9.2/a00275.html b/doc/api-0.9.2/a00275.html new file mode 100644 index 00000000..ca250671 --- /dev/null +++ b/doc/api-0.9.2/a00275.html @@ -0,0 +1,118 @@ + + + + +GLM_GTX_multiple: Multiples + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_multiple: Multiples
      +
      +
      + +

      Find the closest number of a number multiple of other number. +More...

      + + + + + + +

      +Functions

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

      Detailed Description

      +

      Find the closest number of a number multiple of other number.

      +

      <glm/gtx/multiple.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType glm::gtx::multiple::higherMultiple (genType const & Source,
      genType const & Multiple 
      )
      +
      +
      + +

      Higher Multiple number of Source.

      +

      From GLM_GTX_multiple extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType glm::gtx::multiple::lowerMultiple (genType const & Source,
      genType const & Multiple 
      )
      +
      +
      + +

      Lower Multiple number of Source.

      +

      From GLM_GTX_multiple extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00276.html b/doc/api-0.9.2/a00276.html new file mode 100644 index 00000000..8691d833 --- /dev/null +++ b/doc/api-0.9.2/a00276.html @@ -0,0 +1,470 @@ + + + + +GLM_GTX_norm: Vector norm calculations + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_norm: Vector norm calculations
      +
      +
      + +

      Various way to compute vector norms. +More...

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

      +Functions

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

      Detailed Description

      +

      Various way to compute vector norms.

      +

      <glm/gtx/norm.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + +
      T glm::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::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::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::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::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::l1Norm (const detail::tvec3< T > & v)
      +
      +
      + +

      Returns the L1 norm of v.

      +

      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::tvec4< 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::length2 (const detail::tvec2< 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::tquat< T > & q)
      +
      +
      + +

      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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00277.html b/doc/api-0.9.2/a00277.html new file mode 100644 index 00000000..a71cca89 --- /dev/null +++ b/doc/api-0.9.2/a00277.html @@ -0,0 +1,92 @@ + + + + +GLM_GTX_normal: Compute normals + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_normal: Compute normals
      +
      +
      + +

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

      Detailed Description

      +

      Compute the normal of a triangle.

      +

      <glm/gtx/normal.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tvec3<T> glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00278.html b/doc/api-0.9.2/a00278.html new file mode 100644 index 00000000..5ad7339a --- /dev/null +++ b/doc/api-0.9.2/a00278.html @@ -0,0 +1,118 @@ + + + + +GLM_GTX_normalize_dot: Normalize dot product + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_normalize_dot: Normalize dot product
      +
      +
      + +

      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)
      template<typename genType >
      genType::value_type normalizeDot (genType const &x, genType const &y)
      +

      Detailed Description

      +

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

      +

      <glm/gtx/normalized_dot.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType::value_type glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00279.html b/doc/api-0.9.2/a00279.html new file mode 100644 index 00000000..b1b6d004 --- /dev/null +++ b/doc/api-0.9.2/a00279.html @@ -0,0 +1,79 @@ + + + + +GLM_GTX_number_precision: Number precision + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_number_precision: Number precision
      +
      +
      + +

      Defined size types. +More...

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

      +Typedefs

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

      Detailed Description

      +

      Defined size types.

      +

      <glm/gtx/number_precision.hpp> need to be included to use these functionalities.

      +
      + + + diff --git a/doc/api-0.9.2/a00280.html b/doc/api-0.9.2/a00280.html new file mode 100644 index 00000000..5dc4070b --- /dev/null +++ b/doc/api-0.9.2/a00280.html @@ -0,0 +1,172 @@ + + + + +GLM_GTX_ocl_type: OpenCL types + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_ocl_type: OpenCL types
      +
      +
      + +

      OpenCL types. +More...

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

      +Typedefs

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

      Detailed Description

      +

      OpenCL types.

      +

      <glm/gtx/ocl_type.hpp> need to be included to use these functionalities.

      +
      + + + diff --git a/doc/api-0.9.2/a00281.html b/doc/api-0.9.2/a00281.html new file mode 100644 index 00000000..f23e9c71 --- /dev/null +++ b/doc/api-0.9.2/a00281.html @@ -0,0 +1,204 @@ + + + + +GLM_GTX_optimum_pow: Optimum pow + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_optimum_pow: Optimum pow
      +
      +
      + +

      Integer exponentiation of power functions. +More...

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

      +Functions

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

      Detailed Description

      +

      Integer exponentiation of power functions.

      +

      <glm/gtx/optimum_pow.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      genType glm::gtx::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::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.

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

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00282.html b/doc/api-0.9.2/a00282.html new file mode 100644 index 00000000..508778b6 --- /dev/null +++ b/doc/api-0.9.2/a00282.html @@ -0,0 +1,108 @@ + + + + +GLM_GTX_orthonormalize: Orthonormalize + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_orthonormalize: Orthonormalize
      +
      +
      + +

      Orthonormalize matrices. +More...

      + + + + + + +

      +Functions

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

      Detailed Description

      +

      Orthonormalize matrices.

      +

      <glm/gtx/orthonormalize.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      detail::tmat3x3<T> glm::gtx::orthonormalize::orthonormalize (const detail::tmat3x3< T > & m)
      +
      +
      + +

      Returns the orthonormalized matrix of m.

      +

      From GLM_GTX_orthonormalize extension.

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

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00283.html b/doc/api-0.9.2/a00283.html new file mode 100644 index 00000000..59cd53c7 --- /dev/null +++ b/doc/api-0.9.2/a00283.html @@ -0,0 +1,150 @@ + + + + +GLM_GTX_perpendicular: Perpendicular + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_perpendicular: Perpendicular
      +
      +
      + +

      Perpendicular of a vector from other one. +More...

      + + + + + + + + +

      +Functions

      template<typename T >
      detail::tvec2< T > perp (detail::tvec2< T > const &x, detail::tvec2< T > const &Normal)
      template<typename T >
      detail::tvec4< T > perp (detail::tvec4< T > const &x, detail::tvec4< T > const &Normal)
      template<typename T >
      detail::tvec3< T > perp (detail::tvec3< T > const &x, detail::tvec3< T > const &Normal)
      +

      Detailed Description

      +

      Perpendicular of a vector from other one.

      +

      <glm/gtx/perpendicular.hpp> need to be included to use these functionalities.

      +

      Function Documentation

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

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

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00284.html b/doc/api-0.9.2/a00284.html new file mode 100644 index 00000000..9a518126 --- /dev/null +++ b/doc/api-0.9.2/a00284.html @@ -0,0 +1,98 @@ + + + + +GLM_GTX_polar_coordinates: Polar coordinates + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_polar_coordinates: Polar coordinates
      +
      +
      + +

      Conversion from Euclidean space to polar space and revert. +More...

      + + + + + + +

      +Functions

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

      Detailed Description

      +

      Conversion from Euclidean space to polar space and revert.

      +

      <glm/gtx/polar_coordinates.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      detail::tvec3<T> glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00285.html b/doc/api-0.9.2/a00285.html new file mode 100644 index 00000000..2261c21d --- /dev/null +++ b/doc/api-0.9.2/a00285.html @@ -0,0 +1,150 @@ + + + + +GLM_GTX_projection: Projection + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_projection: Projection
      +
      +
      + +

      Projection of a vector to other one. +More...

      + + + + + + + + +

      +Functions

      template<typename T >
      detail::tvec2< T > proj (detail::tvec2< T > const &x, detail::tvec2< T > const &Normal)
      template<typename T >
      detail::tvec4< T > proj (detail::tvec4< T > const &x, detail::tvec4< T > const &Normal)
      template<typename T >
      detail::tvec3< T > proj (detail::tvec3< T > const &x, detail::tvec3< T > const &Normal)
      +

      Detailed Description

      +

      Projection of a vector to other one.

      +

      <glm/gtx/projection.hpp> need to be included to use these functionalities.

      +

      Function Documentation

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

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

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00286.html b/doc/api-0.9.2/a00286.html new file mode 100644 index 00000000..7bd9a08a --- /dev/null +++ b/doc/api-0.9.2/a00286.html @@ -0,0 +1,766 @@ + + + + +GLM_GTX_quaternion: Extented quaternion types and functions + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_quaternion: Extented quaternion types and functions
      +
      +
      + +

      Extented quaternion types and functions. +More...

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

      +Functions

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

      Detailed Description

      +

      Extented quaternion types and functions.

      +

      <glm/gtx/quaternion.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      valType glm::gtx::quaternion::angle (detail::tquat< valType > const & x)
      +
      +
      + +

      Returns the quaternion rotation angle.

      +

      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 a normalized axis.

      +

      From GLM_GTX_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tquat<valType> glm::gtx::quaternion::angleAxis (valType const & angle,
      detail::tvec3< valType > const & axis 
      )
      +
      +
      + +

      Build a quaternion from an angle and a normalized axis.

      +

      From GLM_GTX_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::tvec3<valType> glm::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::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::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::eulerAngles (detail::tquat< valType > const & x)
      +
      +
      + +

      Returns euler angles, yitch as x, yaw as y, roll as z.

      +

      From GLM_GTX_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tquat<valType> glm::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<T> glm::gtx::quaternion::fastMix (detail::tquat< T > const & x,
      detail::tquat< T > const & y,
      T const & a 
      )
      +
      +
      + +

      Quaternion normalized linear interpolation.

      +

      From GLM_GTX_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tquat<valType> glm::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 in degrees.

      +

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

      +

      From GLM_GTX_quaternion 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::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::tquat<T> glm::gtx::quaternion::shortMix (detail::tquat< T > const & x,
      detail::tquat< T > const & y,
      T const & a 
      )
      +
      +
      + +

      Quaternion interpolation using the rotation short path.

      +

      From GLM_GTX_quaternion extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tquat<valType> glm::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 171 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 177 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 189 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 183 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 in degrees.

      +

      From GLM_GTX_quaternion extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00287.html b/doc/api-0.9.2/a00287.html new file mode 100644 index 00000000..05cc1967 --- /dev/null +++ b/doc/api-0.9.2/a00287.html @@ -0,0 +1,177 @@ + + + + +GLM_GTX_random: Random + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_random: Random
      +
      +
      + +

      Generate random number from various distribution methods. +More...

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

      +Functions

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

      Detailed Description

      +

      Generate random number from various distribution methods.

      +

      <glm/gtx/random.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + +
      T glm::gtx::random::signedRand1 ()
      +
      +
      + +

      Generate a random number in the interval [-1, 1], according a linear distribution.

      +

      From GLM_GTX_random extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00288.html b/doc/api-0.9.2/a00288.html new file mode 100644 index 00000000..22cad9c0 --- /dev/null +++ b/doc/api-0.9.2/a00288.html @@ -0,0 +1,130 @@ + + + + +GLM_GTX_raw_data: Raw data + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_raw_data: Raw data
      +
      +
      + +

      Projection of a vector to other one. +More...

      + + + + + + +

      +Typedefs

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

      Detailed Description

      +

      Projection of a vector to other one.

      +

      <glm/gtx/raw_data.hpp> need to be included to use these functionalities.

      +

      Typedef Documentation

      + +
      +
      + + + + +
      typedef uint8 byte
      +
      +
      + +

      Type for byte numbers.

      +

      From GLM_GTX_raw_data extension.

      + +

      Definition at line 35 of file raw_data.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef uint32 dword
      +
      +
      + +

      Type for dword numbers.

      +

      From GLM_GTX_raw_data extension.

      + +

      Definition at line 43 of file raw_data.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef uint64 qword
      +
      +
      + +

      Type for qword numbers.

      +

      From GLM_GTX_raw_data extension.

      + +

      Definition at line 47 of file raw_data.hpp.

      + +
      +
      + +
      +
      + + + + +
      typedef uint16 word
      +
      +
      + +

      Type for word numbers.

      +

      From GLM_GTX_raw_data extension.

      + +

      Definition at line 39 of file raw_data.hpp.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00289.html b/doc/api-0.9.2/a00289.html new file mode 100644 index 00000000..a8a1ea22 --- /dev/null +++ b/doc/api-0.9.2/a00289.html @@ -0,0 +1,318 @@ + + + + +GLM_GTX_reciprocal: Reciprocal + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_reciprocal: Reciprocal
      +
      +
      + +

      Define secant, cosecant and cotangent functions. +More...

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

      +Functions

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

      Detailed Description

      +

      Define secant, cosecant and cotangent functions.

      +

      <glm/gtx/reciprocal.hpp> need to be included to use these functionalities.

      +

      Function Documentation

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

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00290.html b/doc/api-0.9.2/a00290.html new file mode 100644 index 00000000..8a0f2556 --- /dev/null +++ b/doc/api-0.9.2/a00290.html @@ -0,0 +1,386 @@ + + + + +GLM_GTX_rotate_vector: Rotate vector + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_rotate_vector: Rotate vector
      +
      +
      + +

      Function to directly rotate a vector. +More...

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

      +Functions

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

      Detailed Description

      +

      Function to directly rotate a vector.

      +

      <glm/gtx/rotate_vector.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::gtx::rotate_vector::orientation (detail::tvec3< T > const & Normal,
      detail::tvec3< T > const & Up 
      )
      +
      +
      + +

      Build a rotation matrix from a normal and a up vector.

      +

      From GLM_GTX_rotate_vector extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tvec2<T> glm::gtx::rotate_vector::rotate (detail::tvec2< T > const & v,
      T const & angle 
      )
      +
      +
      + +

      Rotate a two dimensional vector.

      +

      From GLM_GTX_rotate_vector extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tvec3<T> glm::gtx::rotate_vector::rotate (detail::tvec3< T > const & v,
      T const & angle,
      detail::tvec3< T > const & normal 
      )
      +
      +
      + +

      Rotate a three dimensional vector around an axis.

      +

      From GLM_GTX_rotate_vector extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tvec4<T> glm::gtx::rotate_vector::rotate (detail::tvec4< T > const & v,
      T const & angle,
      detail::tvec3< T > const & normal 
      )
      +
      +
      + +

      Rotate a four dimensional vector around an axis.

      +

      From GLM_GTX_rotate_vector extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tvec3<T> glm::gtx::rotate_vector::rotateX (detail::tvec3< T > const & v,
      T const & angle 
      )
      +
      +
      + +

      Rotate a three dimensional vector around the X axis.

      +

      From GLM_GTX_rotate_vector extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tvec4<T> glm::gtx::rotate_vector::rotateX (detail::tvec4< T > const & v,
      T const & angle 
      )
      +
      +
      + +

      Rotate a four dimentionnals vector around the X axis.

      +

      From GLM_GTX_rotate_vector extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tvec3<T> glm::gtx::rotate_vector::rotateY (detail::tvec3< T > const & v,
      T const & angle 
      )
      +
      +
      + +

      Rotate a three dimensional vector around the Y axis.

      +

      From GLM_GTX_rotate_vector extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tvec4<T> glm::gtx::rotate_vector::rotateY (detail::tvec4< T > const & v,
      T const & angle 
      )
      +
      +
      + +

      Rotate a four dimensional vector around the X axis.

      +

      From GLM_GTX_rotate_vector extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tvec3<T> glm::gtx::rotate_vector::rotateZ (detail::tvec3< T > const & v,
      T const & angle 
      )
      +
      +
      + +

      Rotate a three dimensional vector around the Z axis.

      +

      From GLM_GTX_rotate_vector extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tvec4<T> glm::gtx::rotate_vector::rotateZ (detail::tvec4< T > const & v,
      T const & angle 
      )
      +
      +
      + +

      Rotate a four dimensional vector around the X axis.

      +

      From GLM_GTX_rotate_vector extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00291.html b/doc/api-0.9.2/a00291.html new file mode 100644 index 00000000..6b1cb4e0 --- /dev/null +++ b/doc/api-0.9.2/a00291.html @@ -0,0 +1,222 @@ + + + + +GLM_GTX_simd_mat4: SIMD mat4 type and functions + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_simd_mat4: SIMD mat4 type and functions
      +
      +
      + +

      SIMD implementation of mat4 type. +More...

      + + + + + + + + + +

      +Functions

      float determinant (detail::fmat4x4SIMD const &m)
       GLM_ALIGNED_STRUCT (16) fmat4x4SIMD
      detail::fmat4x4SIMD inverse (detail::fmat4x4SIMD const &m)
      detail::tmat4x4< float > mat4_cast (detail::fmat4x4SIMD const &x)
      detail::fmat4x4SIMD matrixCompMult (detail::fmat4x4SIMD const &x, detail::fmat4x4SIMD const &y)
      detail::fmat4x4SIMD outerProduct (detail::fvec4SIMD const &c, detail::fvec4SIMD const &r)
      detail::fmat4x4SIMD transpose (detail::fmat4x4SIMD const &x)
      +

      Detailed Description

      +

      SIMD implementation of mat4 type.

      +

      <glm/gtx/simd_mat4.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      float glm::gtx::simd_mat4::determinant (detail::fmat4x4SIMD const & m)
      +
      +
      + +

      Return the determinant of a mat4 matrix.

      +

      (From GLM_GTX_simd_mat4 extension).

      + +
      +
      + +
      +
      + + + + + + + + +
      GLM_ALIGNED_STRUCT (16 )
      +
      +
      + +

      4x4 Matrix implemented using SIMD SEE intrinsics.

      +

      4-dimensional vector implemented using SIMD SEE intrinsics.

      + +

      Definition at line 36 of file simd_mat4.hpp.

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fmat4x4SIMD glm::gtx::simd_mat4::inverse (detail::fmat4x4SIMD const & m)
      +
      +
      + +

      Return the inverse of a mat4 matrix.

      +

      (From GLM_GTX_simd_mat4 extension).

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::tmat4x4<float> glm::gtx::simd_mat4::mat4_cast (detail::fmat4x4SIMD const & x)
      +
      +
      + +

      Convert a simdMat4 to a mat4.

      +

      (From GLM_GTX_simd_mat4 extension)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::fmat4x4SIMD glm::gtx::simd_mat4::matrixCompMult (detail::fmat4x4SIMD const & x,
      detail::fmat4x4SIMD 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 GLM_GTX_simd_mat4 extension).

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::fmat4x4SIMD glm::gtx::simd_mat4::outerProduct (detail::fvec4SIMD const & c,
      detail::fvec4SIMD 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 GLM_GTX_simd_mat4 extension).

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fmat4x4SIMD glm::gtx::simd_mat4::transpose (detail::fmat4x4SIMD const & x)
      +
      +
      + +

      Returns the transposed matrix of x (From GLM_GTX_simd_mat4 extension).

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00292.html b/doc/api-0.9.2/a00292.html new file mode 100644 index 00000000..224a55ba --- /dev/null +++ b/doc/api-0.9.2/a00292.html @@ -0,0 +1,1069 @@ + + + + +GLM_GTX_simd_vec4: SIMD vec4 type and functions + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_simd_vec4: SIMD vec4 type and functions
      +
      +
      + +

      SIMD implementation of vec4 type. +More...

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

      +Functions

      detail::fvec4SIMD abs (detail::fvec4SIMD const &x)
      detail::fvec4SIMD ceil (detail::fvec4SIMD const &x)
      detail::fvec4SIMD clamp (detail::fvec4SIMD const &x, detail::fvec4SIMD const &minVal, detail::fvec4SIMD const &maxVal)
      detail::fvec4SIMD cross (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y)
      float distance (detail::fvec4SIMD const &p0, detail::fvec4SIMD const &p1)
      detail::fvec4SIMD distance4 (detail::fvec4SIMD const &p0, detail::fvec4SIMD const &p1)
      detail::fvec4SIMD dot4 (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y)
      detail::fvec4SIMD fastInversesqrt (detail::fvec4SIMD const &x)
      float fastLength (detail::fvec4SIMD const &x)
      detail::fvec4SIMD fastLength4 (detail::fvec4SIMD const &x)
      detail::fvec4SIMD fastNormalize (detail::fvec4SIMD const &x)
      detail::fvec4SIMD fastSqrt (detail::fvec4SIMD const &x)
      detail::fvec4SIMD floor (detail::fvec4SIMD const &x)
      detail::fvec4SIMD fma (detail::fvec4SIMD const &a, detail::fvec4SIMD const &b, detail::fvec4SIMD const &c)
      detail::fvec4SIMD fract (detail::fvec4SIMD const &x)
      detail::fvec4SIMD inversesqrt (detail::fvec4SIMD const &x)
      float length (detail::fvec4SIMD const &x)
      detail::fvec4SIMD length4 (detail::fvec4SIMD const &x)
      detail::fvec4SIMD max (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y)
      detail::fvec4SIMD min (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y)
      detail::fvec4SIMD mix (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y, detail::fvec4SIMD const &a)
      detail::fvec4SIMD mod (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y)
      detail::fvec4SIMD mod (detail::fvec4SIMD const &x, float const &y)
      float niceLength (detail::fvec4SIMD const &x)
      detail::fvec4SIMD niceLength4 (detail::fvec4SIMD const &x)
      detail::fvec4SIMD niceSqrt (detail::fvec4SIMD const &x)
      detail::fvec4SIMD normalize (detail::fvec4SIMD const &x)
      detail::fvec4SIMD reflect (detail::fvec4SIMD const &I, detail::fvec4SIMD const &N)
      detail::fvec4SIMD refract (detail::fvec4SIMD const &I, detail::fvec4SIMD const &N, float const &eta)
      detail::fvec4SIMD round (detail::fvec4SIMD const &x)
      detail::fvec4SIMD sign (detail::fvec4SIMD const &x)
      float simdDot (detail::fvec4SIMD const &x, detail::fvec4SIMD const &y)
      detail::fvec4SIMD simdFaceforward (detail::fvec4SIMD const &N, detail::fvec4SIMD const &I, detail::fvec4SIMD const &Nref)
      detail::fvec4SIMD smoothstep (detail::fvec4SIMD const &edge0, detail::fvec4SIMD const &edge1, detail::fvec4SIMD const &x)
      detail::fvec4SIMD sqrt (detail::fvec4SIMD const &x)
      detail::fvec4SIMD step (detail::fvec4SIMD const &edge, detail::fvec4SIMD const &x)
      detail::fvec4SIMD trunc (detail::fvec4SIMD const &x)
      detail::tvec4< float > vec4_cast (detail::fvec4SIMD const &x)
      +

      Detailed Description

      +

      SIMD implementation of vec4 type.

      +

      <glm/gtx/simd_vec4.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::abs (detail::fvec4SIMD const & x)
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::ceil (detail::fvec4SIMD 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 GLM_GTX_simd_vec4 extension, common function) Returns a value equal to the nearest integer that is greater than or equal to x. (From GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::clamp (detail::fvec4SIMD const & x,
      detail::fvec4SIMD const & minVal,
      detail::fvec4SIMD const & maxVal 
      )
      +
      +
      + +

      Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal.

      +

      (From GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::cross (detail::fvec4SIMD const & x,
      detail::fvec4SIMD const & y 
      )
      +
      +
      + +

      Returns the cross product of x and y.

      +

      (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      float glm::gtx::simd_vec4::distance (detail::fvec4SIMD const & p0,
      detail::fvec4SIMD const & p1 
      )
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::distance4 (detail::fvec4SIMD const & p0,
      detail::fvec4SIMD const & p1 
      )
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::dot4 (detail::fvec4SIMD const & x,
      detail::fvec4SIMD const & y 
      )
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::fastInversesqrt (detail::fvec4SIMD const & x)
      +
      +
      + +

      Returns the reciprocal of the positive square root of x.

      +

      Faster than inversesqrt but less accurate. (From GLM_GTX_simd_vec4 extension, exponential function)

      + +
      +
      + +
      +
      + + + + + + + + +
      float glm::gtx::simd_vec4::fastLength (detail::fvec4SIMD const & x)
      +
      +
      + +

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

      +

      Less accurate but much faster than simdLength. (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::fastLength4 (detail::fvec4SIMD const & x)
      +
      +
      + +

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

      +

      Less accurate but much faster than simdLength4. (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::fastNormalize (detail::fvec4SIMD const & x)
      +
      +
      + +

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

      +

      Less accurate but much faster than simdNormalize. (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::fastSqrt (detail::fvec4SIMD const & x)
      +
      +
      + +

      Returns the positive square root of x Less accurate but much faster than sqrt.

      +

      (From GLM_GTX_simd_vec4 extension, exponential function)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::floor (detail::fvec4SIMD const & x)
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::fma (detail::fvec4SIMD const & a,
      detail::fvec4SIMD const & b,
      detail::fvec4SIMD const & c 
      )
      +
      +
      + +

      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 GLM_GTX_simd_vec4 extension, common function) 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 GLM_GTX_simd_vec4 extension, common function) Returns a signed or unsigned integer value representing the encoding of a floating-point value. The floatingpoint value's bit-level representation is preserved. (From GLM_GTX_simd_vec4 extension, common function) Returns a floating-point value corresponding to a signed or unsigned integer encoding of a floating-point value. If an inf or NaN is passed in, it will not signal, and the resulting floating point value is unspecified. Otherwise, the bit-level representation is preserved. (From GLM_GTX_simd_vec4 extension, common function) Computes and returns a * b + c. (From GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::fract (detail::fvec4SIMD const & x)
      +
      +
      + +

      Return x - floor(x).

      +

      (From GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::inversesqrt (detail::fvec4SIMD const & x)
      +
      +
      + +

      Returns the reciprocal of the positive square root of x.

      +

      (From GLM_GTX_simd_vec4 extension, exponential function)

      + +
      +
      + +
      +
      + + + + + + + + +
      float glm::gtx::simd_vec4::length (detail::fvec4SIMD const & x)
      +
      +
      + +

      Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent) The significand is returned by the function and the exponent is returned in the parameter exp.

      +

      For a floating-point value of zero, the significant and exponent are both zero. For a floating-point value that is an infinity or is not a number, the results are undefined. (From GLM_GTX_simd_vec4 extension, common function) Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) If this product is too large to be represented in the floating-point type, the result is undefined. (From GLM_GTX_simd_vec4 extension, common function) Returns the length of x, i.e., sqrt(x * x). (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::length4 (detail::fvec4SIMD const & x)
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::max (detail::fvec4SIMD const & x,
      detail::fvec4SIMD const & y 
      )
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::min (detail::fvec4SIMD const & x,
      detail::fvec4SIMD const & y 
      )
      +
      +
      + +

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

      +

      Both the return value and the output parameter will have the same sign as x. (From GLM_GTX_simd_vec4 extension, common function) Returns y if y < x; otherwise, it returns x. (From GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::mix (detail::fvec4SIMD const & x,
      detail::fvec4SIMD const & y,
      detail::fvec4SIMD const & a 
      )
      +
      +
      + +

      (From GLM_GTX_simd_vec4 extension, common function)

      +
      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]xFloating point scalar or vector.
      [in]yFloating point scalar or vector.
      [in]aFloating point or boolean scalar or vector.
      +
      +
      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::mod (detail::fvec4SIMD const & x,
      detail::fvec4SIMD const & y 
      )
      +
      +
      + +

      Modulus.

      +

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

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::mod (detail::fvec4SIMD const & x,
      float const & y 
      )
      +
      +
      + +

      Modulus.

      +

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

      + +
      +
      + +
      +
      + + + + + + + + +
      float glm::gtx::simd_vec4::niceLength (detail::fvec4SIMD const & x)
      +
      +
      + +

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

      +

      Slightly more accurate but much slower than simdLength. (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::niceLength4 (detail::fvec4SIMD const & x)
      +
      +
      + +

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

      +

      Slightly more accurate but much slower than simdLength4. (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::niceSqrt (detail::fvec4SIMD const & x)
      +
      +
      + +

      Returns the positive square root of x with the nicest quality but very slow.

      +

      Slightly more accurate but much slower than simdSqrt. (From GLM_GTX_simd_vec4 extension, exponential function)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::normalize (detail::fvec4SIMD const & x)
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::reflect (detail::fvec4SIMD const & I,
      detail::fvec4SIMD const & N 
      )
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::refract (detail::fvec4SIMD const & I,
      detail::fvec4SIMD const & N,
      float const & eta 
      )
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::round (detail::fvec4SIMD 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 GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::sign (detail::fvec4SIMD const & x)
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      float glm::gtx::simd_vec4::simdDot (detail::fvec4SIMD const & x,
      detail::fvec4SIMD const & y 
      )
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::simdFaceforward (detail::fvec4SIMD const & N,
      detail::fvec4SIMD const & I,
      detail::fvec4SIMD const & Nref 
      )
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, geometry functions)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::smoothstep (detail::fvec4SIMD const & edge0,
      detail::fvec4SIMD const & edge1,
      detail::fvec4SIMD 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 GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::sqrt (detail::fvec4SIMD const & x)
      +
      +
      + +

      Returns the positive square root of x.

      +

      (From GLM_GTX_simd_vec4 extension, exponential function)

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::step (detail::fvec4SIMD const & edge,
      detail::fvec4SIMD const & x 
      )
      +
      +
      + +

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

      +

      (From GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::fvec4SIMD glm::gtx::simd_vec4::trunc (detail::fvec4SIMD 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 GLM_GTX_simd_vec4 extension, common function)

      + +
      +
      + +
      +
      + + + + + + + + +
      detail::tvec4<float> glm::gtx::simd_vec4::vec4_cast (detail::fvec4SIMD const & x)
      +
      +
      + +

      Convert a simdVec4 to a vec4.

      +

      (From GLM_GTX_simd_vec4 extension)

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00293.html b/doc/api-0.9.2/a00293.html new file mode 100644 index 00000000..f5ee56ad --- /dev/null +++ b/doc/api-0.9.2/a00293.html @@ -0,0 +1,204 @@ + + + + +GLM_GTX_spline: Spline + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_spline: Spline
      +
      +
      + +

      Spline functions. +More...

      + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      Spline functions.

      +

      <glm/gtx/spline.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      genType catmullRom (genType const & v1,
      genType const & v2,
      genType const & v3,
      genType const & v4,
      typename genType::value_type const & s 
      )
      +
      +
      + +

      Return a point from a catmull rom curve.

      +

      From GLM_GTX_spline extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      genType cubic (genType const & v1,
      genType const & v2,
      genType const & v3,
      genType const & v4,
      typename genType::value_type const & s 
      )
      +
      +
      + +

      Return a point from a cubic curve.

      +

      From GLM_GTX_spline extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      genType hermite (genType const & v1,
      genType const & t1,
      genType const & v2,
      genType const & t2,
      typename genType::value_type const & s 
      )
      +
      +
      + +

      Return a point from a hermite curve.

      +

      From GLM_GTX_spline extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00294.html b/doc/api-0.9.2/a00294.html new file mode 100644 index 00000000..0f7a0c99 --- /dev/null +++ b/doc/api-0.9.2/a00294.html @@ -0,0 +1,76 @@ + + + + +GLM_GTX_string_cast: String cast + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_string_cast: String cast
      +
      +
      + +

      Setup strings for GLM type values. +More...

      + + + + +

      +Functions

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

      Detailed Description

      +

      Setup strings for GLM type values.

      +

      <glm/gtx/string_cast.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      std::string glm::gtx::string_cast::to_string (genType const & x)
      +
      +
      + +

      Create a string from a GLM type value.

      +

      From GLM_GTX_string_cast extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00295.html b/doc/api-0.9.2/a00295.html new file mode 100644 index 00000000..03c170ae --- /dev/null +++ b/doc/api-0.9.2/a00295.html @@ -0,0 +1,388 @@ + + + + +GLM_GTX_transform: Extented transformation matrices + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_transform: Extented transformation matrices
      +
      +
      + +

      Add transformation matrices. +More...

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

      +Functions

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

      Detailed Description

      +

      Add transformation matrices.

      +

      <glm/gtx/transform.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::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::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 (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::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::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.

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

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00296.html b/doc/api-0.9.2/a00296.html new file mode 100644 index 00000000..c5aa2397 --- /dev/null +++ b/doc/api-0.9.2/a00296.html @@ -0,0 +1,365 @@ + + + + +GLM_GTX_transform2: Extra transformation matrices + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_transform2: Extra transformation matrices
      +
      +
      + +

      Add extra transformation matrices. +More...

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

      +Functions

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

      Detailed Description

      +

      Add extra transformation matrices.

      +

      <glm/gtx/transform2.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tmat3x3<T> glm::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 (valType scale,
      valType bias 
      )
      +
      +
      + +

      Build a scale bias matrix.

      +

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

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00297.html b/doc/api-0.9.2/a00297.html new file mode 100644 index 00000000..758754c7 --- /dev/null +++ b/doc/api-0.9.2/a00297.html @@ -0,0 +1,160 @@ + + + + +GLM_GTX_unsigned_int: Unsigned int + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_unsigned_int: Unsigned int
      +
      +
      + +

      Add support for unsigned integer for core functions. +More...

      + + + + + + + +

      +Typedefs

      typedef signed int sint

      +Functions

      uint mod (uint x, uint y)
      uint pow (uint x, uint y)
      uint sqrt (uint x)
      +

      Detailed Description

      +

      Add support for unsigned integer for core functions.

      +

      <glm/gtx/unsigned_int.hpp> need to be included to use these functionalities.

      +

      Typedef Documentation

      + +
      +
      + + + + +
      typedef signed int sint
      +
      +
      + +

      32bit signed integer.

      +

      From GLM_GTX_unsigned_int extension.

      + +

      Definition at line 36 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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00298.html b/doc/api-0.9.2/a00298.html new file mode 100644 index 00000000..439d5bc7 --- /dev/null +++ b/doc/api-0.9.2/a00298.html @@ -0,0 +1,186 @@ + + + + +GLM_GTX_vector_access: Vector access + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_vector_access: Vector access
      +
      +
      + +

      Function to set values to vectors. +More...

      + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      Function to set values to vectors.

      +

      <glm/gtx/vector_access.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      void glm::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.

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

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00299.html b/doc/api-0.9.2/a00299.html new file mode 100644 index 00000000..04ca13ec --- /dev/null +++ b/doc/api-0.9.2/a00299.html @@ -0,0 +1,157 @@ + + + + +GLM_GTX_vector_angle: Vector angle + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_vector_angle: Vector angle
      +
      +
      + +

      Compute angle between vectors. +More...

      + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      Compute angle between vectors.

      +

      <glm/gtx/vector_angle.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + +
      GLM_FUNC_QUALIFIER vecType::value_type glm::gtx::vector_angle::angle (vecType const & x,
      vecType const & y 
      )
      +
      +
      + +

      Returns the absolute angle between two vectors Parameters need to be normalized.

      +

      From GLM_GTX_vector_angle extension

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      GLM_FUNC_QUALIFIER T glm::gtx::vector_angle::orientedAngle (detail::tvec3< T > const & x,
      detail::tvec3< T > const & y,
      detail::tvec3< T > const & ref 
      )
      +
      +
      + +

      Returns the oriented angle between two 3d vectors based from a reference axis.

      +

      Parameters need to be normalized. From GLM_GTX_vector_angle extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      GLM_FUNC_QUALIFIER T glm::gtx::vector_angle::orientedAngle (detail::tvec2< T > const & x,
      detail::tvec2< T > const & y 
      )
      +
      +
      + +

      Returns the oriented angle between two 2d vectors Parameters need to be normalized.

      +

      From GLM_GTX_vector_angle extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00300.html b/doc/api-0.9.2/a00300.html new file mode 100644 index 00000000..3ecf8c74 --- /dev/null +++ b/doc/api-0.9.2/a00300.html @@ -0,0 +1,308 @@ + + + + +GLM_GTX_vector_query: Vector query + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_vector_query: Vector query
      +
      +
      + +

      Query informations of vector types. +More...

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

      +Functions

      template<typename genType >
      bool areCollinear (genType const &v0, genType const &v1, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      template<typename genType >
      bool areOpposite (genType const &v0, genType const &v1, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      template<typename genType >
      bool areOrthogonal (genType const &v0, genType const &v1, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      template<typename genType >
      bool areOrthonormal (genType const &v0, genType const &v1, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      template<typename genType >
      bool areSimilar (genType const &v0, genType const &v1, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      template<typename genType >
      bool isNormalized (genType const &v, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      template<typename genType >
      bool isNull (genType const &v, typename genType::value_type const &epsilon=std::numeric_limits< typename genType::value_type >::epsilon())
      +

      Detailed Description

      +

      Query informations of vector types.

      +

      <glm/gtx/vector_query.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool glm::gtx::vector_query::areCollinear (genType const & v0,
      genType const & v1,
      typename genType::value_type const & epsilon = std::numeric_limits< typename genType::value_type >::epsilon() 
      )
      +
      +
      + +

      Check if two vectors are collinears.

      +

      From GLM_GTX_vector_query extensions.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool glm::gtx::vector_query::areOpposite (genType const & v0,
      genType const & v1,
      typename genType::value_type const & epsilon = std::numeric_limits< typename genType::value_type >::epsilon() 
      )
      +
      +
      + +

      Check if two vectors are opposites.

      +

      From GLM_GTX_vector_query extensions.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool glm::gtx::vector_query::areOrthogonal (genType const & v0,
      genType const & v1,
      typename genType::value_type const & epsilon = std::numeric_limits< typename genType::value_type >::epsilon() 
      )
      +
      +
      + +

      Check if two vectors are orthogonals.

      +

      From GLM_GTX_vector_query extensions.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool glm::gtx::vector_query::areOrthonormal (genType const & v0,
      genType const & v1,
      typename genType::value_type const & epsilon = std::numeric_limits< typename genType::value_type >::epsilon() 
      )
      +
      +
      + +

      Check if two vectors are orthonormal.

      +

      From GLM_GTX_vector_query extensions.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      bool glm::gtx::vector_query::areSimilar (genType const & v0,
      genType const & v1,
      typename genType::value_type const & epsilon = std::numeric_limits< typename genType::value_type >::epsilon() 
      )
      +
      +
      + +

      Check if two vectors are similar.

      +

      From GLM_GTX_vector_query extensions.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      bool glm::gtx::vector_query::isNormalized (genType const & v,
      typename genType::value_type const & epsilon = std::numeric_limits< typename genType::value_type >::epsilon() 
      )
      +
      +
      + +

      Check if a vector is normalized.

      +

      From GLM_GTX_vector_query extensions.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      bool glm::gtx::vector_query::isNull (genType const & v,
      typename genType::value_type const & epsilon = std::numeric_limits< typename genType::value_type >::epsilon() 
      )
      +
      +
      + +

      Check if a vector is null.

      +

      From GLM_GTX_vector_query extensions.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00301.html b/doc/api-0.9.2/a00301.html new file mode 100644 index 00000000..c2f3b02f --- /dev/null +++ b/doc/api-0.9.2/a00301.html @@ -0,0 +1,215 @@ + + + + +GLM_GTX_verbose_operator: Verbose operator + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_verbose_operator: Verbose operator
      +
      +
      + +

      Use words to replace operators. +More...

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

      +Functions

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

      Detailed Description

      +

      Use words to replace operators.

      +

      <glm/gtx/verbose_operator.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genTypeT glm::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.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00302.html b/doc/api-0.9.2/a00302.html new file mode 100644 index 00000000..0fd79e2f --- /dev/null +++ b/doc/api-0.9.2/a00302.html @@ -0,0 +1,117 @@ + + + + +GLM_GTX_wrap: Texture coordinate wrap modes + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      GLM_GTX_wrap: Texture coordinate wrap modes
      +
      +
      + +

      Wrapping mode of texture coordinates. +More...

      + + + + + + + + +

      +Functions

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

      Detailed Description

      +

      Wrapping mode of texture coordinates.

      +

      <glm/gtx/wrap.hpp> need to be included to use these functionalities.

      +

      Function Documentation

      + +
      +
      + + + + + + + + +
      genType glm::gtx::wrap::clamp (genType const & Texcoord)
      +
      +
      + +

      Simulate GL_CLAMP OpenGL wrap mode From GLM_GTX_wrap extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      genType glm::gtx::wrap::mirrorRepeat (genType const & Texcoord)
      +
      +
      + +

      Simulate GL_MIRROR_REPEAT OpenGL wrap mode From GLM_GTX_wrap extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      genType glm::gtx::wrap::repeat (genType const & Texcoord)
      +
      +
      + +

      Simulate GL_REPEAT OpenGL wrap mode From GLM_GTX_wrap extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00303.html b/doc/api-0.9.2/a00303.html new file mode 100644 index 00000000..c52d5ea2 --- /dev/null +++ b/doc/api-0.9.2/a00303.html @@ -0,0 +1,53 @@ + + + + +VIRTREV Extensions + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      VIRTREV Extensions
      +
      +
      + +

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

      + + + +

      +Modules

       GLM_VIRTREV_xstream: xml like output
      +

      Detailed Description

      +

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

      +
      + + + diff --git a/doc/api-0.9.2/a00304.html b/doc/api-0.9.2/a00304.html new file mode 100644 index 00000000..36a2db9c --- /dev/null +++ b/doc/api-0.9.2/a00304.html @@ -0,0 +1,48 @@ + + + + +GLM_VIRTREV_xstream: xml like output + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      +
      +
      GLM_VIRTREV_xstream: xml like output
      +
      +
      + +

      Streaming vector and matrix in a xml way. +More...

      + +
      +

      Streaming vector and matrix in a xml way.

      +

      Include <glm/virtrev/xstream.hpp> for this functionality.

      +
      + + + diff --git a/doc/api-0.9.2/a00305.html b/doc/api-0.9.2/a00305.html new file mode 100644 index 00000000..4f39a97c --- /dev/null +++ b/doc/api-0.9.2/a00305.html @@ -0,0 +1,43 @@ + + + + +Gtx_gradient_paint + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      +
      +
      Gtx_gradient_paint
      +
      +
      + +
      +
      + + + diff --git a/doc/api-0.9.2/a00306.html b/doc/api-0.9.2/a00306.html new file mode 100644 index 00000000..49c76884 --- /dev/null +++ b/doc/api-0.9.2/a00306.html @@ -0,0 +1,156 @@ + + + + +Gtx_matrix_interpolation + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      Gtx_matrix_interpolation
      +
      +
      + + + + + + + + +

      +Functions

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

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      void glm::gtx::matrix_interpolation::axisAngle (detail::tmat4x4< T > const & mat,
      detail::tvec3< T > & axis,
      T & angle 
      )
      +
      +
      + +

      Get the axis and angle of the rotation from a matrix.

      +

      From GLM_GTX_matrix_interpolation extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::gtx::matrix_interpolation::axisAngleMatrix (detail::tvec3< T > const & axis,
      T const angle 
      )
      +
      +
      + +

      Build a matrix from axis and angle.

      +

      From GLM_GTX_matrix_interpolation extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      detail::tmat4x4<T> glm::gtx::matrix_interpolation::interpolate (detail::tmat4x4< T > const & m1,
      detail::tmat4x4< T > const & m2,
      T const delta 
      )
      +
      +
      + +

      Build a interpolation of 4 * 4 matrixes.

      +

      From GLM_GTX_matrix_interpolation extension. Warning! works only with rotation and/or translation matrixes, scale will generate unexpected results.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00307.html b/doc/api-0.9.2/a00307.html new file mode 100644 index 00000000..b9b34b75 --- /dev/null +++ b/doc/api-0.9.2/a00307.html @@ -0,0 +1,124 @@ + + + + +Gtx_noise + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      Gtx_noise
      +
      +
      + + + + + + + + +

      +Functions

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

      Function Documentation

      + +
      +
      + + + + + + + + +
      T glm::gtx::noise::perlin (vecType< T > const & p)
      +
      +
      + +

      Classic perlin noise.

      +

      From GLM_GTX_noise extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      T glm::gtx::noise::perlin (vecType< T > const & p,
      vecType< T > const & rep 
      )
      +
      +
      + +

      Periodic perlin noise.

      +

      From GLM_GTX_noise extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      T glm::gtx::noise::simplex (vecType< T > const & p)
      +
      +
      + +

      Simplex noise.

      +

      From GLM_GTX_noise extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00308.html b/doc/api-0.9.2/a00308.html new file mode 100644 index 00000000..e95c4625 --- /dev/null +++ b/doc/api-0.9.2/a00308.html @@ -0,0 +1,220 @@ + + + + +Gtx_ulp + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      + +
      +
      Gtx_ulp
      +
      +
      + + + + + + + + + + + + + + +

      +Functions

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

      Function Documentation

      + +
      +
      + + + + + + + + + + + + + + + + + + +
      uint glm::gtx::ulp::float_distance (T const & x,
      T const & y 
      )
      +
      +
      + +

      Return the distance in the number of ULP between 2 scalars.

      +

      From GLM_GTX_ulp extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      vecType<uint> glm::gtx::ulp::float_distance (vecType< T > const & x,
      vecType< T > const & y 
      )
      +
      +
      + +

      Return the distance in the number of ULP between 2 vectors.

      +

      From GLM_GTX_ulp extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      genType glm::gtx::ulp::next_float (genType const & x)
      +
      +
      + +

      Return the next ULP value(s) after the input value(s).

      +

      From GLM_GTX_ulp extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType glm::gtx::ulp::next_float (genType const & x,
      uint const & Distance 
      )
      +
      +
      + +

      Return the value(s) ULP distance after the input value(s).

      +

      From GLM_GTX_ulp extension.

      + +
      +
      + +
      +
      + + + + + + + + + + + + + + + + + + +
      genType glm::gtx::ulp::prev_float (genType const & x,
      uint const & Distance 
      )
      +
      +
      + +

      Return the value(s) ULP distance before the input value(s).

      +

      From GLM_GTX_ulp extension.

      + +
      +
      + +
      +
      + + + + + + + + +
      genType glm::gtx::ulp::prev_float (genType const & x)
      +
      +
      + +

      Return the previous ULP value(s) before the input value(s).

      +

      From GLM_GTX_ulp extension.

      + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/a00310.html b/doc/api-0.9.2/a00310.html new file mode 100644 index 00000000..cbc562ae --- /dev/null +++ b/doc/api-0.9.2/a00310.html @@ -0,0 +1,55 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      thalf Member List
      +
      +
      +This is the complete list of members for thalf, including all inherited members. +
      + + + diff --git a/doc/api-0.9.2/a00311.html b/doc/api-0.9.2/a00311.html new file mode 100644 index 00000000..ecf320c8 --- /dev/null +++ b/doc/api-0.9.2/a00311.html @@ -0,0 +1,55 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat2x2< T > Member List
      +
      +
      +This is the complete list of members for tmat2x2< T >, including all inherited members. +
      + + + diff --git a/doc/api-0.9.2/a00312.html b/doc/api-0.9.2/a00312.html new file mode 100644 index 00000000..5be1d96a --- /dev/null +++ b/doc/api-0.9.2/a00312.html @@ -0,0 +1,55 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat2x3< T > Member List
      +
      +
      +This is the complete list of members for tmat2x3< T >, including all inherited members. +
      + + + diff --git a/doc/api-0.9.2/a00313.html b/doc/api-0.9.2/a00313.html new file mode 100644 index 00000000..dac4f1c6 --- /dev/null +++ b/doc/api-0.9.2/a00313.html @@ -0,0 +1,55 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat2x4< T > Member List
      +
      +
      +This is the complete list of members for tmat2x4< T >, including all inherited members. +
      + + + diff --git a/doc/api-0.9.2/a00314.html b/doc/api-0.9.2/a00314.html new file mode 100644 index 00000000..fa071492 --- /dev/null +++ b/doc/api-0.9.2/a00314.html @@ -0,0 +1,55 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat3x2< T > Member List
      +
      +
      +This is the complete list of members for tmat3x2< T >, including all inherited members. +
      + + + diff --git a/doc/api-0.9.2/a00315.html b/doc/api-0.9.2/a00315.html new file mode 100644 index 00000000..dd2b3034 --- /dev/null +++ b/doc/api-0.9.2/a00315.html @@ -0,0 +1,55 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat3x3< T > Member List
      +
      +
      +This is the complete list of members for tmat3x3< T >, including all inherited members. +
      + + + diff --git a/doc/api-0.9.2/a00316.html b/doc/api-0.9.2/a00316.html new file mode 100644 index 00000000..840930aa --- /dev/null +++ b/doc/api-0.9.2/a00316.html @@ -0,0 +1,55 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat3x4< T > Member List
      +
      +
      +This is the complete list of members for tmat3x4< T >, including all inherited members. +
      + + + diff --git a/doc/api-0.9.2/a00317.html b/doc/api-0.9.2/a00317.html new file mode 100644 index 00000000..8265c834 --- /dev/null +++ b/doc/api-0.9.2/a00317.html @@ -0,0 +1,55 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat4x2< T > Member List
      +
      +
      +This is the complete list of members for tmat4x2< T >, including all inherited members. +
      + + + diff --git a/doc/api-0.9.2/a00318.html b/doc/api-0.9.2/a00318.html new file mode 100644 index 00000000..48fd7346 --- /dev/null +++ b/doc/api-0.9.2/a00318.html @@ -0,0 +1,55 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat4x3< T > Member List
      +
      +
      +This is the complete list of members for tmat4x3< T >, including all inherited members. +
      + + + diff --git a/doc/api-0.9.2/a00319.html b/doc/api-0.9.2/a00319.html new file mode 100644 index 00000000..c6978e84 --- /dev/null +++ b/doc/api-0.9.2/a00319.html @@ -0,0 +1,55 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tmat4x4< T > Member List
      +
      +
      +This is the complete list of members for tmat4x4< T >, including all inherited members. +
      + + + diff --git a/doc/api-0.9.2/a00320.html b/doc/api-0.9.2/a00320.html new file mode 100644 index 00000000..11b5f0cd --- /dev/null +++ b/doc/api-0.9.2/a00320.html @@ -0,0 +1,56 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tquat< T > Member List
      +
      +
      +This is the complete list of members for tquat< T >, including all inherited members. + +
      tquat(tvec3< T > const &eulerAngles)tquat< T > [explicit]
      + + + diff --git a/doc/api-0.9.2/a00321.html b/doc/api-0.9.2/a00321.html new file mode 100644 index 00000000..4009bc0b --- /dev/null +++ b/doc/api-0.9.2/a00321.html @@ -0,0 +1,60 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tvec2< T > Member List
      +
      +
      +This is the complete list of members for tvec2< T >, including all inherited members. + + + + + +
      tvec2(U const &x)tvec2< T > [explicit]
      tvec2(U const &x, V const &y)tvec2< T > [explicit]
      tvec2(tvec2< U > const &v)tvec2< T > [explicit]
      tvec2(tvec3< U > const &v)tvec2< T > [explicit]
      tvec2(tvec4< U > const &v)tvec2< T > [explicit]
      + + + diff --git a/doc/api-0.9.2/a00322.html b/doc/api-0.9.2/a00322.html new file mode 100644 index 00000000..b0413e4b --- /dev/null +++ b/doc/api-0.9.2/a00322.html @@ -0,0 +1,61 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tvec3< T > Member List
      +
      +
      +This is the complete list of members for tvec3< T >, including all inherited members. + + + + + + +
      tvec3(U const &x)tvec3< T > [explicit]
      tvec3(U const &x, V const &y, W const &z)tvec3< T > [explicit]
      tvec3(tvec2< A > const &v, B const &s)tvec3< T > [explicit]
      tvec3(A const &s, tvec2< B > const &v)tvec3< T > [explicit]
      tvec3(tvec3< U > const &v)tvec3< T > [explicit]
      tvec3(tvec4< U > const &v)tvec3< T > [explicit]
      + + + diff --git a/doc/api-0.9.2/a00323.html b/doc/api-0.9.2/a00323.html new file mode 100644 index 00000000..e2263ca4 --- /dev/null +++ b/doc/api-0.9.2/a00323.html @@ -0,0 +1,72 @@ + + + + +Member List + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      +
      tvec4< T > Member List
      +
      +
      +This is the complete list of members for tvec4< T >, including all inherited members. + + + + + + + + + + + + + + + + + +
      tvec4(U const &x)tvec4< T > [explicit]
      tvec4(A const &x, B const &y, C const &z, D const &w)tvec4< T > [explicit]
      tvec4(tvec2< A > const &v, B const &s1, C const &s2)tvec4< T > [explicit]
      tvec4(A const &s1, tvec2< B > const &v, C const &s2)tvec4< T > [explicit]
      tvec4(A const &s1, B const &s2, tvec2< C > const &v)tvec4< T > [explicit]
      tvec4(tvec3< A > const &v, B const &s)tvec4< T > [explicit]
      tvec4(A const &s, tvec3< B > const &v)tvec4< T > [explicit]
      tvec4(tvec2< A > const &v1, tvec2< B > const &v2)tvec4< T > [explicit]
      tvec4(tvec4< U > const &v)tvec4< T > [explicit]
      tvec4(tref2< A > const &v, B const &s1, C const &s2)tvec4< T > [explicit]
      tvec4(A const &s1, tref2< B > const &v, C const &s2)tvec4< T > [explicit]
      tvec4(A const &s1, B const &s2, tref2< C > const &v)tvec4< T > [explicit]
      tvec4(tref3< A > const &v, B const &s)tvec4< T > [explicit]
      tvec4(A const &s, tref3< B > const &v)tvec4< T > [explicit]
      tvec4(tref2< A > const &v1, tref2< B > const &v2)tvec4< T > [explicit]
      tvec4(tvec2< A > const &v1, tref2< B > const &v2)tvec4< T > [explicit]
      tvec4(tref2< A > const &v1, tvec2< B > const &v2)tvec4< T > [explicit]
      + + + diff --git a/doc/api-0.9.2/annotated.html b/doc/api-0.9.2/annotated.html new file mode 100644 index 00000000..fb16fc16 --- /dev/null +++ b/doc/api-0.9.2/annotated.html @@ -0,0 +1,63 @@ + + + + +Class List + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      +
      Class List
      +
      +
      +
      Here are the classes, structs, unions and interfaces with brief descriptions:
      + + + + + + + + + + + + + + +
      thalf16-bit floating point type
      tmat2x2< T >Template for 2 * 2 matrix of floating-point numbers
      tmat2x3< T >Template for 2 columns and 3 rows matrix of floating-point numbers
      tmat2x4< T >Template for 2 columns and 4 rows matrix of floating-point numbers
      tmat3x2< T >Template for 3 columns and 2 rows matrix of floating-point numbers
      tmat3x3< T >Template for 3 * 3 matrix of floating-point numbers
      tmat3x4< T >Template for 3 columns and 4 rows matrix of floating-point numbers
      tmat4x2< T >Template for 4 columns and 2 rows matrix of floating-point numbers
      tmat4x3< T >Template for 4 columns and 3 rows matrix of floating-point numbers
      tmat4x4< T >Template for 4 * 4 matrix of floating-point numbers
      tquat< T >Template for quaternion
      tvec2< T >The basic 2D vector type
      tvec3< T >Basic 3D vector type
      tvec4< T >Basic 4D vector type
      +
      + + + diff --git a/doc/api-0.9.2/bc_s.png b/doc/api-0.9.2/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..51ba0066debbeac813d4014d805dc95ebd5b532e GIT binary patch literal 705 zcmV;y0zUnTP)rF$rQRw6Q(&UpP1C2j9>6opbR!_oV&F*Ar#jFVPDcrqyulXW;j+8j#k`kzKrw^%mxu{{V1|%gWybaP{#p01Ow~ zB}u2{E{(}bUp!#{_s(CTu-lqpI0GO7kSiTS0H7s=EN*pJI7&&m$E!@mK+B_{Xx(nj zH0-yS_)(8nX^er(4+o=lHsk1YNuDJFz~=EOD_HN~zW*iu%I90GV!oc&bWQk_4geq* z?tP92Q)0;sZ>cqtNr zOitc-rw&Cz$YQa>g0&|*N&WS=YH&7966!J}!88AdX)_x%jMh)j1wW9Z z*IvhmrFxz{vu`%7PR#}L0f5_4b|fCOXQid+8KYfFC_DlHq_*W{G_-J(_zH3*04SWE z4=w=!x2-hRp+Pe7IRei{XXZoQv3aO*zlhc|&K$GAain(EABqhLSF-2uT86!Xj#Z0B zU3k_Xawp7W)%kt^=&@!R3-to)mi?gz3E*IJe>$ba=d_9I2l8b9axei@p6k1qW)^BJ zqHa=NSguR@Srtva-n?v)XN=T%7nVoVfN2cYfePZIbCZQi`9_mavc00000NkvXXu0mjfn{!2m literal 0 HcmV?d00001 diff --git a/doc/api-0.9.2/classes.html b/doc/api-0.9.2/classes.html new file mode 100644 index 00000000..9b4c471b --- /dev/null +++ b/doc/api-0.9.2/classes.html @@ -0,0 +1,51 @@ + + + + +Class Index + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      +
      Class Index
      +
      +
      + + +
        T  
      +
      tmat2x3 (glm::detail)   tmat3x3 (glm::detail)   tmat4x3 (glm::detail)   tvec2 (glm::detail)   
      thalf (glm::detail)   tmat2x4 (glm::detail)   tmat3x4 (glm::detail)   tmat4x4 (glm::detail)   tvec3 (glm::detail)   
      tmat2x2 (glm::detail)   tmat3x2 (glm::detail)   tmat4x2 (glm::detail)   tquat (glm::detail)   tvec4 (glm::detail)   
      +
      + + + diff --git a/doc/api-0.9.2/closed.png b/doc/api-0.9.2/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d4bd9fef2272c74b94762c9e2496177017775e GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VuAVNAAr*{o?>h22DDp4|bgj*t z)u^AqcA-V@guRYpb17F<&b?_~8HV>~XqWvB;^$!VVSTy0!eQcJp_yD7TIQA>7dijs YXf6~H5cs^Q6KEiVr>mdKI;Vst0NsWqGynhq literal 0 HcmV?d00001 diff --git a/doc/api-0.9.2/doxygen.css b/doc/api-0.9.2/doxygen.css new file mode 100644 index 00000000..8c3f35eb --- /dev/null +++ b/doc/api-0.9.2/doxygen.css @@ -0,0 +1,861 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl +{ + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 12px; +} + +body +{ + margin:0px; + padding:0px; + background-color:#000000; + background-repeat:no-repeat; + background-position:center center; + background-attachment:fixed; +/* + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFF8F0 5%, #FFEEDD 95%, #FFDDBB); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFF8F0), color-stop(0.05,#FFF8F0), color-stop(0.95,#FFEEDD), to(#FFDDBB)); +*/ + min-height:1200px; + overflow:auto; +} + +p +{ + background-color:#FFFFFF; +} + +/* @group Heading Levels */ + +h1 +{ + color:#FF8000; + font-family:Century; + font-size: 150%; +} + +h2 +{ + color:#FF8000; + font-family:Century; + font-size: 120%; +} + +h3 { + font-family:Century; + 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, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #FFF8F0; + border: 0px solid #FF8000; + text-align: center; + margin: 2px; + padding: 2px; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #000000; + font-weight: normal; + /*text-decoration: none;*/ +} + +.contents a:visited { + color: #606060; +} + +.contents{ + background-color: #FFFFFF; + margin:0px; + margin-left:auto; + margin-right:auto; + padding:0px; + padding-top:8px; + padding-bottom:8px; + width:1000px; +} + +div.textblock{ + background-color: #FFFFFF; + padding-top: 4px; + padding-bottom: 4px; + padding-left: 32px; + padding-right: 32px; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 0px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +/* + font-family: Century; + font-size: 150%; + color:#FF8000; +*/ +} + +a.elRef { +} + +a.code { + color: #4665A2; +} + +a.codeRef { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +.fragment { + font-family: monospace, fixed; + font-size: 105%; +} + +pre.fragment { + border: 0px solid #FF8000; + background-color: #FFF8F0; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +td.indexkey { + font-weight: bold; + border: 0px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 4px 10px; +} + +td.indexvalue { + border: 0px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #FFF8F0; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + margin-left:auto; + margin-right:auto; + width:1000px; + + text-align: right; + padding-right: 12px; + color: #FFEEDD; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 0px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 0px solid #FF8000; +} + +hr.footer { + height: 1px; + margin-left:auto; + margin-right:auto; + width:1000px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #FFFCF8; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #000000; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 4px solid #FFFFFF; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memTemplParams { + color: #404040; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 0px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.memitem { + padding: 8px; + margin-bottom: 10px; +} + +.memname { + white-space: nowrap; + font-weight: bold; + margin-left: 6px; +} + +.memproto { + border-top: 0px solid #FF8000; + border-left: 0px solid #FF8000; + border-right: 0px solid #FF8000; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 8px; + border-top-left-radius: 8px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 8px; + -moz-border-radius-topleft: 8px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 8px; + -webkit-border-top-left-radius: 8px; + /*background-image:url('nav_f.png');*/ + background-repeat:repeat-x; + background-color: #FFFFFF; + background-image: -moz-linear-gradient(center top, #FFF8F0 0%, #FFFFFF 60%, #FFFFFF 95%, #FFFFFF); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFF8F0), color-stop(0.2,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#FFFFFF), to(#FFFFFF)); +} + +.memdoc { + border-bottom: 0px solid #FF8000; + border-left: 0px solid #FF8000; + border-right: 0px solid #FF8000; + padding: 2px 5px; + background-color: #FFFFFF; + border-top-width: 0; + /* opera specific markup */ + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #FFF8F0 90%, #FFEEDD); + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.90,#FFF8F0), to(#FFEEDD)); +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + border-spacing: 6px 2px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + + + + +/* @end */ + +/* @group Directory (tree) */ + +/* for the tree view */ + +.ftvtree { + font-family: sans-serif; + margin: 0px; +} + +/* these are for tree view when used as main index */ + +.directory { + font-size: 9pt; + font-weight: bold; + margin: 5px; +} + +.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 */ + +div.dynheader { + margin-top: 8px; +} + +address { + font-style: normal; + color: #804000; +} + +table.doxtable { + border-collapse:collapse; +} + +table.doxtable td, table.doxtable th { + border: 0px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; +} + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + /*background-image: url('tab_b.png');*/ + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-color: #FFEEDD; + height:30px; + line-height:30px; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + /*background-image:url('bc_s.png');*/ + background-repeat:no-repeat; + background-position:right; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#FF8000; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#FFEEDD; + font-size: 8pt; +} + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-color:#FFEEDD; + background-image: -moz-linear-gradient(center top, #FFEEDD 0%, #FFEEDD 5%, #FFEEDD 80%, #FFFFFF); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFEEDD), color-stop(0.05,#FFEEDD), color-stop(0.05,#FFEEDD), color-stop(0.80,#FFEEDD), to(#FFFFFF)); + + padding:0px; + margin:0px; + margin-left:auto; + margin-right:auto; + width:1000px; + border-bottom: 0px solid #FFC080; +} + +div.headertitle +{ + margin: 0px; + padding: 5px; + padding-bottom:10px; + padding-top:10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug +{ + border-color: #FF8000; + border-left:4px solid; + padding: 0 0 0 6px; +} + +dl.note +{ + border-color: #FFDDBB; +} + +dl.warning, dl.attention +{ + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + border-color: #00D000; +} + +dl.deprecated +{ + border-color: #505050; +} + +dl.todo +{ + border-color: #00C0E0; +} + +dl.test +{ + border-color: #3030E0; +} + +dl.bug +{ + border-color: #C08050; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectbrief +{ + font: 120% arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 0px solid #FF8000; + background-color:#FFFFFF; +} + +#top +{ + margin-left:auto; + margin-right:auto; + width:1000px; + + /*background-color:#000000;*/ +} diff --git a/doc/api-0.9.2/doxygen.png b/doc/api-0.9.2/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..635ed52fce7057ac24df92ec7664088a881fa5d0 GIT binary patch literal 3942 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 A+yDRo literal 0 HcmV?d00001 diff --git a/doc/api-0.9.2/files.html b/doc/api-0.9.2/files.html new file mode 100644 index 00000000..af49113d --- /dev/null +++ b/doc/api-0.9.2/files.html @@ -0,0 +1,168 @@ + + + + +File List + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      +
      File List
      +
      +
      +
      Here is a list of all documented files with brief descriptions:
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      _detail.hpp [code]
      _fixes.hpp [code]
      _swizzle.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]
      compatibility.hpp [code]
      component_wise.hpp [code]
      coreModules.doxy [code]
      epsilon.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_integer.hpp [code]
      func_matrix.hpp [code]
      func_noise.hpp [code]
      func_packing.hpp [code]
      func_trigonometric.hpp [code]
      func_vector_relational.hpp [code]
      glm.hpp [code]
      gradient_paint.hpp [code]
      gtcModules.doxy [code]
      gtxModules.doxy [code]
      half_float.hpp [code]
      handed_coordinate_space.hpp [code]
      hint.hpp [code]
      inertia.hpp [code]
      int_10_10_10_2.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]
      log_base.hpp [code]
      man.doxy [code]
      matrix_access.hpp [code]
      matrix_cross_product.hpp [code]
      matrix_integer.hpp [code]
      matrix_interpolation.hpp [code]
      matrix_inverse.hpp [code]
      matrix_major_storage.hpp [code]
      matrix_operation.hpp [code]
      matrix_query.hpp [code]
      matrix_transform.hpp [code]
      mixed_product.hpp [code]
      multiple.hpp [code]
      noise.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]
      pages.doxy [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_mat4.hpp [code]
      simd_vec4.hpp [code]
      simplex.hpp [code]
      spline.hpp [code]
      std_based_type.hpp [code]
      string_cast.hpp [code]
      swizzle.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_mat.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_vec.hpp [code]
      type_vec1.hpp [code]
      type_vec2.hpp [code]
      type_vec3.hpp [code]
      type_vec4.hpp [code]
      ulp.hpp [code]
      unsigned_int.hpp [code]
      vec1.hpp [code]
      vector_access.hpp [code]
      vector_angle.hpp [code]
      vector_query.hpp [code]
      verbose_operator.hpp [code]
      virtrevModules.doxy [code]
      wrap.hpp [code]
      xstream.hpp [code]
      +
      + + + diff --git a/doc/api-0.9.2/functions.html b/doc/api-0.9.2/functions.html new file mode 100644 index 00000000..4643130e --- /dev/null +++ b/doc/api-0.9.2/functions.html @@ -0,0 +1,63 @@ + + + + +Class Members + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      Here is a list of all documented class members with links to the class documentation for each member:
      +
      + + + diff --git a/doc/api-0.9.2/functions_func.html b/doc/api-0.9.2/functions_func.html new file mode 100644 index 00000000..3175293a --- /dev/null +++ b/doc/api-0.9.2/functions_func.html @@ -0,0 +1,63 @@ + + + + +Class Members - Functions + + + + + +
      +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + diff --git a/doc/api-0.9.2/index.html b/doc/api-0.9.2/index.html new file mode 100644 index 00000000..f0b129bb --- /dev/null +++ b/doc/api-0.9.2/index.html @@ -0,0 +1,59 @@ + + + + +OpenGL Mathematics + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      +
      +
      OpenGL Mathematics
      +
      +
      +

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

      +

      GLM provides classes and functions designed and implemented with the same naming conventions and functionalities than GLSL so that when a programmer knows GLSL, he knows GLM as well which makes it really easy to use.

      +

      This project isn't limited by GLSL features. An extension system, based on the GLSL extension conventions, provides extended capabilities: matrix transformations, quaternions, half-based types, random numbers, etc...

      +

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

      +

      GLM is written as a platform independent library with no dependence and officially supports the following compilers: 1. Clang 2.0 and higher 2. CUDA 3.0 and higher 3. GCC 3.4 and higher 4. LLVM 2.3 through GCC 4.2 front-end and higher 5. Visual Studio 2005 and higher

      +
      Note:
      The Doxygen-generated documentation will often state that a type or function is defined in a namespace that is a child of the glm namespace. Please ignore this; All publicly available types and functions can be accessed as a direct children of the glm namespace.
      +

      The source code is licenced under the MIT licence.

      +

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

      + +
      + + + diff --git a/doc/api-0.9.2/jquery.js b/doc/api-0.9.2/jquery.js new file mode 100644 index 00000000..c052173a --- /dev/null +++ b/doc/api-0.9.2/jquery.js @@ -0,0 +1,54 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
      "]||!O.indexOf("
      "]||(!O.indexOf("

      "]||!O.indexOf("
      "]||!o.support.htmlSerialize&&[1,"div
      ","
      "]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/
      ';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); +/* + * jQuery UI 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* * jQuery UI Resizable 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * ui.core.js + */ +(function(c){c.widget("ui.resizable",c.extend({},c.ui.mouse,{_init:function(){var e=this,j=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(j.aspectRatio),aspectRatio:j.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:j.helper||j.ghost||j.animate?j.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){if(/relative/.test(this.element.css("position"))&&c.browser.opera){this.element.css({position:"relative",top:"auto",left:"auto"})}this.element.wrap(c('
      ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidthk.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)) +{s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);; +/** + * jQuery.ScrollTo - Easy element scrolling using jQuery. + * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com + * Licensed under GPL license (http://www.opensource.org/licenses/gpl-license.php). + * Date: 2/8/2008 + * @author Ariel Flesler + * @version 1.3.2 + */ +;(function($){var o=$.scrollTo=function(a,b,c){o.window().scrollTo(a,b,c)};o.defaults={axis:'y',duration:1};o.window=function(){return $($.browser.safari?'body':'html')};$.fn.scrollTo=function(l,m,n){if(typeof m=='object'){n=m;m=0}n=$.extend({},o.defaults,n);m=m||n.speed||n.duration;n.queue=n.queue&&n.axis.length>1;if(n.queue)m/=2;n.offset=j(n.offset);n.over=j(n.over);return this.each(function(){var a=this,b=$(a),t=l,c,d={},w=b.is('html,body');switch(typeof t){case'number':case'string':if(/^([+-]=)?\d+(px)?$/.test(t)){t=j(t);break}t=$(t,this);case'object':if(t.is||t.style)c=(t=$(t)).offset()}$.each(n.axis.split(''),function(i,f){var P=f=='x'?'Left':'Top',p=P.toLowerCase(),k='scroll'+P,e=a[k],D=f=='x'?'Width':'Height';if(c){d[k]=c[p]+(w?0:e-b.offset()[p]);if(n.margin){d[k]-=parseInt(t.css('margin'+P))||0;d[k]-=parseInt(t.css('border'+P+'Width'))||0}d[k]+=n.offset[p]||0;if(n.over[p])d[k]+=t[D.toLowerCase()]()*n.over[p]}else d[k]=t[p];if(/^\d+$/.test(d[k]))d[k]=d[k]<=0?0:Math.min(d[k],h(D));if(!i&&n.queue){if(e!=d[k])g(n.onAfterFirst);delete d[k]}});g(n.onAfter);function g(a){b.animate(d,m,n.easing,a&&function(){a.call(this,l)})};function h(D){var b=w?$.browser.opera?document.body:document.documentElement:a;return b['scroll'+D]-b['client'+D]}})};function j(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); + diff --git a/doc/api-0.9.2/logo-mini.png b/doc/api-0.9.2/logo-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..80b5f9d4f9ebbac8ae697a2466cf9dac841deb5e GIT binary patch literal 8453 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 URU0!uemuZ{D#0L?3W(7E2QF^jwEzGB literal 0 HcmV?d00001 diff --git a/doc/api-0.9.2/modules.html b/doc/api-0.9.2/modules.html new file mode 100644 index 00000000..1ba2289c --- /dev/null +++ b/doc/api-0.9.2/modules.html @@ -0,0 +1,126 @@ + + + + +Modules + + + + + +
      +
      + + + + + + +
      +
      + +
      +
      +
      +
      Modules
      +
      +
      +
      Here is a list of all modules:
      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers.html b/doc/api-0.9.2/namespacemembers.html new file mode 100644 index 00000000..85e78134 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers.html @@ -0,0 +1,171 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - a -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x62.html b/doc/api-0.9.2/namespacemembers_0x62.html new file mode 100644 index 00000000..8877cc03 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x62.html @@ -0,0 +1,167 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - b -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x63.html b/doc/api-0.9.2/namespacemembers_0x63.html new file mode 100644 index 00000000..3e1c5d07 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x63.html @@ -0,0 +1,296 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - c -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x64.html b/doc/api-0.9.2/namespacemembers_0x64.html new file mode 100644 index 00000000..f5a75a46 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x64.html @@ -0,0 +1,232 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - d -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x65.html b/doc/api-0.9.2/namespacemembers_0x65.html new file mode 100644 index 00000000..9811cf5f --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x65.html @@ -0,0 +1,138 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - e -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x66.html b/doc/api-0.9.2/namespacemembers_0x66.html new file mode 100644 index 00000000..bd3a989b --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x66.html @@ -0,0 +1,530 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - f -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x67.html b/doc/api-0.9.2/namespacemembers_0x67.html new file mode 100644 index 00000000..c01cbdf0 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x67.html @@ -0,0 +1,98 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - g -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x68.html b/doc/api-0.9.2/namespacemembers_0x68.html new file mode 100644 index 00000000..56731e11 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x68.html @@ -0,0 +1,344 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - h -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x69.html b/doc/api-0.9.2/namespacemembers_0x69.html new file mode 100644 index 00000000..7626e5f1 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x69.html @@ -0,0 +1,291 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - i -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x6c.html b/doc/api-0.9.2/namespacemembers_0x6c.html new file mode 100644 index 00000000..de115a72 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x6c.html @@ -0,0 +1,287 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - l -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x6d.html b/doc/api-0.9.2/namespacemembers_0x6d.html new file mode 100644 index 00000000..ba0f9687 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x6d.html @@ -0,0 +1,365 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - m -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x6e.html b/doc/api-0.9.2/namespacemembers_0x6e.html new file mode 100644 index 00000000..d1aa29cd --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x6e.html @@ -0,0 +1,114 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - n -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x6f.html b/doc/api-0.9.2/namespacemembers_0x6f.html new file mode 100644 index 00000000..f8460a1f --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x6f.html @@ -0,0 +1,105 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - o -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x70.html b/doc/api-0.9.2/namespacemembers_0x70.html new file mode 100644 index 00000000..53c9ac31 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x70.html @@ -0,0 +1,155 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - p -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x71.html b/doc/api-0.9.2/namespacemembers_0x71.html new file mode 100644 index 00000000..9dc06e76 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x71.html @@ -0,0 +1,89 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - q -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x72.html b/doc/api-0.9.2/namespacemembers_0x72.html new file mode 100644 index 00000000..a345c85b --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x72.html @@ -0,0 +1,139 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - r -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x73.html b/doc/api-0.9.2/namespacemembers_0x73.html new file mode 100644 index 00000000..33961257 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x73.html @@ -0,0 +1,177 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - s -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x74.html b/doc/api-0.9.2/namespacemembers_0x74.html new file mode 100644 index 00000000..688f03ee --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x74.html @@ -0,0 +1,115 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - t -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x75.html b/doc/api-0.9.2/namespacemembers_0x75.html new file mode 100644 index 00000000..0a407e2f --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x75.html @@ -0,0 +1,281 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - u -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x76.html b/doc/api-0.9.2/namespacemembers_0x76.html new file mode 100644 index 00000000..40cb6936 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x76.html @@ -0,0 +1,104 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - v -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x77.html b/doc/api-0.9.2/namespacemembers_0x77.html new file mode 100644 index 00000000..2da2a2a8 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x77.html @@ -0,0 +1,83 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - w -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_0x79.html b/doc/api-0.9.2/namespacemembers_0x79.html new file mode 100644 index 00000000..76afddbc --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_0x79.html @@ -0,0 +1,92 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +
      Here is a list of all documented namespace members with links to the namespaces they belong to:
      + +

      - y -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func.html b/doc/api-0.9.2/namespacemembers_func.html new file mode 100644 index 00000000..7ee49704 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func.html @@ -0,0 +1,170 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      + + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x62.html b/doc/api-0.9.2/namespacemembers_func_0x62.html new file mode 100644 index 00000000..99ac7770 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x62.html @@ -0,0 +1,112 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - b -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x63.html b/doc/api-0.9.2/namespacemembers_func_0x63.html new file mode 100644 index 00000000..8f803f8a --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x63.html @@ -0,0 +1,157 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - c -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x64.html b/doc/api-0.9.2/namespacemembers_func_0x64.html new file mode 100644 index 00000000..936b0221 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x64.html @@ -0,0 +1,138 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - d -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x65.html b/doc/api-0.9.2/namespacemembers_func_0x65.html new file mode 100644 index 00000000..9a1a5e13 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x65.html @@ -0,0 +1,137 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - e -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x66.html b/doc/api-0.9.2/namespacemembers_func_0x66.html new file mode 100644 index 00000000..0a1cff6c --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x66.html @@ -0,0 +1,250 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - f -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x67.html b/doc/api-0.9.2/namespacemembers_func_0x67.html new file mode 100644 index 00000000..4696e10c --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x67.html @@ -0,0 +1,97 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - g -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x68.html b/doc/api-0.9.2/namespacemembers_func_0x68.html new file mode 100644 index 00000000..20e755ff --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x68.html @@ -0,0 +1,94 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - h -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x69.html b/doc/api-0.9.2/namespacemembers_func_0x69.html new file mode 100644 index 00000000..d0251eac --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x69.html @@ -0,0 +1,142 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - i -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x6c.html b/doc/api-0.9.2/namespacemembers_func_0x6c.html new file mode 100644 index 00000000..26937899 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x6c.html @@ -0,0 +1,130 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - l -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x6d.html b/doc/api-0.9.2/namespacemembers_func_0x6d.html new file mode 100644 index 00000000..e7c66d56 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x6d.html @@ -0,0 +1,171 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - m -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x6e.html b/doc/api-0.9.2/namespacemembers_func_0x6e.html new file mode 100644 index 00000000..290db3e6 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x6e.html @@ -0,0 +1,113 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - n -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x6f.html b/doc/api-0.9.2/namespacemembers_func_0x6f.html new file mode 100644 index 00000000..0a31dbab --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x6f.html @@ -0,0 +1,104 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - o -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x70.html b/doc/api-0.9.2/namespacemembers_func_0x70.html new file mode 100644 index 00000000..d8de0be7 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x70.html @@ -0,0 +1,154 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - p -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x71.html b/doc/api-0.9.2/namespacemembers_func_0x71.html new file mode 100644 index 00000000..f1b5bf85 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x71.html @@ -0,0 +1,82 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - q -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x72.html b/doc/api-0.9.2/namespacemembers_func_0x72.html new file mode 100644 index 00000000..67a7b184 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x72.html @@ -0,0 +1,138 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      + + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x73.html b/doc/api-0.9.2/namespacemembers_func_0x73.html new file mode 100644 index 00000000..4842f874 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x73.html @@ -0,0 +1,173 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - s -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x74.html b/doc/api-0.9.2/namespacemembers_func_0x74.html new file mode 100644 index 00000000..63736415 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x74.html @@ -0,0 +1,114 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - t -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x75.html b/doc/api-0.9.2/namespacemembers_func_0x75.html new file mode 100644 index 00000000..5f88ff36 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x75.html @@ -0,0 +1,160 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - u -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x76.html b/doc/api-0.9.2/namespacemembers_func_0x76.html new file mode 100644 index 00000000..131232b3 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x76.html @@ -0,0 +1,94 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - v -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_func_0x79.html b/doc/api-0.9.2/namespacemembers_func_0x79.html new file mode 100644 index 00000000..f2241abb --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_func_0x79.html @@ -0,0 +1,91 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - y -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type.html b/doc/api-0.9.2/namespacemembers_type.html new file mode 100644 index 00000000..23b424df --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type.html @@ -0,0 +1,125 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - b -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type_0x63.html b/doc/api-0.9.2/namespacemembers_type_0x63.html new file mode 100644 index 00000000..414ec714 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type_0x63.html @@ -0,0 +1,209 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - c -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type_0x64.html b/doc/api-0.9.2/namespacemembers_type_0x64.html new file mode 100644 index 00000000..fb32c617 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type_0x64.html @@ -0,0 +1,164 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - d -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type_0x66.html b/doc/api-0.9.2/namespacemembers_type_0x66.html new file mode 100644 index 00000000..36281675 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type_0x66.html @@ -0,0 +1,350 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - f -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type_0x68.html b/doc/api-0.9.2/namespacemembers_type_0x68.html new file mode 100644 index 00000000..750f2d5f --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type_0x68.html @@ -0,0 +1,320 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - h -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type_0x69.html b/doc/api-0.9.2/namespacemembers_type_0x69.html new file mode 100644 index 00000000..3e417867 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type_0x69.html @@ -0,0 +1,218 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - i -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type_0x6c.html b/doc/api-0.9.2/namespacemembers_type_0x6c.html new file mode 100644 index 00000000..535b1c32 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type_0x6c.html @@ -0,0 +1,227 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - l -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type_0x6d.html b/doc/api-0.9.2/namespacemembers_type_0x6d.html new file mode 100644 index 00000000..22950484 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type_0x6d.html @@ -0,0 +1,263 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - m -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type_0x71.html b/doc/api-0.9.2/namespacemembers_type_0x71.html new file mode 100644 index 00000000..4c2fef8e --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type_0x71.html @@ -0,0 +1,77 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - q -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type_0x73.html b/doc/api-0.9.2/namespacemembers_type_0x73.html new file mode 100644 index 00000000..60aa1ae3 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type_0x73.html @@ -0,0 +1,74 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - s -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type_0x75.html b/doc/api-0.9.2/namespacemembers_type_0x75.html new file mode 100644 index 00000000..37058c15 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type_0x75.html @@ -0,0 +1,191 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - u -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type_0x76.html b/doc/api-0.9.2/namespacemembers_type_0x76.html new file mode 100644 index 00000000..2a0f1378 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type_0x76.html @@ -0,0 +1,80 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - v -

      +
      + + + diff --git a/doc/api-0.9.2/namespacemembers_type_0x77.html b/doc/api-0.9.2/namespacemembers_type_0x77.html new file mode 100644 index 00000000..729660e2 --- /dev/null +++ b/doc/api-0.9.2/namespacemembers_type_0x77.html @@ -0,0 +1,74 @@ + + + + +Namespace Members + + + + + +
      +
      + + + + + + +
      +
      + + + + +
      +
      +  + +

      - w -

      +
      + + + diff --git a/doc/api-0.9.2/namespaces.html b/doc/api-0.9.2/namespaces.html new file mode 100644 index 00000000..b90514b5 --- /dev/null +++ b/doc/api-0.9.2/namespaces.html @@ -0,0 +1,133 @@ + + + + +Namespace List + + + + + +
      +
      + + + + + + +
      +
      + + +
      +
      +
      +
      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 4.10.6 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::exponentialDefine all exponential functions from Section 8.2 of GLSL 1.30.8 specification. Included in glm namespace
      glm::core::function::integerDefine integer functions from Section 8.8 of GLSL 4.00.8 specification
      glm::core::function::matrixDefine all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace
      glm::core::function::packingDefine packing functions from section 8.4 floating-point pack and unpack functions of GLSL 4.00.8 specification
      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.6 of GLSL 1.30.8 specification
      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::precision< Namespace for precision stuff
      glm::gtcG-Truc Creation stable extensions
      glm::gtc::half_float< GLM_GTC_half_float extension: Add support for half precision floating-point types
      glm::gtc::matrix_access< GLM_GTC_matrix_access extension: Set a column or a row of a matrix
      glm::gtc::matrix_integer< GLM_GTC_matrix_integer extension: Add integer matrices
      glm::gtc::matrix_inverse< GLM_GTC_matrix_inverse extension: Inverse matrix functions
      glm::gtc::matrix_transform< GLM_GTC_matrix_transform extension: Add transformation matrices
      glm::gtc::quaternion< GLM_GTC_quaternion extension: Quaternion types and functions
      glm::gtc::swizzle< GLM_GTC_swizzle extension
      glm::gtc::type_precision< GLM_GTC_type_precision extension: Defined types with specific size
      glm::gtc::type_ptr< GLM_GTC_type_ptr extension: Get access to vectors & matrices value type address
      glm::gtxG-Truc Creation experimental extensions
      glm::gtx::associated_min_max< GLM_GTX_associated_min_max extension: Min and max functions that return associated values not the compared onces
      glm::gtx::bit< GLM_GTX_bit extension: Allow to perform bit operations on integer values
      glm::gtx::closest_point< GLM_GTX_closest_point extension: Find the point on a straight line which is the closet of a point
      glm::gtx::color_cast< GLM_GTX_color_cast extension: Conversion between two color types
      glm::gtx::color_space< GLM_GTX_color_space extension: Related to RGB to HSV conversions and operations
      glm::gtx::color_space_YCoCg< GLM_GTX_color_space_YCoCg extension: RGB to YCoCg conversions and operations
      glm::gtx::compatibility< GLM_GTX_compatibility extension: Provide functions to increase the compatibility with Cg and HLSL languages
      glm::gtx::component_wise< GLM_GTX_component_wise extension: Operations between components of a type
      glm::gtx::epsilon< GLM_GTX_epsilon extension: Comparison functions for a user defined epsilon values
      glm::gtx::euler_angles< GLM_GTX_euler_angles extension: Build matrices from Euler angles
      glm::gtx::extend< GLM_GTX_extend extension: Extend a position from a source to a position at a defined length
      glm::gtx::extented_min_max< GLM_GTX_extented_min_max extension: Min and max functions for 3 to 4 parameters
      glm::gtx::fast_exponential< GLM_GTX_fast_exponential extension: Fast but less accurate implementations of exponential based functions
      glm::gtx::fast_square_root< GLM_GTX_fast_square_root extension: Fast but less accurate implementations of square root based functions
      glm::gtx::fast_trigonometry< GLM_GTX_fast_trigonometry extension: Fast but less accurate implementations of trigonometric functions
      glm::gtx::gradient_paint< GLM_GTX_gradient_paint extension: Compute a radient gradient according section OpenVG 1.1 specifications, 9.3.2 Radial Gradients
      glm::gtx::handed_coordinate_space< GLM_GTX_handed_coordinate_space extension: To know if a set of three basis vectors defines a right or left-handed coordinate system
      glm::gtx::inertia< GLM_GTX_inertia extension: Create inertia matrices
      glm::gtx::int_10_10_10_2< GLM_GTX_int_10_10_10_2 extension: Add support for integer for core functions
      glm::gtx::integer< GLM_GTX_integer extension: Add support for integer for core functions
      glm::gtx::intersect< GLM_GTX_intersect extension: Add intersection functions
      glm::gtx::log_base< GLM_GTX_log_base extension: Logarithm for any base. base can be a vector or a scalar
      glm::gtx::matrix_cross_product< GLM_GTX_matrix_cross_product: Build cross product matrices
      glm::gtx::matrix_interpolation< GLM_GTX_matrix_interpolation extension: Add transformation matrices
      glm::gtx::matrix_major_storage< GLM_GTX_matrix_major_storage: Build matrices with specific matrix order, row or column
      glm::gtx::matrix_operation< GLM_GTX_matrix_operation: Build diagonal matrices
      glm::gtx::matrix_query< GLM_GTX_matrix_query: Query to evaluate matrix properties
      glm::gtx::mixed_product< GLM_GTX_mixed_product extension: Mixed product of 3 vectors
      glm::gtx::multiple< GLM_GTX_multiple: Find the closest number of a number multiple of other number
      glm::gtx::noise< GLM_GTX_noise extension: Comparison functions for a user defined epsilon values
      glm::gtx::norm< GLM_GTX_norm extension: Various way to compute vector norms
      glm::gtx::normal< GLM_GTX_normal extension: Compute the normal of a triangle
      glm::gtx::normalize_dot< GLM_GTX_normalize_dot extension: Dot product of vectors that need to be normalize with a single square root
      glm::gtx::number_precision< GLM_GTX_number_precision extension: Defined size types
      glm::gtx::ocl_type< GLM_GTX_ocl_type extension: OpenCL types
      glm::gtx::optimum_pow< GLM_GTX_optimum_pow extension: Integer exponentiation of power functions
      glm::gtx::orthonormalize< GLM_GTX_orthonormalize extension: Orthonormalize matrices
      glm::gtx::perpendicular< GLM_GTX_perpendicular extension: Perpendicular of a vector from other one
      glm::gtx::polar_coordinates< GLM_GTX_polar_coordinates extension: Conversion from Euclidean space to polar space and revert
      glm::gtx::projection< GLM_GTX_projection extension: Projection of a vector to other one
      glm::gtx::quaternion< GLM_GTX_quaternion extension: Quaternion types and functions
      glm::gtx::random< GLM_GTX_random extension: Generate random number from various distribution methods
      glm::gtx::raw_data< GLM_GTX_raw_data extension: Projection of a vector to other one
      glm::gtx::reciprocal< GLM_GTX_reciprocal extension: Define secant, cosecant and cotangent functions
      glm::gtx::rotate_vector< GLM_GTX_rotate_vector extension: Function to directly rotate a vector
      glm::gtx::simd_mat4< GLM_GTX_simd_mat4 extension: SIMD implementation of mat4 type
      glm::gtx::simd_vec4< GLM_GTX_simd_vec4 extension: SIMD implementation of vec4 type
      glm::gtx::spline< GLM_GTX_simplex extension: Spline functions
      glm::gtx::std_based_type< GLM_GTX_std_based_type extension: Add support vector types based on C++ standard type
      glm::gtx::string_cast< GLM_GTX_string_cast extension: Setup strings for GLM type values
      glm::gtx::transform< GLM_GTX_transform extension: Add transformation matrices
      glm::gtx::transform2< GLM_GTX_transform2 extension: Add extra transformation matrices
      glm::gtx::ulp< GLM_GTX_ulp extension: Precision calculation functions
      glm::gtx::unsigned_int< GLM_GTX_unsigned_int extension: Add support for unsigned integer for core functions
      glm::gtx::vector1::precision< GLM_GTX_vec1 extension: 1 component vector
      glm::gtx::vector_access< GLM_GTX_vector_access extension: Function to set values to vectors
      glm::gtx::vector_angle< GLM_GTX_vector_angle extension: Compute angle between vectors
      glm::gtx::vector_query< GLM_GTX_vector_query extension: Query informations of vector types
      glm::gtx::verbose_operator< GLM_GTX_verbose_operator extension: Use words to replace operators
      glm::gtx::wrap< GLM_GTX_wrap: Wrapping mode using my texture samping
      glm::virtrevVIRTREV extensions
      glm::virtrev_glmext::xstreamGLM_VIRTREV_xstream extension: Streaming vector and matrix in a xml way
      +
      + + + diff --git a/doc/api-0.9.2/nav_f.png b/doc/api-0.9.2/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..1b07a16207e67c95fe2ee17e7016e6d08ac7ac99 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQfZzpjv*C{Z|{2YIT`Y>1X`Eg z-tTbne1`SITM8Q!Pb(<)UFZ(m>wMzvKZQqKM~~GcZ=A7j<~E6K62>ozFS=cD3)mf8 z9WX0+R&m(l9KUsLdTx4?9~({T__KA%`}olPJ^N;y|F^pHgs_K%!rj~{8>RwnWbkzL Kb6Mw<&;$VTdq1fF literal 0 HcmV?d00001 diff --git a/doc/api-0.9.2/nav_h.png b/doc/api-0.9.2/nav_h.png new file mode 100644 index 0000000000000000000000000000000000000000..01f5fa6a596e36bd12c2d6ceff1b0169fda7e699 GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr8!2~3AUOE6t1`SUa$B+ufw|6&kG8phMJMJ~w va4>Y+bZ&9QY?(VEUPY_cGd9nQ`um^ZSUyYpAAuKhL7F^W{an^LB{Ts5DmojT literal 0 HcmV?d00001 diff --git a/doc/api-0.9.2/open.png b/doc/api-0.9.2/open.png new file mode 100644 index 0000000000000000000000000000000000000000..7b35d2c2c389743089632fe24c3104f2173d97af GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vww^AIAr*{o=Nbw!DDW^(zOibV zl!F8B0?t?i!vld4k#$~0_AX3zElaoknau9@iXhZTrl-TjWj9jM#?{xt`6uU{<)jb9Suc^QnbhJ(o{ib8=j9u0_mE8M7kgF7f<7W7IEf=8(L_qx|g0H;V7iPxm&Q@G7p8W2Kx&iT|YUM=ITC zY<0Qbr;u&AtXD{o@41wH=7&d8=2Z_{M9Tsa=g*t*@A3H$UOlxZk7?f6RUWpx>Fc_L s#LQ{edY3MpIXkMeV^&YV=9fR%8Jv|Kya=#u06K}m)78&qol`;+0RKEt)&Kwi literal 0 HcmV?d00001 diff --git a/doc/api-0.9.2/tab_s.png b/doc/api-0.9.2/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..978943ac807718de0e69e5a585a8f0a1e5999285 GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QZ1e?jv*C{Z|}b5Yzkm-c<7z3 zq^cq0=~}Z;b(!Zvb5Z%sTRFKGlz1=qOFg;myyu?$r`wZb^irPsN1a)6)TwB0r+)wb zPL25;=adu89?fTK`qDR>$D*)b_WOmdKI;Vst02j(hg8%>k literal 0 HcmV?d00001 diff --git a/doc/api-0.9.2/tabs.css b/doc/api-0.9.2/tabs.css new file mode 100644 index 00000000..636277d9 --- /dev/null +++ b/doc/api-0.9.2/tabs.css @@ -0,0 +1,79 @@ +.tabs, .tabs2, .tabs3 { + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFEEDD 95%, #FFEEDD); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.95,#FFEEDD), to(#FFEEDD)); + + /*background-image: url('tab_b.png');*/ + background-color:#FFF8F0; + width: 100%; + z-index: 101; + font-size: 13px; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFEEDD 95%, #FFEEDD); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.95,#FFEEDD), to(#FFEEDD)); + + /*background-image: url('tab_b.png');*/ + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFEEDD 95%, #FFEEDD); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.95,#FFEEDD), to(#FFEEDD)); + + /*background-image:url('tab_s.png');*/ + background-repeat:no-repeat; + background-position:right; + color: #FF8000; + /*text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);*/ + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFEEDD 95%, #FFEEDD); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.95,#FFEEDD), to(#FFEEDD)); + + /*background-image: url('tab_h.png');*/ + background-color:#FFFEFD; + background-repeat:repeat-x; + color: #FF8000; + /*text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);*/ + text-decoration:underline; +} + +.tablist li.current a { + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 5%, #FFEEDD 95%, #FFEEDD); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.05,#FFFFFF), color-stop(0.95,#FFEEDD), to(#FFEEDD)); + + /*background-image: url('tab_a.png');*/ + background-color:#FFFEFD; + background-repeat:repeat-x; + color: #FF8000; + /*text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);*/ +} diff --git a/doc/glm-0.9.2.pdf b/doc/glm-0.9.2.pdf index 79a797313ce70ba8c9ccc319224518804410f80b..77a85cde4ad4656ee912fba33a962b31ff1983b9 100644 GIT binary patch delta 86523 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

      UR<6%E6(Fs*ap z>+0jBG`Cld*onoDxW4MS+G*VgxyYCcN;a;mSsgq#fVqp6y3XS;pe~KcX+6_$UGv82 z*|E5PvM-lsXJqWTCL}t|{_KU@E&#|HzpwYS`x6ursy7z3c<^_%8>TwItUvU{lX?>; zcim6yFH)+AZbLl_@toJh#?My=xK~)|Z$A26^YL%(R$Z(-szu89y^qkJxwwkb)47f- zwt2&GBZK&79h0Aj;%793?Q&2hbrG7Vbz9rhe;j{nsKg5en#Od0==>_q#8ok}svBs@ z7Zy-A=JmSiRW$A*7~B!N_q9ICNwu+JYnu`!cWLb%h*}{>Y;SCuG348*ztoRyX7TyP zeEx2x`dEtKYuV^do?`u)u->DGZcTHJ?-6eoSFTb^`0ZlFYkvLG*OiTv!W#o`#(lap zD#q1PM;x79yo5+j|E+*Pkht!m^|;9a=E zdMxU^BSf@y&YO7iXVxj2`K}(yrE|{jpE5lbV_vBT(EM*1$s0!3qPs2T%5TLSZa4a( z@osa<*!}+Lx}osYAA?HCe*Evv@VBH7C5O+P-s2u*AyZ^})q;JDUPJO%{7>5BUeNq* zF*^youIuP)udY>o$x2yz4Yh5CSizua+ioX1(dhB&3XsQoQxpKJm z%#B4gY5j>DyLP~efP&9ff>f5D9p*EZT$HfVvuTvmpudWntnOmc{%dl?Q|0IPD6pKcCEl`4T2J5{WJxyd)?CUpmC^>3 zP^W7+*QS552yOf$OJ8A2>c;68$@&thCwS*zoGU#P%mH{Jnw6zV{0C>T|t#H)6VNTI-Pu;9GCe=*1i~1lnwk$FLEMNiX66h~3`$DJ9jzyb zZ1@W8A3esQJQ%ko<1nZzTl>ELsZ3lh$hGWtpC3%ijkY-(6A*aljPB8xw@g7TvTlJ5 z_ho{nr&l7?k0tAgXmb-oKY@dtl-f$g*5z5dPSAHpz9$c-Mw3$MhL=VgDD0&Q@vfoy z0G?i{JSKCmgijAb6fP&}h=( zzNERL{pXo${yL*bueT!<7dT!2_bMt5@5vhHde&UvLOAJOz8jNkU zOpG;Zlrykb#g2eurZcY#*iXowPCe1s7S6T$KB{AG_C!#Nk&8T4lboT&_0^5HauwsU zMnW$75i{PAX${N6a<`=w4Vk0@pRC3#i~bqZIHS%LKC`x8X4O-B7K&?gUAR`TVb?Ws zjp)we8EhIJF+(g;W;MAsKzsXF&%;NCxZ&ZxH}!5Ce)QW_ae*yr%>JKVD4trcWIdwG z>{k2M`=9l~AnlbWKVI}{C#wv$GijORe`(nK!i(Jv&u4bQxwhTyHKc>F(@BrdG*`H1 z#>+oj5nOv6!Eo^FsMHH}lk3n!0n_$@6*uG2L$$60+Qh*pW&vkJ-b-IL086lGBloXTOcd*oatvFhm)rFaMiCgc9mNr8B$i} zaYF~X$R@q?M57kksR&aG)9#s<9~YS{+P<0Dm@hjyu6z#eh$f85oY|gY1-p%NLGbN| z?_Dg3xB$KDx<@hvzw|=!#itsb%WwCxk2(%)vJBo+O$kdEvMK81&5^q8#2%>-`^PPW z`AG9{vfA2B-~29@UBPrG#}_+L+{E1>JSx?xmk> zB^G-46S7Y{pih|nIeyN_?+b6~?<>NJsO$FxmWlQ;Cx9bv{4^+Fs>PRIKIYtHALFJI zf3NVQy{q^S_-^S1D*c=)cYQDA$#tL$aSZs~3Z@ndQ^UeK77I~ZTFKk$Nf{vTTTHp} z$fKhF(Ib%GU>+~*NeMd`C3?ixC;i|Rvo;-*jZ>Eu7R8&}tg#>YM?UwCt@k^9n6zsl z2K%QqRoxjMKRxXluzEKy%q6WO?7RVrLSoYN*?_7_1O|B z3(?oPdO?gz7i6T2-zQ=nx6H%8%lk?2l&=JbaJRI@I5GBzcuxH3e4W0J;M86V&WWtR zInf=)ej`y#sKuUYdB1zrHxojYrJae4X+`NN#yXPW40d9B9fsmt6(?=?yWX z?F7%4emI6Xx7UJ6b^duOT_@~m?`yJNldDZFHg_>l8)>q;6r0GQu}4o%x)-FSv&Ama zk>8S*lrRDVeF}1o=6@ph=@<$Nakqn#W$MyWMF%7IOz(sj`BuUg@V^6R%;H1w&Z*ySi}a;u5CT3vsH;H`g?QUMwW-z{lj1D;2c%ZxxJwa zeKQB**>_8|vJVLvyH*58be3U@88Wi4Cy`txsCL!kL{1U39xsz z^|MZBHU#x1!l!<@bf4|`46b1RwkcGe2lBuy1Ncm`N<-V2P-c zZHIWG_51nFP97n*!jN++Jlh&3EY2*V(~r`)T8YGwH`Gr>(N@p0>dGZ=Vebp;9jzZ!&W{L7ne>oo~$`PON0MV8gvU?t0pWl>J-R zXYC7&|M1KB9^Lr*tC>OleuDm&#{PWYI$c^Z5ohtocT5kh$R6vv-JY(Z6@P@=Ny3|7 zCi^-YBN2YqR2g|c*xm74Bsj{}7Tp-=yd5qU)7GN6ueVY$8{|%g`|-E;z`0YH7}#E$ zcXQQatv1BN`7dCqlZQ?A$(wgOEOFluI=%7c!HehFJ~2{hVd-ZjB*#PBM5O0)s5+z_<}=`zsItEibAwhe zoZ-C5T4CW}fph5gJM(+~w^@S)2VEnc5nLjokA&7g9eoN9KcR$BV<%Rdnpj3;0aao? zQmnAQf1L_-;5bw`ZJSkB`E$SCn4Ca=Ri)29 zqi{lUP;P=VM-5-&fi^Kb?(6oGb_78^fD+(W|)*0i40rIVyik4-6! zT*yAw{FLjY{I}e^e^N{LGli#ee~_~%JnfTX%UN>mIG4; zJ+N`5$l8kKLsDG_j=p=j|73(%%h%#T`p_oxKaad=S}%I(oB&S7PVM|n7ucKf{-|G> zlTB_UCOS%8^61s)JR0&rYUL#Ni^i8em!g`@r?M|yE)>d+gC7ss^%i@`Hj=yyR7<=4jIu?SaIAMfa$NmSj{z$89CIPg|3(R&9yp)(snXYv$ZO zCbeA7R$jkk_hI7APgSS8i^(4)g`6Mf9<3u{U0l0#P-j7h))^~Z>fnt?Vs!u;f%zfE zSGh4ZXKT>P{rDn>O8HQYQBkW%QEs-sYmcwV-O|huZX4(chfme@JH~0?CP{gy^uLT~ znp)k%7;3cq`rr+_{Kbadx+~1DQfvDe`Fk#UFdK_4%>Q)UQvQT?YSil~+dq^*Y*5Is z6jZn1osRXJV*lJK`Qoxz`=>T ze|HK#k2UX*;?nlCa)_8YZGSsxyMe)e-Db%hT=usY!z(uZi>uYl+^?vI)XZ$&{GirPMh zg8>bKt25(?;%bjT&XV(IJ`}{MfH=fwl5zXU%F6<&Afd6uOLWE|r&d`~GFp3$yP)Tm zAE!nuathK+dNhxCwmyRlpAauC=PHZN{JP<3b*zU-cn_Y;r>q9Xyb^4RepShg7ZO_B^jt zm$hH4|6D!Oy|59$S8+V+b8ba>0{v4BW5Eg9s7*HZ!Oj=%&vY3Ej!=JQ^Ys$WdFwxV zLL=MTTrl?ap$7ZXA7ykzd5-tF45xy!LcUo&w1S#<<{8Z_aBSNmz^6^Kcz19 zMleaM&*aONu^q==NmqFebWKH0VOZdEJv7&X7QC*V1|qJfI`Y2OdB7MwdnnM)ux)y# zPqJd%Hrlt1PIJXChIth1+vnf1Y85OykK}kuZWLIPQa|kO3a#gGLE@P5&~xub#}c*q z(@8uUZOx4Nekb1#hukC9vh6Kfj;TM9l=3|A{xrW^>eS)=2VCbnV`P;6rkD~eh~>WY zgccoaJ2&_>%Cxs#(T}vws(SEyj~5%!z4?!vWN!TtTPTZOq*v>_*!|^O!H05o$It~A zDcj}WVpPRh?Pssh-)>VN`plILCoXH;{9Ld|!xB(d$E8rneZ1$d)?Y6czCy9l5V44IYH6snLb^n71mOykR=LF1bTp736ja|JK`|Jl|5rCWS0qRjJIPlJ-f;OyC-PZH2MY;dOj z#I_3?5=$Q6%Vi5Ds0~cO!pDcxuvfi>9gh8x6o30e5}bg;X9DKgLRD2a&pWP} zxm4hX+h?F%GAvZDaVVBOx(9xw#vS+yzuj&<4EO;;R{RDH(evuQOcJMc)sEq zPUc3_T|8qMcLsL=jzM)L%M2tJ3$#j#&?vibCE_15d4Bq?az4VyoMn|w3=^H|tu_VK z)Z>Rz4J5GD=e%65?-oLaqq$rSi#MVj7`G8KB}3w2Vw^5#jSr%%!LOA&2` z1kYOVWR={WYqC+U_wY>Io3MWVTN}7zsFI9h&s`#B|CAL>E=x!grNnd7LS! zsp0+nqSr&zl@}8lfhCu7@PnIE-HwX8;XFdwLcAO=OFc(dsyDaS&1WG{NOrdho< zQY(86D&%MCmbs*b^gv#A^f_X=VVakcmSjh@xNygG zfrz-PjEP{VU*CML2o0ld$@@xkk05y;%hUAbA!^BgW&f~W(6G|5y?x|jfYm1%n%@0o z<0wq61m7D4&UzEmBkzRVJ}UTG z=V3T^tjp3r4@2(lxyYyF>3+Al7=C`MPJKUpZ2bE(aE7NUGO09QboSF(N%0_yxJTd^ zFNCHvL?PMnOlX1}w>+Ha84ShOw;qbN|7<_;LR~{Z;^D)YBGbSHk-fgkUq6JV#@tR< zwQg*~9O~!lYwh{v@#Zk`!9QUcChdvL9rp5PH^1n7NblZb?kmE&SF>}8cDwm#scOae zdZumW->)mx*jkB)cV@h0?BW!JEVZ?*T8fba&ZG^>3kk#l8KD*S-$#+Yd6EYqq^Owu)sbwR^f^EwizX z9eoR^2>(kzhcZ;B;H2f5pI)F&&D2fsJGc?0x||z7MxM_v7qhJlnriT*_FG-UG~hhw;`0bk2D@1l#U9Lh?`n>4oZyT(AIT!n`PU7zCRk&6Eqe7e z_G%i=nLQG(w0VRs^4I8VjJb0E?E=$or}9PX{iY=*7Navhhj~k@b-aCE zxr@}f`>P(fS*7K>I6KZV?^Q6lTV>Zjn{&>lmv1d+%@H-jy8Sln*B)l6Z)p@At2K@( zHKt;hK+97;EBF8RRXMD@68v2`{g`nPDh5tPasMbqxk1><)L07g10!@WSp6_Hb?oyUq=Z5eNg`ih;j|huqV9-YBNAhiX5lFDpct zz6af1IQ3t_73lGd1QfJ*I_9}F)gFjxHXaIG+PQF-0-quPZ;Il;>ssLREAS7{;n$V1 z;6o1o{k8xW1NX@}P}&{-`90~4W~2ak(*XVg0;vEbx8fSZs!GiTQ7;5Q+^e$C`-RMX z;FtNNH)Fxe)!=;;a65U(d4U6Zim2If$SWJ*Jq}n6K6RuBKHag%0r9OJ0L4|Iu_X^E zVdsB+_~TUI!#wcYnPBk2*G`l$5W_n7&JhXKXCp}{YS8I;D0JNka$S{xL^n+Lk-h^% z*5bgMQD_C|(S}gWvoR{6C(hJpc0{%VfF|Mrz!B5rNNoa?@HIsVzlTpCDZ%Id4j`pT zG712?1cw02U|J#oNwx!k_u+9Q3wyDK{kbh*age73$-`MB0 zZXBVavdiJyO5$3^v+ctTCn{Kh4!BJ8OT_Q9OpIGI~MKC^QQ zC%vwE&gP%bb)9-9i2o-^X-n_pKN}ZUIkQeEbMj|-9{)M|eXq)9*rl0tPy9dAt1Ax% z3_Dv*XCDmE^4MQp3rsnX1<*`w*8=e8X3)o+KAUO*y2(%K4+e&OeSful5KYQLuzTsQ7@PNv3}y_bY?=qq#y!MW z33VbJc3Ho!dHdJSwTy6v?#{d?^jr0iQ@%OF@=#&IQh4oNhD%r7wd<(4KOgi8_ohQR z9iJ)tB>zD0T1Q#c74E)h!(5cxy$Zv3jTa6G#+dR@>Cx<$Y7U6WWz$drm>kW{x=eHO@9 zTFFfbO^Rrg%Y)zP# zp2ySZ?wL;NkXpkreU^^7s)4WNy|pQ-A(I|+?nTd}T`kZ5xL4|A@Qa^{!*r+9!c7e3o`I{K)UC-bB_*Hco9x zM^h^5XKLJ^YcU77uO=&sRn{_xzY~{X*m@V&cVm;L8&$kUd^1{C-?lA>+jeB*m8RHKaTSFguf#CH{5h3|!;1kivdOkd&pES3&b;L^oppKXn4e;iaU=74{Z^M+ z+6nHt#iCsV&!-7Nc-8xPWry^LeHorF6<ggHMJc}#uto%68Y_x$RC8?pIJY(}~fbB7%ypwhxEwW-c5V&_+f6DhH6 zLT%MiljDIC);*q!`);1}a0q^Cuim3zE!EM#`Lf<(UW3VZDchImeWdV^`kF`Hw9&?7 zydXz&#kZWFgQa=$Lm{QT--acI4)ut8g&W;|Z(Bc{6~dfUUc33MB421e&~e$bUZ`Q# zx93ZdRmrT&c6|F^2izXV*&-s-#;L#?IPoz%t3O89vOdk`+z1+sUBJ$7%ST~aSh8JB z`#emg9T}6}Y};6v&$dU~n_`?Qn1!!heEdW5XTYb6Cm2jeGcG+^H0#N(5Hde@Ii;4R z*!yjfSx=3-Jxh|EzieIxL#wZUE%TMq$LE;ya$>zi>@D z3WBY6JIS7Gg|dzoQMR&OWX~>3QX_;yNF;m7l0rzoLb=l%J8|G0DSd7jsK&T`Lo@7(8gitTIc`HInTifZH(md|G+Sx%j6Q(ncy^v)G4 z>KX_$DRpI+3Jo!mYBfBHQ9XT%?E$v3D=lcbXu#7;B|(I9;2Gc1+z73R6Z9NsZ??E@ zZ;2@OELYF2=JU$;gBOgurOTUCn9X#(U;K6l7-~+F?J~UHI&bcQdca)stGpzo`|4A- z2%aCOy}jQDT#v}A{PyKesk)s}DaJKH>Z;s~=i7zPMV_=LpI4;apL)t4Z2uHxk!;fZ zPUiCj!l}!SWOekX=u}`UUwgv?qOqS$*w}`;mkU9(A)UlyRAsRXisdfa-Hu(Ya$-aL zW(j7g>w?89EaF!CpYivb${T1-CMQOc7aQM&s6-|1mDHHNiJ5!b?K``VKI{T!f-Gf; z?m)t5vJ1!lhyaNS(itNKhdz&MHK8p(@%^>gzBZ>BjhPn5nD5XW#VNzBg#whRacEHl}NM|8Y?)L+g&z55yWG1)ijnvPw-+R59}9=7y#b9$PQ%>3!SZYt|jYW8zMFWY}yIkoAX zuvqxUxw$>}Yh(1A`=2K~Dg13cw`P0Hs_N%>3qMd7hhab;LYQ|_*DcR&(qlF;xBDJO z%Z$#|;O>{T2dchPyVP1OB&n0$;*#SRoUdR0ayszL%4Wl+tY`R2g)!J&ksAZ?Z|G;AL^4rG-KCx`0-*gt} z%jiapDi}KUyN}eB&oibtvp&M?3ITrRU5m-CK=ZL@uU{`~@tnvC90{~O;+|L$q(CDx zL|54zUVfk3F5QE&CXg@dxyEGg4U;#l^K{i)q=yYmhB#VRB^Fpil+K5r`6(q}Ex6mL zruu;BcwyME*a{qFg&vyN;na!FlI6XUJ-W9EiQ zHRHLKBcufCKr#jX6K&Qk&UizS2JFPbG$8@J0md4 zeDQv&u{iCGhLwBTgOt|4_I-ZJX~PjX6-K*r?S@BV-Oi59XmG~vtM;2V-{URoH#=ka zHtyYW7z>J8_o)4}o0tC@u{ydgs)M8gx3+u1-{Rix>-KFAjn#`X%kx`Fd6*cNYaD|| zz4rMF?@|uX|JEe zGzZpS+vr=1c$dDzaXiz)bwBjV3~}fvptL1$SO3q43~}iFCxqeue!LKXjJObq$H6)l z$72mU#p53%z#{?faYCH%xB(W5APk*8j#!7ja3gpi7d`|f#D+#G!RzpB9tq%f4ZN9Q zT4tDE5isxI7QYhczn?_V(ES;N38c%7NH{J5R{elKYcB>N1lG&{83ioV@lhalUIaG+ z4bxHM1uUX4eIW3Eh8ZD%>nx!7!10H`d4OoHAr8k`d9Xkyjv`+3?db?e;D8V44e@FJ zBZCrHS3bmN1R@!$BY-$SjDWC~B8Z@)2tVvcL&O&n;-89+`tTDT-O=B?;s3Ml(KzC8 z1BU;4wgXH8;?j_ykqE>ZViP+Mi6~`VZQ4VCT;R?*FU= zT#6E+(1l`PcnfRs2oZop9@@nYmLjs~5C^gTjR;mI;XkF~m{m z-UQ-0L_L8pqY(w3-@s8{5_E_YfW!rjhCId)j8N3%Zvb$D{|g{-0uP9u`V9b1<9`Dr zae%n2O@63+4Dt9Nplkh0Ehz@88RE`r@j~U}h)NpRk^C>c6fOe{aWC9Q=Jr4YF~Jf( zs{~Ngk3A4UOaS5YO90)UCxDQkU@lXjYO@v)BQUQeHczk`QJN z!2mt~2`Ugy3+9R-BPZC9fr94{j0h=syt)nvEF)~7+e;w(&8q+n2Z5(Lt_g^P=VEb~ zV*uPxct8ZSEn-mp8e$ga7&r=buY=<1tRt-UZYhq;3$PAIN<(QYpiK>L5CFJRP=WmI zA;3+?A--=C5P;Mem*gG*mn4+Af}n#oxAv^Sg#hG@pb>yXU}g-EDVW>@4Q+3Ont-#y zLXZzD9T;L3XUEDda;4vNZ>`@fUGwWjw~>1IzYjs6@btTrZ|K{prwEgdkle$ z#-SjOIRqK!Zw$CwdzimRKk2x~nmo{n9mGq(a*4+ftOBme-!UK+6u~MB%whRg+JGGq z&=3*Q)+7Fd!pjM^KwJ2OvLZpQK-35%H*}2@+|PF?q$4w-L@@6TOum3CkSJh+loE$7 zk^!SI2v;E5JqRwZ1c)0s@^GA`77KKb1o@JeP!0kRpItog?}E#~GblcFUP77nV&Jm= zZ!y3Gx|d&kxd}1w#Uo^fP736AofH`au}Om)2CmF$V4e=pnnYn9Q80!{NJ8hykPJu} z32Xp4k_?H+#@^hIyg`Zx#FEk=5l4yjXO40bMrnAy!tJW@KW9go|Nra=UVRE+cO;Mu z2(UN-WTCie5U_RP&xGj_ys5;8anmD2ClAVyA&oSJHl&b8p<@c5+#t9&uECo;fIT<} zrIG>*7Eu|9RS_8jWy&JWpbZ%$7bKvByafl%VR{r$b_u|%0W-twjbJd-2y|2##3@!p znnT-iAdZv@hyw>%2ty_sR5Q$bgExT&Q-G8dB%(@)gd@d+2N41aKg<(Ql4`$E1UUgk z7{u_lBu^smLFG!Ic${+JW|b)+t^W)rfNK~G-g|=ySWihp^IpJeohs4_-z`~Hkw>7- z%OECB25)YFBbC9Y2y>mlV+f#26-PshR|t(1Oez*olNvG@A&PH<;M#&uln@6H)qu4N zVa|bxJfy_`YPNvn6FQ}i+(2|-)ijX7NJI?w)hVPWH$oUIehKMKj2hdOh8o~i72xpw zKN=2N6rO(#IsbhL1Gfhe4IC{Y{PtV`D)d5XupU7Z-j1X3Z^uCxzwiQFmr#%{2_xWs zdHKTuI)53Nf&et`U~It^H|R3bif3;k1-xxIq8wbiko*UYFj`as+P#9D0xP2_Z=@(O zhCRDRJ^1dO$~((4gHH9DpBIuo-oU6YE{f8xP-tLvuC1uO#OSU|+VG4O@3UOqmKST- zy}#7ix3!td;aZm!_*R>K7cpUYp}Kqb;1?GD`jO^O)2%`dyicu)Im7 zuUkAL1MwVEi*@7RN{>&;ZG1arvGhX|M!Tg)LUcqoX5eY*q)V;v$Ev&eU*@}eF19J< z*Lqys(eCsZ-xi-}Fx!-2 z#iK> zU5cv@M8DQJd39=Neu|!w+h5|rk(D{^SHJd2i~+4M52c&$Pf1^mcr!ZR&0E~&HWlHx zLS!SwL9Ui6)cJHf@CYTw>)E*>o+n1*-Oq2K?{8GFjk2~IvM-b!AL$c)a_qD3#hE09 z=1o~gfBABk*|XD&4UPqBxh*J*s}oDrzEzj~td`DA+{$Y~4JY;Y)8x0HXj!&j=X`p) z%x9JJPH&nkC|HYedfBi#VC93AoUXcf@OR&l5%tuOr+xv9UjAmwd>E^yW;^V%m(?X+ zH=++-R?h?0tAxi_qT5=0Xq>LrunnlE;^a-!Lib{3*{R+yc1>QX8H{!(`tWl2#r%hs zshc(7PZSsj!ZdxZR8WC!lU(A?)FEB;>YF~K|EMjT|9aNRc)GgfL|YNEGLv7K0(X+D z%;vucoiQeI!g$aN7a^t7HuCsGw1?hA6e-te7a`~9j1iXl^bPd5laI5G@qydljEpnW za`@#&8;#UcgCmLxOd5=?vephVYp|xL}&oc|@2~+41YnBUkOh8$lZ}%GX)h=q@;JBo;L{a zdHvSIfDx_G9XD!1JJqno?t@Y38DO1SEuh%4$}4m68ddL$ANXZrYWmT}*46bnD}kBH2ap@)&>xmyYSzC@Q!W87X#5mobBR_}OF zYzTBfyPN!$&o=4>r^?VaTO38l3k!xW>}W0L?tXryZk4$7G@|;^*D^Fl2cd7CazoMT zmq!g+xad8xxo3(p#W`B%m##m$-ZToMY42X)5~iCvX?eW!PSx2|+C_n8na634(A(&u zVR5i5S)E+Hn72;tMl?wCgPfTp@F|PUoQBgmFZ>?!^*aa0E?sx0;cS>r zyTCv+s_UK5)Duti{?rbtnw8^1O*NNZ2c&@`%^qnS0VQ zHw3-HDGr5I9q|gcxi5X`s`_|&8n`BiC=T&byCqgVU%sL;dT@VxS;&jOk;`5Z#`ivBaZ@E(b!T3#>o$rfX&r5`7~EV|yD_rs{B zO+8b|(p4JDI!n^_?0D~oive_)@SeHY+SAviheg_I=w`k@w%Xq`9etXAas21>J+0b! z=~40164qKfkI*L>4XsVz=#uAh-cu5xx?X9(jP%Pz6EA7Gkbh0+KG-S%6ee0~N6O-F zcWq{9<1Un~`KYp1m7v?wwRL2F^wOyvdm#*f-)rg7Qfpl_cOjRt7NFvcsZY2KN4#E( zPogPnhZWd_r{3cD+tR(oH}R<*m>N=X32$6~V#2ICe@2+fOPc9`mKv+>ZJ-a6`l15N zF`2oLKi@4x6Tbqvl(_;ze`mE-d{hhbC&R5;&iE{T+n$$N`_&wbi`(7*OM`qraM z=a^MHz5nqOJwV8`-&P6wR_gSlfBsx{ArHDX*?n;7QfDsbK}Jw9!tuA2Ess-qA^3P^_5NA4)9ul~L-1nbviQuIZ{I-Vq&!-Q#H!J_KkmILD z10p$iv5yA-CxbJTnSnfvMchPwK_D`)6St60h!OtS>60pF5 z2fUDkS?R&Q_Aoyo{J;ws+rdg2{Ws4c8tjO}3mq{;`S9QY1UOhr!;JX<1s8)?q+p9c z3TPw)c_D7x@pnLu34VD3k^l^L@Gd=o^b&kb0IEnB4Y}_inV{NBC>}T#0OD16AWSTY zW2=XOEZitgtX~!~2Z@-%vgaU0rI>PVPP_k0&551B)f_?++B}Z3rTWKvMBK+J3TQxJ zi@QsJPY-`4+%=Fbd>H@P3L3m62I0S-5yWJ$`k#=u5E$=pffDPU#*ab~3YFs=ey=7u zG`9vQIX1Fpv9!CKQ~B;@dRtSeqt&0cHp}!Ci{4fbuWhd#c)c7r`f%%ThoU~_RMAQAg<$2oGy(e~? zTCCMscWA}P?%QgKx7l=;t}oM*;Yj;pmd@c7JUcn@+J7+5ox`KmX{bWy{zScIP=@=X zu%PMAo}kwYk2z`_2Aah+Vr0{yT@#!4WZ6LlBO+<@(vic}-0( z{iT1-X?-_(si#|KGioucZpb5?_spp~S$+Krh7?u_pe~RJ3=;ev z7f(N%HmS64`9;d{a!@Qm^ZtAHaX0-AT@Bg%rV~9R5>uI;x^4)>i zTU)WY)z-@6j1+U2%X7}oxwZ>=>8>C9We-h8T*;_D@#*Y{^BJC?wa+eJm76&XzLrl{ zvu`9lII!WZc1AFf<-T6{v#+{GI9^Yj8>hc8cJ`R{ya6V7|FHb@$3xkoA3DEe)yX!s zW_9~s3{`jXLZr~D95j#=Zp)GI-c`rWrNXP!0>RpHs8)>1 z`a!n0f#Wuw!SkJsWl}5|mr_q|K8(O9#=IE0Q{rou=RS(@*t&*J@9X}0#cElYZ7IVm zShtgWomwV?+bO6{bTOrK$xmb5nG&o^w?md)Uogz1OTcz>Q zg7*bcylZMm3@@fK?VD4)^@a4CD{_(1GCwb8D`l_vU#LHSDX_3@oM=b5dB9!n%e<(3 znortd#jUt<|Aj2Q^vLKRTVF9xl<1y(-HF5~FTO~Zp#R1?V}^OVkXz=oT}GENTiE@$ zOijU9_Lom#zE%r6cjv{TGDG={)FV5tw>4>NQWy33>T)rI+RZJBJT*>REp+dA!v-R* zu>Lw0>SxO|;Qd;GvPbsCrN_}~1-T8@*S6-&_tSAqneQ(X4V-c1+e#e2B1Dq+-tO>B zp;)8D?PD#)A@ywwNlL%s6#M*irj8eNutAT9I@fsVMytUFz^@m4it^vkxkbJ|BhiOt zVjs4YFwXn=1@mmc(4o#XGQBiqW`H;&ySO;-P5;|?gMuUVeU;Z)Z`3yB9e#aDC0Hje z!L=ab$Q-GN)7F*SnqdPrUxK7o-xr+7hg9RLH1f}yJ?t0PcfH;9iEVX-w2{P|F@AO=T=!fk@S`Xa7Ki+2MJcRXd~MjndN=sktRH zb41}SBDLh_p~-^zPmQb%h2pCx$UK>o{F6{?6n90iBhSKQLa0@f9`5f3+T_#xw$aB| z4^0y3Duji}WRF0mqzjnri?sAI#v2`~UuCJVM~^-^Bfeu@7{>shotO*|91 zE8an>DycqxzT%hOI=NwAa3;wdnRyp{s?Vgy%!Rek&5>EY4{o5JBio{{$3O_fGXEPwM#G#!Macsaumflh!PCwwFnB znKyA^HAef)Q(h;Gh|pbo)c2gCw5lX3q7)8Ndln+J&bPOuL^@B@pCD$c;>JLpzPWB2BjRl&F8nJuU6?>!{kbYWFI?ewhrBtg|g3Ysk94Z8H>4tPv=3JFJ zLk=5IKFZ+0wz|HKwyP%Nq-@=|f3SbSoyJK}+-NfIYwu0=#v@Iaw~fJ}u4OLjURT zjg(q%Vy{GVaLLak!ls`;lgl0cni$%wpvo_`UWbdTs#J`nn zx1n)|>bZu6G3wP;J9oW{x9H8Xw&=YG$6~-l*;>xoox4?MclarKQ5gD$(CULtp-U!y z-`NWa>{gZ4*=or6LntQ7!U+ezH4=c924p_5!GdABodCVFJiX3 zaQMAv!eLU+tS#g8qLvdg=jCsM;pG&2Batq)1b3as-e@_dvnsJVYSY~7YePiwgTnb` z5JIR5Ba->x2Zd>K5Tdk7q=9~wWKCz4M34Umg=ce6A<}1+q-wm5$mA0w>wDEEgu)>z z9K%;7;`9AS9Z~)!%kSSQ-s;J^lWlY$x=5(J1zY6i@rDcvMJ=PD@rNf>7&u6zB|iOl zcv472QHwrj^SIB69}kJ96c{HT+G9Qi##cLj(nNG-*Ni_Ta(Zvo_5_jtIc4et{|`UO zF~Mp9zhAj?b@amtbe5HT$4DSA?Uy32+YCJ4UjP!L%Getb8reBx<1-JsCs>?P`%?2C z_!Sj)Yb1P|0H-M2Ni09<$A^7V#Ls_C_jB~A>Ai1{a!Pf7bW#MH>V^4OLifT_$>yV4 z39nQ7uU=`)x$J&%yWStZ(&t5IUOtn%Oyn;0mFUxtmgga1zH$fTk9mI~5<-6=Dq%&k zt!$rTy|$*y8!f9EV@hrQtx5ln1@|N!`eRs5FA(>~5DdU)LiEzW5!7xRYgY)FRj6?fvtJ?nK)>BnY>ieXc&8$7B^=i^+xrb{O;v-hEvQ$R%Py;L}>N3(-vja)5>-Z=sW$y zP*urhX!JNg**CPaEp-3#1D$Fr@0#lBrH`aU!|qR1s)rqKde?MluwOL@JRd5_(llTB zVeAT=i$6zHWKABbQ_nTgzerx6ZKm*YV|l+}?(LWKte%N;jN7EC?5L{Xh}nv7*tK&C z=O7XnH_4ep%fOaP#68T@4@Yz@ZawPIc*-{7cvISqrb3d%c)hkmBQf&nht{&TkC%+x zmLyr2umE33@mP|@N8SHHRQ1S<4vjuzk08eQB+vLHS#xXnoVM*sh zE7W>}$L;jzFIwhT1M?na(2&+tL0cUhqdl+4hyFs9HRn?O}wGwYE9rU z%k)i*sPasTs5%>XJZ3oh%EaR#j9;m|uUwb9WkH%I;V|)1>Q&!r87+I}7!}U3WL?&0 z!k23@S`YEPsY>AE>U90GX?}bw_|Egh8(jy&rAwl)V(LxPhzALL)-PgRN7GsaVQ&NVKlqP>Hl1vI!XQq)&CBu7k zJY0c8#+kXqU-ohrn(o)7ubD22Q%tQYJw-}-%1vheJ6>G|OxET{r<2ZfSW=%mWl3$? zYC&y!%7VHo`6+urY$bbT>=STQu&;DP{=9bfG#H@UOw>>NSNnHqJp)GtfAr9mKFrN? z2F6}qet957YwUG2J)eDL{lU0Mn<2I3hk}8AyEX%A^D1s-wmVY=DQC6r`gh4sd@nZZ zKG{awdo#~3b}D~dP(gv-<()3|27O#kELKtCsGwWlxhrkv>L26!Z|0Gq(m^&n#WS3f zwO$t`ug8{OylW6^prfy)TO@Qh7847CV%_<7vn5>h0)A0p$8Wf_t2cFEAD~dTTx^4* zDep~so!n1#FV9-0h4hqbbGN8gLzr{qMO);!YK!E!D*Db^{{dc_e6Pf2vWo9Q%F3w> z=PYg=DML}v9L&FStC>8!hp6cWaZ|uuFfgt9CWWjuEtm5pYiC_V|5VDkfoU20F7jbaA<-*%fiyeImsYrs8+3vS@@m@D{QJ}-t< zIHF6<^Jq>5jFk$lWvw6C!Ln)S=7!dbIfR#gzq=dtl7)_zs9u`~_6f>xf96os^;1|D z)O~j;QtS6>HKGSOXfezv8b-n)^7Qzptm^EBD_6~t6Q7^ICK9eB=KAZXJ9DxmQ8`f8 zWnb-v+`zi2JCkZ)?lth6I_2@)f!r(0;Z%_Ah}hBk6Ru1KI-yv~Hal!0r=N^z`@N!; z5wTm+PqF=CIl?zCc{Ik0N%oB(g$6A!nIr)emFGP~oSR2p+1-6XV)+;wBJhi0!QvM~ zdX0le-{TSuG!Mk;-8)m4~`LCce zy6k&uA-)(yZ$~PYCz%LhPJGnobV2+(>6K-7zzTo%pRI31qC-b-O0oHsW%VKRZ0wiNwAEy-sLZyFs znN}Et+i|pHrSsR5Iuz!=Nt-d%OPJ}Z1oJGJK-+_nq>FMLeYMVv-w;mb z+lbVG-lET3&6A~iuF2wM?jm!W?!cS+blKE*(zDSi+3yBX}p~$+tCDeBI~8>8EOWD*a%6oc!l2s!O+|mG-C2$}HOz)TN743qbyz^{%{n z;XT8y+UW=LRf>=4&CLD;u~J4%0e1J6i*CBn_R?3(Y4#eR>Rw4Z^0Q<^_g*zu&=i|j zV%vIW&DQL*<< zXCq~+LfG%SuNlOD3TR;ng_pTlthZfz6k@!Sqr$QE;eL zITaf=8AaK&{#bRSRoU|Lo4SYB-@QNi$rpXliSyCC^ATNf*P-{ysgC{69$uI3c;u#u z@?wtLNF-fa>Hk)_^-$ls|5@Ye1T}g$DZqM1xhK@Fox|CG&;k6KdnfhFl^eMPy(n({ z_47bg#Ry_5!wc(hKpL}Jhv~fTG0FXYILx?HGlXG@CNngU*qM{#d1hbWNw&l(?ht`> z@-Zz%h&8Ai3B^ob@_`s9fKJPS7 zsw4&yFYM9)QAa$8lOlReF?*+aiaYx=-+H*SpOzxm%(XU6%*i2Om3|dQa0V!53!i_d z*?VkqJ-jMJTajzWzfBWNvLKxYD*n|a2BNkMxkNfbN$PychA2n<{atT^{o;}6s8WM? zq@dDC>~Rv$V_Jw*h}$9_S>;(9F1^c~Ou{!lsD0vqv{a6^g0cIl7XP9SXPKV`9&T5^ z&K`8eShHpfaCX%SiI=Hm`nd#Jhs}88`;ZG>{r2ntA|DdpkR?u)^hyjRmoJOJhLTJB zoUA*D$d7JiQC|^qL3ZkN|QdB|J6d_N}ZBSpLjkA!uNYr zmC@7bsnIpoVO06DN7DzLiQt_m>0vPtFs8w5ZLxS&JDi^y4et>`$?cx&d;PB7`03)Z zhtK!mof0h&ny|qFq*(BdkoN1&dWW{bbu3u2?Is?xn;Kmz8(PN-GRf^KCOi6Htz!$B ztxXHz9{rS(l&!n(_6ICa2*b1Ahp@Act14TfhYnHcCHxWWig87z8$RP9GWqAxRG3(@ zufauQ&VqKPY_tDXfrx{vs!>vf1gCHZ_$fN`A?2*sXbMrPV{e@VLb{_M$W^sB4rngg z0u5#u%L8s3FzMmgYZnP!m3c^N-db>-LF{5?Xe6_9%Jtkcq^8zR?#YyxvD%R4XS*7aThuyeXx-Go*zuZ}q#*aM?ODG}UB#uF@dH__B3F zLMo%Dzh+4pT|+`VU{9JLu{`aEFfjlMT<}GMM^5cRW$e;j*X*3y5CJ}sF|2|0HC+H= z)T-+XwKA~&Ie<}^AW5An2k%LX$kLbY`kw{SU37}`YqRaO-Uw*r<@~uQvX`GQZu!Ai z#?PeZ*JraDZ;}w1UmGHIc@Xe)$1fvC-`Z~0#SJwe7{mrq42Qt6WJ066UL;MfX9Ctf z=cvt3pQBEBdOM!(XJ!KB&&+9|Q|Xx)@K8EJg?^FJ-qUk)(k)6&LVMtaC*A&RsgKEn$4ztngHTfq&OlderljV^Md;8DTi%V zLMVoN!VOub+u1#ZHkW*;-|O`u8zgBo0(l$QlHBs5c3Rc`nM7xNC?%`r^H z^3TMox#SEzMt9GhXP(CRqJz{0W)3}c^)qF#<`!-m2&X_uj$hTixgf*YuVG34j3(b= zkim^xcOL!N(}Jz0WhlHSa}epiJ|HxHuH^@()c8tx(*^gYPz%k2`Kymjd!wX9THe@7 zjc?gy$ox2GQb9Hn-cxf_a0&F6EUEFz*3Jtael(^FQEMg`kFZh9(mRXXq9R@ELVoRT ze&Y$_^9e=aPt-WejEwVV5{fF0zA!T0@pDZxoJ+!X7Dl|am^$b*L^>jyzkkGH%4kYP zos6;bT2I8g04V{R!V@9~D#x0y=M4luU?fW!-AH>O-Lk_u}bV^j#p&Xf63^G(92yqoi5=Y^}uD zishRZ5@Q{13FTMgydPZc6u<7CG0de?R#z!c`|Z~Uq3)6=7WRJn_l_mb994KsY+3L? z(^9%d9d~>hvhKr!jwue>bzub*nT8}>$T;{7KP;VlatDfrqa)?i8+?(u!t_w{*hXB^lyveL? zF27RDJ-;%%$K%ZqU&+PBt@v{Zkr~}wopmCgfq1z}IHS90<1361SsVn2vh8>VFMpBS zY~5U#PWkkV_guP-9s=4LsS^spqKxB$^s5oib*pu#ljaQmX*mw2Ll#?mN ztfRhbeAYFh)3i}yco_e(jBJNyCzSVls$$8VwOKl;G~|}fZR((%_>`?>wMz0Y{^K@Z zw$g=ll!NmFH;Q@#$HCv0(!R^dn6PEX_aPV+%zBc9+thmStMxfzjK=4CW%UE0OoC4m z$T&>AB-XB68H^*F+;TGu95Z|)Vkbo@HPXLya$_R1KLo;TxSqN{=Kc;{zwfT+=EKZW z*!ul(WRpoU3)b9$*Xx`DFrQUkt{{a>t&L+HuU%*OF5GqFgK>-7IY#HtHE(Ce#U2z# z51lEMJ@lkXSzy$G)bd2txW6}wqH@8?(dVe6+V#n>qAL>G?uRxnCiZfrAn1h>hx9UC z9%ltXX4`I?!s1=E&xJ98X6W>tMTblmiO8TpCg+Wki<@f|8)tHfve1d|hW-e;vbt#f!^6*78~vlM-xWMG1g&Ae;k#V?mDCljuEJAV;u zmy@k@NQA{o?MoxeydId4yo^(W11wJ{-)E#bwT;xuJefu+q>qJX~q zNDjSg>x1^Z!P}<)^LjTq7g-;fHmaA^kVCMfzMb>wo6_+n`Ao(0DI%uwK@B$8#%a{# zj()r2)lHQ5u%0TLv_v6KtN6hIWn!5%r za2mgpNmNW9SHCM0&%hW$(oObO>2SgqXSY0d4cEqn;~OC^e4!-o$+miYDNBS7QG)~~ zn%Grb1>T^X^}QLCl&p>(4OBcI+~yda-fZ)1Y(2!~<=y5^vQN^g=4vLxOY7f1*Mxm# zyuC&->KL>(X&ZguJmU?_huw{iMjLi(`7I&E#qXbY5u2;;WuWfksN?_j`H0y6`O$_j zLKGXcgG3+@B3R5Wa*T^9?gGcezkJ;wj{myhzmgEg`4bsX623V8?f4@MDGH!|(-??~ zgB_m%jR9oEjmpKCYJ8ZEdh}x3px*}a5`I5%B0ZftqxRRY{QP_irm4YiaqUz=9NiJF z13L`wIco;HVvfA1?(P~rBCAUk5HE)LKDtSl=CR1Z zskoZE6Y2T6+F%s9Hey!^pk-aSh`Y;rz+H|8H?5BsTfK&cg1ZKs z-^BYpV7;xui#h(*3%)2hINAJEPGx{!&;zA_F5l-^A9L{L!#lK7E*Y33q#0wCE1N{3(nga88wT&cg}Z*! z4%I2|3@UUMZ)>SD`a1u0s?NxJ#PC#5;qi#v@~YTxHGIwA10x<%rjE~Cj(B+DzJagy zxSstl;b&_e2QxMd9_QqB4ZP9j51q??94m(ABg#-|?#n4D%}ZO-H8 z^YsBzVuG}|_+cx9w&Aq)L;??nTgUe`e@EA?Zc3fwxKoEf2W!*uj~)Qp|TB#x@92nD>r-1ECHh->1mwuQhy89&jEd7zN|6x zhXxRL^;Y+w_(Lr@@v!^23vMz^{wxuC#rt>P3iBCX>QC4|`sQwD;H*{>Rg;s8e#s3$j zet`dS@!FYI!8Q$MW~+jG_RelnXy!$g3bjkl-pQ(o_dDhTw5S3cbl=X2SmXt{4}Hn3 zZCAt!MK8at=6f?P-St&RpCRmy22XMQ`JWD87|6f!GpMjY$V4g8t^2B#-}xR1hU{=@wfE&d;VlEP4^Fv<{m&X2N!j#!~cA$5KfC-g!DFS9-bK9&Pc z$H1`y=Vk%6u9kuH`BC)H&l3a$Gc5aqkN}_Bp#g^waGn!|j)-f25Dglo4dY+a;-yC<2^iqBBMNy6qv#-F2?7MSAvgHy z@HYhBq8V>y^)C!8{fz-mVA7I!%#0-JExy1zVyGj~uoUVo9qf(_7gh>z4}txV@fll0 zgH+#3quPNQUs8e^b|nR#IIy}&23F$)zheVuW>JC~D+{Y}g5PT3x&*###KkU>gVi{} zA2o0{B&gHmacWrbTMfJ^fj1(EO$)^+z&XbW{;0vuy#)0QMVuNI?5V|0NP?S*kL{xb z)Of)kwG8a3jWh173~IYU33VM{VCioROix8f!BB;Oi3?6AqasuuZnt+lAdd4CFVrQ6 z%B8~#f7^h+sFcR1BcS#>9h~$J2DA|ZhVkSd3@rVP0s9oA33)-Oqnhz|Ra^x$;{|n8 z6P+mdxKaxE{DN;XrQpw5!M5w-Q06Ic+dgUF)Ue>U8f@k)Nl>?H!fKr0j~e#lf@7bC zPHZE%pax}>8^GYayY^B5n|n*3@hMoHMoIh)#HoH8lLXOZ@IW%HzkxWH(F0=OeiJec znjDmI3UoWr5Vc^}ekxqbheUw_RKy+%>^6-zXQBPKIRJzAq27bZNP*6Ts{oQSC>>}= z3nhuKGlkQjCp_MhF^dAnV^N7ClAs2F*Se?#pwI$F#NpWbIw*5oMBwa;7ZX5Ipprp` zaG)I>U_D(2MTJB1iV}2tNF1dX4*B=@rc$sQn*?-E8>NfeQJewvL_!Y4#K8BvQUv3t z^zg>j@marj24sCh52XSpsKE^OqlddaOhf=&kn#InkbuWbQP3MC#2|fZFj{Be)v(~V8j#z8F%G8| zwnaJPnmsib-}a(|UC~9Mv(})cy|6`zLS5%kQee^rLYY4hFc*QEfHMktTtF%Af$(BN zHelcJJ&>Rs0mLLq5aU7c{oKQR-@_axNcSLOpvB_TdSt(6MhpxVzw;voZWCbgz+)~s zpmOnz-|_y9X4Xx0{WkrpTXjR5ZV;*xks zloJ60=1f@n8v|wz328irQywV_{jfzj(TU=udl-181LHSHN*%Ap3;w79Ly8ovriD(q zpv3ktu=FU5B`~5ZxuRr1#h`^jZh-qYNB}(F!mE(; z7lG-=dl1n6VCioR82y2NG!7&0Mlge0GJvsl&kjf*lpKd?aYMnRh!nWw01jVze0nga zfHc9@X?Gls40`X1GKSjSQ7{uD1>8?bq3@SaeE5<1{w0um9gqJ|@`KI=PcCTChhZiT zxJ;m@odBzxzxo#FHNZ_C=fr_C$8yQgkTyA zYPd=W7QhMc1YH5s2bd9Y%#Q4$ucYf`(uT0ATXX zJ=~tl4dCPWO)4o$z~Ezu0n$&Yy*%Q*T;M#49fswhj?~29l%BdNBwvmaXWlE5yu662?G*GXdmGrAKr zWzA%J>+GSAcbt!!1<&%>wTaGiWKQVcT9{a*5*W~V(Wr4S`vBL`^XE#3#ey+sUN3yU z%}q`ph<<#*{yTNd_i2rS3%sAcWQ5#~SGxNnWP`83N$=56W%7YK>-|4%xZ*b^KDJG8 z*IO-)nBOw*$CMP6={Ez+O5^D&9>KC_Ov zh?qw7KQV~)8~@ecBAE62UAY+b`5=7UE6VWv+H_B zGN&5gg?iK(bRyKO5)vo`f7Z})wu~2Mvb_xQxH9^LLe^SE;hP0IdH3K-lcGl^hP?B} zhm`lE&I&J|x+%XX2zsBRq^$Ygx02N7VZ}A=W6R@x9^4aK>MK?&XjyuXxsz94YkNGz zI@6fQl1U%Qu%_c-vY~kqdG6s{FU_qRPq%{8YT-zTAJq~S*Q4NLP}V4b|p;9Jr4N^Pqn*$mb?mVVUkXed+`bc!i zk;+v*luULbvle@MPD(@Z%bOC*WT(&kg=a;R#}3$)IA*^-{Ic=&$5X>4wBk=2B~FZD z+U)fuEMBO7ZB^q{Z##SDw!zV`Vb4QTM(0bFCwdc8bMBo;5M;^fc*<>e|5tR~N9MG) z-uYJ7$ehO#mW)M{d65gn+(>t=FZ>lg-ersSBd+4BX|b8_Z3EsMmXj14WX#eW8)2&U zb#%OX@?y;3U`n{#tOuHC{q8At3qzL2ab}nYa%CkwfkCHPZQma1mtJ-n%d!3SM9gNIacgR7Q>0ikDFtqhRbE2iX(c5 z2RQCi>W#%pm;0o3(D=1<*O5Dvit9!yQ*4o#8s6_bI;R)uvYY2l98Tm-q^rY&Tzip! z1LI7`e?N^a=y5eo)J$E(4dDRHEoL5tvSa@73OPs*NmBlz#ovx1tT`M1K(qwF*c22UtlX9TxneyZX zxeaTLk@Xl|hQmIi%h||Y8#U76qU&XXPsM}mzR)z5yHg%@`!tv@u6|=%c`W#uhq{t2 zx&d=3Hp>qj(`c0BlC+zpITF&P;6Ewr$&XGI72*6HaW~wrx*5v2F9r{?FN`_P$xwwfbgN z^}6cr=Y0{lReGo%o%WSx?V=dq-M_&o;GiQ5x#eHOc^lkF2nPx0GI?h*;i1B56_D$)jBrNGSE{?2?O82j zFWP}BQ#vf`;i(O^7+ytlH3}^sg^@AB?h>2aD>InZZ%?jIzA62x4~}YIW46a<-mBl5 z18s^VX{<;wNXlZi z*G8dB3)4VwgFdU-Vo+Y!HwBnj))hQ(%Rm5<>oAhkDvWDy&(93I7yD6U=4r zkexlj^v_|v3-vWtGOiw_<&+zwtg%br4s{n^+W=Gj&UM!DH?&k&R=h6RjUi7BE()M% zvg~D9AGL^`(fWR5--Aml@EH&a0QtFUL1uB0?ZcsdOw}|mrPK|Uwq;N%Ti}$y+v>Zx zNpM9;wR*GHRnZK6u#jDqW8gu=sp`59ZtL}8X8U|#A{NwlmGzZbsRe1%>|&E1sC+*{ zGRCPz$JK8rPWA%lkyx9&Z@WU`$pP@fMPhJLRVXNoCBjC`e1E34?3B~@3BoO@ZRmF_ne5g-~wn&KB^6lc8baQJQCTnwA+`sJe=jABM(`^oDbeKTXD z&ctyjmU<$-$eNBF^T0|ZNe7^4cO}|0OcO3qHC=%(!myTL>#P4hql~b?zB}~=H$-^P zEMBd39{(=Ut#ipj)s=`kgU>B0j-T;`#*gTo2+oI2Zzd?UDmp|g?YjNVmHGECHOgzO z+CLT$$Nhn@5w>D59VQK#3rvt_^F#S5njZk^6L@RTUCu3Y zT2Ak~dLl;R2}PV7lNGWN3J)EoWeFA?>?D+-&5qVs&9^a_qE*^RvSCC0-_m3z{zskJ zu$E5!^;YN%4X$@^I+q?!?WLBlMR*xKEp4vyaVVOr3%vNVCtx(`=^9WhrAXNkpP%Pz zO%`>pCna^elc$Ro`2gT?xIIMS<(<>&alL&s;^h_N^xle7cxrbDJ?ifqbdvty0Lzc8 z2-U~j$KPiHmMxfCzH6~dRT!Y>1?GS`zz^fu$!{+(&x+j)YpbPsoD?tTmE>@4G=ax$ zqgShYMacwl+R=%$o^(lTF(OPX5}u*4ZBN6Tcm%g-p5ys|(E)S}62ivm$@bFwA!s`1 zmFKE;eTK~@uBBqCT4T@O%3<;w47FTab(1b8TJKue*26uwNVDSZnhqIW)=l8>1KPJV zZ?>|w-|h_2&XFI*GJIMC<#Xj>RPTn$BqcI^dARdOZf3H~FpC6#pz3XeiDV_Pc~!ZG z_f#*Fut0BcUjY%|6B3A3bcb>r>kU_m!2R_7x^Nel*E2}B`)Yt5SEVmjZ(*@Ozb zzRgJlxsKl#UhT_Y|5NndKf%e6aApY-=PUZh^s@5R=HzfX%(8B!*c!`=YOM(zAN&W- zum{q86U_J%xysDS%(Ry6!WEmQD2~@sFg`|tUUiK>wgLDYa!26`8FgB&87b*NCe1Bj ze64SkMj8Rx0Z}8)Q+^D{a0YY+TNgKoGr`m}HpSk2*ajL_dIq@1P9U$>!x8V@QxD0C z?lx2z%iP^o|DFiw9+uLWRft2?uU-DA)Lk^qaCDXDNJdaIqZ<^`UrugbtC~0~TA@!Q^_ptm1tV!r5G7P2BweCwndfASgdbbm`N353C zg4#c5OmwXxc7~xlx0Ae*ejux)4ukxj72%c;1Cs48^HBSnUA#-_zA&TJ6KN0+{Ax27Z;c||Px4PHZLj>F_HyBUkU6LRseCtc0EW4dPRknA&$0Ak1L!n3W z?7!{*9%Q^|A~&6(Vao0*vTo(Es2$!f?zY#)5NNfZ6L-+0}FFv8a?$Rs~)>Jg&sJJc|FA|DRy`%={^@s%H!o7{&|jl zva)WEQ7j#7wGeWwFs=qwM5!HDd0XS_16&L?{4K9Ci`E+I>r56V$vgSE?FHlLOHVBn zV3>SBg4rN;rZQpqShjH)5 z$r-KL7s+<5<)2QjcxLoX69%s7Yj(%f&Qs*K#qoA}{QN(M1#G}xLd0BZ%MKb!7~pBQ zyQsSDOsC_LOY$Q#tHPl%5NOIu`_+xtmD^}OF1^Ih-ToNDgX5*&9|{n79z6TfMAT2L z*%k>YI23ta2G5&n;J*&ZUZ-hf3xHvoeal?{O;l&JsIt_n%|_w6UlaG08$%r8A2NZ} z&NEQH>pTw2ZxL-AwE&s+7!Qi%1$^Xz@G4>F@+>0Bil9360c^;Y#Q)0WnF5T##6o&6lH7B&wa5=BHEE*>HeqXQLi6Y3Xy4mLk%=#Hx0aKM zS7=5~L+;;ddW<*6gZmR5>3r@kY}C*$x66%+|t(z+F@09l$xlq@$td;BC; zkv@yOUEttm@t|vVA!;%jULOtHCopT3URzD_2(uyIeyO8A(Q|(FziF+wpdpF0m-_kC zjod8rB72>B1yRvW?Nd0n)4YOyDdc*m@ zBbt*Iu{R#kdviof0T~_|IrOp$K{T3@B{wv-7d4Hcif^2?*U;W;0LZxxqK>17Y~xwJzuP4R0DL(fluc z7aP!*>60$rS1Vr&^%VIzpOzxq%_Y-c2i+D-S8ba#Jr`AUmQ;-7O-1VI6Db^TS};?7 zZ@b|EbKRNP3gY(11W>T<=;z4og# z0e;<-lYiY!Knpu^wWy?aHwn6K8|ZSi*mxcj5Wiclc4mcdzmAhFU|?;t;+qBMpJd9F zV1E|C3Bs5;+IuGyC17VsK5DIB#a#+_L`*)|C;cl}K#hL#vg;F7G;hj|gV2^ajoTJA zy#O0OfJKbO*$!G8g3lPaY5YC$mpkc0D47KzF|14^5Fp)Q;2lj$6?#o+i)0e>t=z`E z9@(3zbWsySwPI0PhjxioTQK8#r_J{MOBe%|_>@wFx!#q(ohSBCaF#Fq!qs8}oIb6cghP7w*f(-SaW9 zP&7ehdg&YUsnoP4a6fam4x@9vVMf`_>s8c$pSy991`3My9AcaC2X}D)?BK+^HJ4wW}WJc)ury0Z%g*8wx&S@4;2a(;P38 zuuqB&6-PIbVUO>JHvzKlgfy$hwLeu?i82-W+;C~8QL7;%mlhp47 zPgBXfB~jGp4~c|Qa|q#xzMb=;Y|-WeAah%(tdhCZW>6i!4g8$#ufTj1@IFt|0=Tx8 zQks*$mVquoUq|BC5rS&nUu$t1`3AZlxo4wSNV`6|Zek+Fu>DFSMu7SP+GLAnVSm&_ z0(T{vF6LVOoWCpW2zTN~itYLMaNv1Vlr3o1B%)QnHaAyPsOa*u6hZ_%t|JTp4R#~H zdB8aiDSqq~>;%s0!~hRwg7%5Lm0@ruYcao6sOQPVSFv73(x=F+K&ef)TXvB&eGK#N zsmdBlsXgX#p5CF>C?DseP((2>?E{b1qkFwXzk4}mLPtu%i0 zr~69$YvwMm=qpe~e)D!=n7FHjodTTptwn!Lb$jd8;VDUeZR|57Q8-o0P^s!YWS2XK z*1R-KKwvE^J|Y7*BrQ`!?=*&g`{!`!(09+kT1Ri#rH2$my&b$sY&e576* zCx^!6lPS)CKAIlY@GWCJX!LG+j1Srv(ny(WI42BDeQF^G1ZZS03tjoh@I1q5tG^*H zCO&V6|Mw0zEeu3FH_0PP3pdrL2mBa<8wsVo2ScLiEL|?{2qc56Hfk4ibJCDqA89aUC-J53T8fByI&XL+aVjzb5(upHtgzvnMw3FmQ_xvU`VNz zcvDO>7OFtd))qUs#IUfxhPQwg&4WDQ757F!)O*#-zG(@1iG8n927q7$?zV z9mjD~k)aN=yi>c6j2-ImsG=-aUF>xVdn}jwA!|usl4=T~S=dx#rh3>*d28ojC26ZA z42>s|Pd0=RgndKAGw7g9gYn~`KaQvFf|0%fxX2Z7gHrlm6v7e9-}G;xzULeZ}9YQ#qk99=VV+ zSvdzjVDbpSFxZ~Q`?qWQsPbnxw|s6)!<`8eq#9bwsuDT1Jp`8DKQfx(X*+;Xt*)1q z(e00d%}w&Ao|<}A+(~A3hYNxg9&N=hq#8=+jAaNK?Z6hqXLmaWST^;Hs*khF%gYR{ z!#ao#T(!kZ$AUkq__s-685IpvSv1WIL`vuZOPEhUm}VoZW?}cc$W&+O{4W-I30Dtj zO(s0-*k5&;nRb4YQGcga%n(zlOoy?s zffuy%WSJH*=`kMy)*zUUDGiG*G%5Ul7F>N&+cnM-Uv={o zVRd%ePzf2wkWu4Xm?CD~18MZg0^-TYW>T($LsD~o+d=8p3m0OW)%Ji)Yb4U3Y6`9r6Jw?U zvWy7h;jAafcCPbch(w*)aaA-)r@`Jmr0_@NcY~a8srJ9Q5-DrK0~{j+S4t~|ByzS> z|2T?UtiS>p^)3<}h8TPSj1T*Ji7)I8l6iBkf4H*00?OB-Yl*7uA3bAv-3^w{kJsXn z6qO8>``3F?L3q>iWo%(r;y(uU@Xz>9)}FIY|L~L)#BfV#Vn#Y+^iQmTh|YI5%S#)jFqn?-=-6@PQrvZZ*YE2T3@ z>JJrgdq$cjs;V{c+gf=lgx&%QQ7nfgEQ|Y})?L;Ku{LQ+_q)R>{4lLb33HwzwoW3> zMK+IiG6C!&X~n&#Rx3TW6q^~4L1t@CNjiOdw7sQrsC+CRU#c9B(Qd1E57u0dv5v;} zi`TZ3C=rUgiQJM3Wy#_}RbKtFv=H5TVH*iDLHpu`ECN*wDyycx`H*_Z4h!{Cl-yAp zGxE(M+{N>gRjFeA50lz?u3D`4M4O7`1Y1#hE&1|q(D#rK2)C8FIh8sff74mx$~9=G zVqRQFTLBo0=+Fth#BnYf~tE99J8QMKx@Y&o!CnHZG}}De)9U1mN*hlZLt^OX~9$ zhG$J_YV{GTP^n!*`UG(Nj0*oQY6)SxncTnlyP6Wuo=&aETtY$WSC15WDTG7bHi>FV zBYaAghpU@WW23K}Vo8PWAEky$UXlWz;CjC|fvXC6cZ~zwa6UD_YS-5M9{;CR_1`n= z8#DE-H+uG$CHxFs7h4ghn^20SYHyz^f}xqx-ylPFrM#AG6N6np>o&}C8m}69%z7-3 zELa)ybloz9Ld}T7Y2Yld)=&c8ON@*~O`HZ(vRPp6Jkearh*3moKMSpgbGo{kfBsD% z>BHOW>nlRFaT7WL>eJ7mb2NVn(5UY}_{pHO9`%ci@V9nI>eLQu80;ddrQa=ew;p}J zYKB&JW?pG0PIja^PkVxrr~`q8nA$8n_gYZ#tV3U5JB2IuNKtw?*1$R;@93M7GF-~4 zrCh%g&eroh!`XRHJ1hB36&9jlsuRkMK?1*gBgRTjM4OU>hDN0!xR_-QwT!fZPYOdo zfKl{Up~OC;aD*X1GqH$k(N8NRZD^_oneXi@ijjXVfj zPMHp&)Hw?k-x=I!{tM181E)kMolGDn;A-5ZYH z+mB=|3Y*iF6%uUm*yY7FpBCA_c?~=)>qfToc=M<1qGdHqc0|1&L)p!AtO>J9Y~iWH zl2n_Sbyg{1{4JWu|k0of!2#yEn7c;M<+M9hL@N2INl8ydciR zYsm0F1hbNZq$r_1pXfs=9{$?~*FS{tmKEU?jA5J)oZJwzMKE)YWaL`Ru7^&>?{y*1 z9O=6_WTQG2U7{ik_4KP`&hY&V2iFy|88D9k z59tPY#IEO46uDK8zpuUzU?&! z(?kTrte95!m`&;oW|??66|a{DmjeHO3}I?QV&Tj~#`v3ySwM`D!X}HT(!BN(p+#} zSKl&j*;d0})}eZ4y(~pqrEDtZS`qDNMe7qGv4fwlidlagt-S>VEhdmZvkh0!xd<3k zUW@%Ry1c}9wQ-i|-Q_F4384<$apuE9wpa~LuNkFOShnci#pY_I#*RcRTdn{ouqUfG z?WX2_qDrIC?FQCZ`O5{}f^h#sB_hrYO#Fs@24~^-Tqk+z=E7at?i?k>rDxd8^l-!s>84rWJfg-jdplQb|?mxcDiiYJ*A|G zxLs4_+<^`~Lx)bX59HdKKd+KhNSoNr=~f>EDI+rS0tQ&ak9qUW^q2#{4&+4ke?V`i z&LH3uej|GzPJUHiyk&VSX+Jx6;2$J9JCpT~8_T92f7)ev@LntXm}ASzQ>?d>La1K9 zcBYlo?}gC-a^^D59*v^gD3?j)zlRB%$bbUK9!dka2U9|At=UHNO?M}$(z94Y$5AOx zs@WgpsBfq|G9&A7xF>+imO<;|0UQ%-zt_+=7-7R2ueox==8nd`ugbk?ZipS8V5_{QXk zqR`M7Kli^EL>9V~i<{H)hBXFVx!PTgk`035Wq7y%0fT*GK$yxE*~>BnTaUM|7;9~A zpFnFHHBlQbzo!8Re`KscY0DChm-Np>!?y3p>XnXzN@h^erXLw>^9Dk&eF3aO_Wbrs z;ZYAVuXj8@?>m46kTSy8Z*$^q6Vi=aAScU&x*&>^fC~t(@nC*nE)yQF{oOxHhKZ;k zb6WO}$;3jTALHzeWHO0%u9GR@-gZvVI;h^ii4J>wF6<~ras;xXY%AVtX2zZ}B@McY zo7~*gin}8w9unDJjqZWvjjv7c?Iug>Cw-6YUxhOPtYv1nKA=-!CCek4Y4F6nlICQ!KNbnp-x;0M&*5!gw2n_Bj zNvqU|r%SY*CjY6fWfIjm4z^y~a&C1!GwHy$raCD1^7TYFkTe08q+i@`N!nr&>$d^v z2xp1YpL?6M?Hm;bjr$bZgn%W2Epf|5Wm;PXIIl6vbgIfaL@4rr=cq~6{Ey#A6P(nF% zM8hS|UC43y<+}UBMF#)ehzv4%${c9pHu^6_DxlIuBBAEkY-}DaY2h)e2`Pvfx!39I z@d9g&rtL$@oPL1AUMQxFjql7n*e|nyTQX|%?_8NL<^16fHa=jX)I`+kZ13G za`?RYQi+*lvSp+30wx^6CMn_}ttWKfIk2;7b0CViZeRNH5we+@QY2y0?(-)-=x zIWNF>VLfMPjZB1-%&V+KVU%FIgp{ecxXO2-AM=Cy7y%y=o~lKMk=dNkIktE&rBVA`7+ODXc4l({n);*94r0=`Um&*~)@teh7JVI5Spc1iTM-iJ(%!vHC1*V1{jP zbpCB6w7`kyn1~jypF&m`rU$TqtZHV4vA?kIdNj*rnhOhc_~TiukqUWKY3x?}fZeHB zYAh=^zCfTRlG9^3ZhS{o4|l|>a;gJ)Aa&quNib+Jz7@VF*MoWW`IaBrghHp29?R+21*(MP;oUIFOptw?)|X)CFq z+IUl#a8mK23VTLx?)QGsI=$G?P#CNwfHm_jw0FA?ZmVe_=jr z?>`OM0-c`BN@tUw5$G%zR0Q?+zO}iTo{mmUmn3v{){yZO?%vAEI7rArmThTi$)gL> zU$;w>wnj$o00%VZ-2&L(N>SOn?Knv696P>Qv4Mq+kdnAzdA#~truNA9b6h{;knQ?b z8nQEAy;##$W$aEn>F2@nZ@qyXmd9t$iv5j$%M>3DTs~ykPr~beB4Z4y0>3_=)r!=E zunWvUHO|i$512ZG@L~`n?Jx5!aSV!=&sS3lV}D6ozbHko>+SImeH^k!H7u%SGl-ezXfX*8TL`T6xp>N z2biUmLua&a5|)6J%EY15mL)B#CJdd$Q!wA?ZXJcQF-J)FWggXjWvdKL4cp1VDlf-w zF#H(AhTgT!5N>Y zoVC?TI2%dH_VwUlz<3SicTzk_mSa_3zj`)b1yo9W{u+R)SSE%}pthJ^gIT%mC-7_2 zsIe##_0&S(@8VqSWorXfo)1W5Zq$j1zZjeL6SJ~NqXzV~_F~9s(&^s?hB7Qi5+QKX z?_>(34)Xj-la>ii^$}Z?$BWW92h?opk;2%6Dc4lpnG6~g%E^?2#1HX>tvGw(T}}w< zBWQjpoeh9<@`|XTK*!4~+(Gf63o}`jNZ=r0lFswHB)46MC z!}@+i_pH=b(PULE4AWmZnQ| zyMq~Zzq)uUuMH{v2S)NDc21@8gG}vAYssQm?R=nEd9lpeVB~kj!Gzy=K~0a8%%)mg zCi&G)2-($edg1;Uil>2PUxyG!H-7gv$oG-W`hy{Z(tQl-d&QdVxEy2Tn&`~~Yozvh z<-(<!$nDw(wk#T)ZUPp-4A%T8R+l?Vtq~3sDm7FyqiOQ$@OR%d2oEq z!FsC0N?kkMxhIEDd`30aZRzCjt6o!FT8!#R9cVmGcE#N%A+J*KIA{O@1$h>4_;W;{aM! zA)j1Dw&*pBGuJ{pRnfS`ef$L`cSAqu zOb+4;ZkhPRRL@jH3=WPA8x|J@3JpXE-5K2Ki^(m79m~~QSYtND^3BZ%zZrFgxl>?= zHBH@ruf0+rWXp|SAX6Q+5uq0km|WoB&mTS#IOKyqu#==%35&oo1m85W?~GX&=?Snt zmY5@aV6X4zqu*2_-T%T=>LigI{2LO?%LY4lW|&3CIezfhD4O%qh(UrVS_o)|i~kh` zsu|O}srh-v=#Fi@Z8q#E?l{xbw`s-D3uhM_M(Ec6ywRzk6#N8v3h{~?*485QM!$yA zkpsZC?UkW93iR!KkV{=t&SF^h%^3-SakIKKK7+Bvi&`e-4(vj_dBxJ8Y17IEV+NZe z_M-H?$)SE>uujkA?+in@)&h==D`Bd!rVwAt$F-a&pTr-qF`>(-5^%X}V=$GbT|-;} zeA93oQ(X8T`(D#KB|9}o!8u&nuc4XO+&e8E(_k?PWxjU;dyd^mJ08{1N7bU!yx;Bs z7`IrI{*ug0kQ(RkSp<*A;+K@0cS7pJW6KUH{TN3dfgxNy82Rr9fq=zaVlM6}VUQ>y z=8-6UxUG)~BD2iCxzqFwT;AWUR5VWt=8>Bpc@Dal;pcSIWltcFbayjkmhv9i*Lq;Z zHr_l@a=OCDe4}~`ME69ai^xbjMn5>j*#(h9x z#(h5DD;64lwH2Q=ivX`6ker+Td`_I9O)zpWAA*1q4ByBbY=|U*2Gr_K7xX{7dEDL+ z3(%R|y=RHo+uB`if;#c&NKS;zP9zaT9E zXoTD4KEAWvXKr{GWS^lM4+ITUzCapg3own@5e1>2J4y@Us4lqwlr3&<2nvLZC>kLT z1$JEf3TnTWF!TkB}|Y8Z@5=A;ji@KR5#* zJUb&AdGL?^TF`s&ql6yFZIZ?@`OcpOjMl(y~TR-7gmul11fR5ZhZH7@)$k02zbi19Rb z)zPSaZXj$-mt7>g-(zqp;15jO15n$4 zgn&T`=83VXBS!)_Z|~m?Oy<-20q{3Cg7P_`o^Qr?u+JbSAeT81D~*g>B_I=vkdHt1 z(?>B!W+e7rv-cH(&fhV^A4zLUnf5j()$vXAP$|BVeC6O9m+cSW6}6YU07uwx8M zJI0W22E{aIwl6Sp2yf%e`h(gq6#4NhSPp12|8ftYxAXt>$kwC@_#O|=n+4NJe(O-* zA*zAmE98np@fLYIh#!7QdQZq5^M?iI6`4=rUWpg_wFwOn_gC!bh492VE+X#@fbhr; zn+$ZRHJ}+C(DN@TaQq^>UJmIMfz9n>${j)yH0Xr69&&n=`&8rAcu)H5N&kxW(*V{u z9)PLeuTZ=rE^izU46#>V>;~sGr1yOW6AsrFnES!%-}F2QTu0IOy^UWMnIzrmCDERL z7^CE4e!~_z%3~pNg`OgAU;g5hqfO;C#R7 ziL)VgvZyDwRh|P9HuQc1-gi`eJ{B&bv)!zLSK+B0qwcjPg#A4ffnHF_k6DAypPzc( zPxR`X97QP91_7jJF{rKpi3uSS~LHyf?z*q?O80NG=GQj0^b+NyV)R zAB+pti^|bS++wMjlmiO^B<|Ew&8X_Y{h{M;%E$#SvH3snMApLRJSDxE+Cik?pzy}4 z8x3dk&dbpXD%6OBOH5lS9uSz<6JDXPE~R{f;GYV+g+jg8!sB+bt(lyI7k>QW7$s>%fqK?`H}QuNR~`pJ z!yWoz80c;cKN|UD41YcJO#y2=5+$3t)2GQ8{#UHqND$~-c3cTFp<0b+AZVG_#*JZb zx4}QFBK&wXlR@)a%V1_=7=l6IM_ll4<0#4gtHFPfghL{Vl*hd|)_;dnApcTlL?9$F z!j^-YXF96(i&R!TJJe#Ham^&H2;~5pRfg7I&L)%<{zK2K7;YCgDEmJSKN6x3PT1`# zZXZ%UAklhs8UI(kP5%qP`)>*{MPMBqotX7M&TapL;`_h#q!D#?urmFp?rvqC;)D;u z_0N6oAME!(dA|P!J^v@q$HvLR{Qr4AHbzE{{}laW9UKEl7+besPMCmilWz@;4Tksz z@r_8Am@uD^xKs>6wNd-DNZ$`%rs^V2h|c)8MBStFYa{;tou-X9?c=h#O~qnP$w8eU z`BulHtgv9^5zoxi$dk|SgwBQ~eVdD}Wp7}s=@CB|MHsaadQP(Kbc2jx4S(>ScEq5TUkYb@kF&N_?n!r=tnZQ z{1%tVeeu_v?gYUjCmYTQ`PbQ<#5VLc{^x`am)#AnUFv&{?%TGY!Bu{C$OhcuOa_m| zPmOM%p`fd($xNO8@A|?@tkiNze7Gd1>i5bAPrgg*&4WgqCh8(#`ifZTLE;!QOW1<7 zpWP-aO4sn;e<0<|K#wu?pkk{}TmGQu%q`oSXM!B5Wt?<68O4pl?XoqkW@YB!`?mrT zUCN|+W_g4cqVd;b1g6t;2V~*Oat|6W1S#Yd;LV%%2nNT(<;-#nE!f~(I;7k-lJL&k zTdM=V7_f8fGQpTv?{L_0(Vvvny@vbE3zFO8e~m{Z;Rw)cV}(Q?r-*EyI#tIakS z5UdGyL7KgQMm(n}1%njWQolC%@+L9tE>@gqY5ESfU+&^ne8qCKOXn2eM&mgW&_g5` z_H`X3qobaz!`X7{@Jp4)zY`kK^*Sa7d;nTKJ9WJw!kzL3e1w_?$<`hkw%`(!^K5Yc z2}v6kuLTJ+alnLAMZCGdLSCrB@kB5HaCYY$Ru_hQxA3&+8Y;ui#QyW)x$*5A=srj~ zcNWA=5QVcP1}^#|EiNS<&n)%CAIk5r@R+4W^DfTi63Y@^kFpQ4IsB9097nX+oQj6) zdL%wPv(MY({n=`S3TH4h9%e#*OS}6>rD`#*mWn^l{I%SoD_zhvkzygI(>=i?0a&gB ze`U_t96AgF?QJOhq_w!i9p-)R3!gW~m#;M@65U>uO1gb;vZW_PbZ0xou`1fT(hp5e z2#ZQwD9kDwv=xnSHyLo+-Dc@IrrH;0mJ*L++He$OS_`iSLgf;TdPAg22jcjmaz%A zvBlu_yJ_EH9_2RN!z?M!UQllRm_|m+KP+jtBxnWdyX`msMN#{8Mup zjzQWu4Y~;f)7&wTQFe5@fN^3=fjNtA6EaFB%f{Rp=$Hd%(Ug&2Yxvt8;)vIgP}m`J zhC)BJswtk73%ESw9b{@TqqHWN@VA<;H4(R(EysHAq`x8ApW%6=_p6>cPHfj%|3j}f z0~F;g|HIuuBRUIKFMvZE8+9JM;0k*O>x)|=$7tmAN?M{RG#LSnuMle1D)LQAv%`sN z&cZk^ASqEMf+n?F7cnUPIXF-wi10|LSQ1{j-`@AY4l@F{eeRfKosuA_dWwq_`&wcj zX{~0G*SO~C!Nz*Ma4Wk${p+*7GMFe^jqaH}?5IQqSyA%@s{@NDVH(mlMO5y?#}c?; zD8~N4(*<7IvZ4b6dA*9V7;rW%vl|WdDO&Grg1c4x)?9_Ko3YFu#Z))4HNvI9DutW8Z7kQe7l#GS%PnM)n zP3+^j6$PcDx>>TtuFlv!mezl}cX@Kww^lvBD7Lifx~2e8yw1;=61Y{JwVW?Bc7hjj z_KzFUzjCVuHC;$7mH}9ul#_&UE}t-2L4T>o=xB+m^)bW+>GpcZ}BSoJSohyY{k=M zezL3sS~q~ivjs8jL>7EVM;6CQYG5@XKSy$OY*p5xEMk$6uF3 zB+8!;PfEgJNChGyjFEZ%Iy5Dt8)!G&FO&rxYva;h6_1VDc&z$E*K+45(xHK7~v4CU$cR=lG#HV1=-JAEXpCp!%D?G$%=bM zVd;IrnmqT}kzXR`L9htpe&5hu7*P>>DKH$0jg@eUf>y7qxld!cRwg^rPid3e$-i&m zvTmV`dnHOMu&XYgE0yt1IXe96!=ig5cFvEU5h;Bf(bdf#k1T{L(~vfKU}j^lh`xs= z_E80b36OV!h&$zi@rWnGYfFWrhK8r=`Ix1}O>32v(^AHwGVx4IA(&JHYW;D`|A;US z%#R=kiR6BV9Yn3OWJyvSvtm}t)uqNz31A#DZqMO0dQ7G1x@aTspxT~Y`Fn^kc=;MM zxb5!aqH7-MiABxZvsrz&*f9v@-rx1$NX z8L=1}+&7ItsbXUI9%MSEByTZUV3;IxeyWa8!Cqmx=&ROKnGaP_+XkzV)+rZn`&z?L z_Og@l0mmh8tKr{aic6hLK`7WdsISU)?#_cYD|Z?5}k_+{9iY5nc0Vg#vN&uvE;TEkbD0 zs@PzdXnrFLRsn{f!ga^7)Ch4fnq~sqD0Ei=MT7=tQK#BiSo>X9*)J!xGS#M?$^H=Bfl?gVV?9i z)_nfFHs?VD`43G9pQCyTZW~@B@d4k+(YD_o;NaMkMc*xr7LWXJ7Ayh&ic{SOvy|F|f6Vr&IYXa5w zXBtJmRX3Go+B4N+OvNT8u{>>6^pYB;K(E5KUPnJxhpUgS^-Qq)MZQ5RBS7%!IA$|2 zyx9ktPFxuCK1r8yH-Ylj=ynK-@odqvOvJw+b%=Ut%d(y(%GqSII@Tio zEFqB>i-h_pnd*+o$*l?4{Vnxwj=D_YAfqg$YSC`+(fxX5-L4-kXAKz!u}TFKORdLz z3)W6{0_sMygX?I3ju@x0w{X45o$ijhip=(h#g3q^Uy$J4+}5h&tHQf$)pVuS2a_(| zUZp;XJFIL)fd#ipbr@UcV!5jmm>!4L$6b3pmUMKCA)4#?!(;(G-M%5YU@*sJyc*p+ z{!_GV2IEPvdxz5v36_f%@LSxx(!;oIK?=RYYXZj$jG_gX789hfQ6gD;-0My9-PxVLEJkOa_iF>*#Y?&^KK35FR!K=3TXzI4 z2cOGzBu_!Kbf9$7{b}-5!WUD9PiTD0xA}$}lm|Z(?VnGm)0Gs4j!i$cf=( zFvwgWbEVL_eerFaale*1-F`eNPKOIDl(da!DZkzi&ZKgn)iphr#knXDeG5(Zr$FdM zQg=M@9XCe>b&nb=iIaJ`+YC* z(PY-iGsvJ*_l8Q-mpUCXHrXvvQCY{&8=%Hcbqy_7ox&d7>})002)uoIb^69wUGG@+ zr(L)Y0Ty;U8{*zMc|WMB6mrK<#3GmuUd<{$#SllqhJq)=#4XHIAu2W!a~p{kziP2aKIm)PH=j( zdT1P{wHz_BCqd?;waUCXpE!lUQ5_nO=H9qFn|H)})4ypkCuh*H#7cc)=F{m9XG1B_RQ-`YZm6!!$-vj zUyTzF7`}X+``&=#%$JVYcatgNm5VE1h;=6msb`}YCc)7pAql6UBMxIqtRTc6zI#H&VAI>=-U3XE%MTtl^Zz15wndrH6WTy@lhmTVArzvI1 zIEg6y{B_P_;i(5r9($`Xtoqk`AEB>QI3>OiLvNYb|3P**>z;R{_0kBqqR;zkMBKBGLiKVt|z5gmVDzCBT-anCWr z)k}W)DPp_>VMp%|ilGY^HCn#Tht%h&9Hq{@EWCRe#OB4(qt zB|Gx!4|SJOfgyv@Do+hRhL1vTPUZGw3Re#qt}42ArgC$nUfMr`*1k-8a{TGh$-Ki? zgm`E^p+X&Eo7Op3#Yw14>X(ME>uQE2)grF$rnQ%7KT3k6qd zZ}ucUa3H2ds_wq?fU@&Biyl?nTN9T8+o96OWmu_lv4cjdMMu)A2g<&%%nGucOI2_9 zUOcRtm`fBpREfU&bcIf3>5`k!R5Si%{K$jTr^mF6h3 zqE$4|;q^Utr>Y@JwL~SEsPE*R7m~FeKbsOgt$QRtWWZv; zgSkLguYBQf@eIEtw%@d*!@qqk@|uEzv-7?Ec1Ze<`I5|8p4Gz_u2T=Y?WTTO!Sjqm z@X|GeOtIyKW`=-6$0$i0jI{l7a3N9Y9j?c_+jzY8rd?gI>`TllQKJgHgtE_zwab%! zni8bwvp{63dvYVc=RxzCrw@JMtSgSuM}>Gwho$6{uR}Vm0Mvu9}XFwTx63OSF$(sPG?(byHexXIMyxKjq1LdqShUis9~~v zjh@@M`-MxUOIW?0o&neWm;N*{GDqaXo`xYeL!Z6%A>L9oEc#-k=YOWb_~U3kpT~wz z<1Oceo7_LXglEMZ4b?TcnPpF9n{+Dqw&L{;O|KJqSW)K3q*JrL#wS&B15Rc1-U=*z zm*Dl-!pA1d<~Yy2+|RWp9BHyxDe!IL*~c>O_8tc){So7gMm0h4o$C@<5`zE%meMH>RU96|ynXRB;|9hDt)qasYK&wBa4Q;2Ndh8pMRfqE8yREj;ip=uom0?U9l7bp)XFzYwSFw7||DY zNzbWCUxEF)%k?9P^~X1qu>5bVcRSbLzsdQU8_rpDEF#QYk7#sczccmQqRdSO&ob9< zKlUnrZ_-1|NIXfaK9{xhsGzFihZXwMdNHeO{;=oju{NI$m!7f05uehvWn!dg$$eN{ z8QhUl%JltAN!R6YX6BvBP4U+|>)Kr4$l1uAw#(=l9lQ-)f!C~Sdw%KA2Svlq*URIq zjn^Vi8iXIV@QEj?oyd8jagv3Hj{W;HtcjjTbCSKRX z&{905Ym@6Xw|3vjKOVbk$*Ld58r!_-c;(cj-sB6Ljlph@Z-Xv({me6>GAe!VDJ2(P ze(aKLD=@k*&CLJJqG8Qs>2RSLN@R8B*;?YHf?4x%jvUE_F5(c!So$;y2$ zWV#TxLbbbEc$Us}-w)%sE7Sq4+#gBWV*ED*!rtAfyQkWmSsqI<$;cC^I+cC5@wnF7 z2bFuA;^1SpBsykd*4sV#vyY-W(awV=^f9okIgwUg}i zk1?1r9*R)$uqaHpoZxxiAhfqLI4_Y&AK9U;@4z3QQ+DApHLt44^EWHv~ z=Fh;{-Mq%$+%_Sioz-$)q|M{Ylw$=Zx<&Tt z0?ES(!>NJCm$hdz4_wlInZ>Sb=@g4)e{*8k*bwQ_d`LaHTIpc<4$=|TfV0cACC}7^ zEncy6Qa`X5+~-=qyje#dH93m?CR=(B=sa;tpNVZJA zI;JEj!ahUyY1M76{7YGJn&uZ-K|_gM_l{6^WxPvDnL2kY$iVy5si;V{m->0_F-MH7 zekdcbQ6&caIx{WDa^ercI0WVsPl|j^4;$xdoI8H=S~E|=DTb=HvIW?}*a8Wh#gt*> zO+6VhYewiIaL%w1-@3!>CfFZj?cemeZp6*qbPHajbt<9!#nAM(^myNBd0Bg`?y-Y6 z_cVPBy{{xyVIXQf(xk7*sg<3v`!L>O@xXFWC0=lvX^>ivormrdP~@Xub(sMk9`)zD%Ji>frHoN<2}hi z?4ar3ph?PLxFKtoSXm_-j(cW#@5$*$Y;DfF-d5y%i23OBad7CN>*kHK&BG;+yIW8% z;~P^@awB5LzF+IxeT0}-T~MPHT)JN27?IaHpfGTHM6pu&P*KGM?V(D3PeD&buks?X z49gGQDQb!P2qoQ9g;tJBPch!1)5s*I_)k*@df#*$MJp=%EoTFtTkdJRWqsI7}s($scs_MAYLsS{)L)YnfuXJSWtg%PvRj5 z21UCO*@SVYf`WV3S&5%R7NRDNTP8!IlJ*S?J@=D)s*YUvK^t%Sv^~{P$nN%o&&vMG z*Q;4puMb!;eEY6)Y3!KBbJtOW4qRLJ>N8QZcBGrQqgwyvLyr*yLQZ{iXT_d>avmC1 zx=Jb<&Y;XD-e_QnsyXRdqN?WBm(e2mNelp*u?fol755Fbrr3${Mr$#b#y=&jn zJfWc*vtcVQEbC=qzW&Yhyq^Gvu2%8^fBu7#;qyHLqeTL_xmf1C!~%F`lR%6yvrlV6 zYP7##{&UakC&c0zFue+9!bJn@l&Ha+Y#*Cwvn-x`uJh-6qxv^q#`9|C-^n=O*u-&c zDyNrAl3%hTO_!GEl)#k9$!7;;Dl-R3>IJXQ+utg5dv7P?cJ^Lygf6lp?D+~i_oY{T zFPqZu7ps%V{aKfaxW)so;8kKK-_{5P=hHP9>2?WA)Hm# zoh#q~HV)pa@>1nMhr?5wkz$=|S4g66Lv38~$8=lwJ;%N9Z54WQD=>5Y&3Krc?`!k9 z7aOc@-^>nOM>@Ua5gBJBYSprjtRr1USQIxu&ofzi?NOwr9(55sbo8~oT{fwvZ|FXJ z^khzhxTE{(ha+itW1UY4S6@xIEjk3n_$~*}oo1-wdGYGQF$S)E-eON3PVd0nsjlW! zea{#DVOhta{K5M-C+ce7+cW9uF+|y)J5=E0RId`l++ic;fb5ukvR8~KUeCvQkh-yl zVM=vx_mdcrC(^n`8qHCbSuW@xkL8_vc6*6c{7CPMm3-9!Nijk~<*CWOg-`x83SEOx*?x13$;p>n(c zPdKBMXJh>1?Teu=E2#z#*Bko6(k)zY0SCBu2R&TRZtfi|AGR(u4lqcrCN7iq9r^mS z$idE5rZu^XgRg!2cQ%Bug>7Vj zlJu>cDgt&>h)}+=PIgC1<*{4D7YEs=>2X(rtmFhLew-gjN++l4ae2$HMdzzmi^PZ3&$rHc>zDJrITEoB9v|I5rWvW6j&bs0UL>A$!9Lm8 zX?v@Z`*Odja3ASLO%x+jm)`Na$35^1&LSF92Uh&-KI_aJ7q1VCp=7$WF?ioUad^bK z<|}ViWyRRHVsWfQu-ubomEn;FF_J-lqIOObw^>fl$**hQ4z16Lv`>%wtiPxYSsu9e zfgZeJR<$xdA=V^stoZRlt7EAv@r`_BNb(m-R=0rcBZc%s%(FKfz7#eU-IaJ1# zZp&Ejw>)X@bKJ8z9@Fdzk5IYF1nb>TebZ=Rf~h2Cu}eLsY<|+S5SM!umVbqK^lD+S z|C`z3F2DI|s%blHTQwd*9m$zrGVfnroaCZmeD8)qXaogyxR^`Vnqu036GtV|oO5S=lTfrfG z7V!ir2#>i@o;>{hqj#}HbY{2O38Fx<%TuJ|s-uvRi-CHPe&qy~ML16e^X4V`O3Ryr zmj`zB6PH}9(7ZLPN&Ow2YP>bS z{Bn98IK5Jg>t+y_Gh;u~PA(_DP%C$e&LJum1hsxCBsb+Pp`-4{P;q&t@ zXCHlhK2~K`QIyfd(4||8jEa*bgp8~)VqbQm+!y)1m#7$s;r;h5p3A>!&w zD7%=qq!lyrtn#q;g-iBNX~4zNi^apy!-R?ir3*thMW(Ox@ePsmY`qLS&l(aP-n&dY zy3@CXCyH=5z`*GvmFd^*jwz^{hw5N>n$DPV3fATSYk}X9g3~^Iv}Rm*`j{f zdQI(-f!?8Khg9z=ySUwch_8Fy+TtT{CS@kK&FF>igEui%wlU(A3j){8hG*vv?l+C` zw_3<`ORBnueKwi!oSx`X_-=1bBk>*0_`!y>$!|&*9s4S($K7%t7KF&COWkQ&)%~IK z7L~XpF-c^U;?6#LXF=|{l+LC~U-7_%;_UrWku!s56{UDvBpvD#t}nh)=!uum$rJ10 z)^Y1SV|=K$B<29^B^?guO4AeOXl14rAg82>)uaU<@`E@<}@~AK_Vu4MCR^= zdFS@hr#nvEQM;NiZQ_>lvXx`yg&ekL@SMc*fTNGk_iCC(S`+z5c*sPQ_W0T95(@tm z8Qjz~J$!^MS~&|jBJZyiCQpM+S6$+H=YLFSuO0I8RkS6^!1;qq6txPBEfGDXhLjJ{s$JsGqQ{i}(0*aMxaVeB`EH*6?>kE# zbxb|?-NDO9vw(2Q9S(Y>H`ee*!lv#rN=Zfs9nMb@Va~kS{hiLOsdGw?;aYi(V9ZB# zMccxYcVQh5KJz+}p3Obh(A2WHXH@Ik*MBa0jMYpQop9 zStz|ir)!fcJrGz9XT9cMTX#Xe;MqX+oc)3KPxw&PY8@F_1e~u|igZnaQO+}>EMP33f^3L`VU7Fe9PAAaKBKeI)YbeN zV;BAKQ{5Mmp9L@0Z}jW***A*V9OAR&tFdOwPYbm33L5xN2GgEy)l7QJ7j498bkC+p zOt6LBM?t{BbhNVeqy3?Q!p|E+<1fS_sf6ztblp3X{Y=azOU*<1exbmw%O!a!ieB7({{0ddBeDYOY+K3|lkRm!pAgq7QvPC0AAL?WTcAe7_>D(it0*qp|tz zOdkEdBE!vIgVTuKVRd;l{es=byuP6nxjX|sq}_#Z2@)SM6{+&*Y{M( zs~KX6rGm`r>SDo%FDN}(lAPc%d|XS^G2AI4C96tFvYtid$<6jZ#Rv)QQ}?*V?pw=# zk>&a^>86|~U2L6&A?CpX6%&WJFUPU6qeH&My&O1DdY!6Cg2ABHe__~@_Vn{Ba!3;| z1IsVe-q-fLItZ^A|MBG9r>`xI`Z~E;*$EtJ#9PN1-h3$0$uSG&uAXn~W0a?=wSzxcn0Z_Up7RX*zQQ3Abik6tZOV?lf5x zCU-|hxl(5bU*5j~OF4rzVZG>>t;R5WIm+}(&+~&S(QEh3^69HYp3Xm5uRL^|+D*@= zZkW?*DGi)q| zmiM%;V{G^}sn7L4_|ZI-)1zel^?-69MyurDM9eWW^w-X7Z_R0R@mI&?0@`zjrrOi} zwDuzJaKU+{lXhY#1YWCd)C47Hj+8&p>tlD!vMelm$U|+IuWroy;qCy;pND%udcVwQV&c2rtucq+gB zvTxwh_|1XD-7s~%G8Py6Pt_smS5MXwN7IguWq5}j?)K+1v2ixKZ>#^R=*cnZk2|!C zpG;q)U!IywoJzMTOKfLpfnSl>d)TwkT}z=ruiCIdQKKl%>iC&X{_6e=q=9`VC5>U; z{Q~jt?S}j%`>&(?bp1th%l#hlzUE7cPP~qg@QEpYlCI_>tXk=oX7)w;$xR6-A|uhO z#cQZmu=!kzWB7A|+YIAuZ_R@O8{)!Bl<}qYs43nPQsx1+*s0WygxfEpdBVzG+J0G< zPq=0h)~|Bzv1?X;roIxq^+deVQK7cM{6&p(9brrkymU)%2Pk{8O4^t&Fsz$vIrgjy z(Mzo#$r7Bf{j7Ol;BupqotE7akIP|6Vo|}BVO>97+l53a$#5b|p`Y#*O=nj_skWmA z4=`6(cfDchTMKWyh$yqKD`)JfgZWeS{xJC_ys$C(Fvg*TvER0&-7)b&ANOI7X{^^d z{H-?^L}3eOW$O4N6J@^9jn&qai5c;pjNJ3aXR$4OjQ;p(6+Rl?zG}7-v+$`!_Hbg8 z0OJj{PLC%`i%vo;e8pEUWgn$Kkakv}=&o3Y%KO+X_j*$UjHrBkZ)4rtLBdC@&%)D5 z-WFN;MBH?S@5;y+()D47u+4xYELcl`ZjpX%*V2ggIk~AOnn1fm#eJ1y@8RKkEr)D_ zd0e|N@>y##PQ$ZE3W*avT+QFv-}OZjIl8_cUeV<))iY!}a*@qA+ILnULO8kcK_82% zS1w_sE-y(R`$kN5r&RBq?wAx6-nWJE;=-{5nY-Q$+HS@W8u!i4OF;82BD zi{esRZ!UY%3l>Tg|MA|OB|a{i7QMGKC}~qTm%;}|N41Y!y-SHJ`z<@HRpd68UlG*; z8QN5=J3DzMqhI(ELLNI8_zWeqXub-W>9LC@7Q<^DT@GW+9bEHYPpb^5usv4(F#Sx; zcXDCKNn*Oj{^G7(U6=Fy{e$YR_b7_XuX@j|0P>LK;I*+rK;pX%vhtg z5LG`iNx`Fx(k$~)0kc8YqgYD8NK(bj!cgEh1&NjCe$TJIcxBY{+^#IF&@&aW>CEC~ z82lnWD?D2v>BMbyg-lG)+6#EYiP+_dK6p!*#{*PM1`?Lc!W(Z=(100Isp{k=`nL9D zAHZ;2G%EU{`Bv7tn(m-8r&j$AgeUifNo)>SDQZhtG z_&!HVmYsgR5M-MfI-a!GYfZR9_&~InSzBW-ThXa0{jS5lN>*LvUQD<1$Cj_< z9?@yByd!0u-f(R4qHW%|_p(Z6cnI;i%i*KNxzS&vTPD@%8A|2My{Vl2BweDDJAQ)6hU+s1aOplqhQ)Xj%8m`~`$=(}`Oe>f=4d7@k430vI$9FKoKGmTsYEqX^ zoD4saBk#%5&aYKzeMV)NqSK?p*W^M#7snz#Vc-j^ko%b#v5n#%>+B(qCrb2n7PPXS zzC~$$ZS^JOtkj%EhU=fm&Q+;S8E=au;sZl?QRhs$b9QEKF0{^N7VI-i+?QJ%v+q?+ z+_>>u?K1J!k23A$JDpw#6|dM@QKX8nc*ZP@X~zr*(JVBx*D_?pNL%e3{%jI%dR**Y zTi~LpibStcG0sL^P%S|wzwcYYk{d7V0vO?a@Zz&xz)7 z?&e_~bNK>X4FbZo*Qz`(DKT;BN#`cs))uK3dzTV;K>AXi<_C&e4ee^VKrUHf!3GO= z!zJcKarGq()72xo8>NjmCXduF1ty{Nm>RuyiNsYoRrb5ARW-TYok~+=j|>VDunMWL zEr{s6)lOH0E|45O-Df6~)jqPTNsyTs_mX46VDV(vC)J*p#DmP^xc#OweKc-2;m1#T z1XQlGkj#YL15DN%K1^a_&$T8~8D)+?;td}(>@co?$KR$wDbJi_eRZBs^G*M%W69^0 zooW-MIL8Iz%w?nL%TK1YLbCKf7wyc*cTTyYBkO8>FL=@vq8dq>PR`h!G#U zO)B;mP0pF8P%YA#tP>dFL2p_F!tRRqd=eZ#HfH2{`$uo>%`+XfFQDb}0y{ErSu#0Q$l9rNg z2x@@c*=5f5h%xj;KX0trvGR|w2g-bkeMFN!Pjst?QrF&0w0LNx`^f}{2i-Y*PXi{_ z_9kRA@u>$R4b6L`&33B9a6~kG-Qm^8@9uux6|!)&^%Q>pB%0?gf4v}QF@7{m(E{i z4bBw0&!Q#Op7-NcFWW>+Tuq>YAA1?Oz*`fsu`qHILYGUVuJ6U zzU8^b+Ele^tGsl!mk@_I-(yqHTjLj?{6(po_~GV@G>nmG2e2UwmQS{J37#cYj}k*=szpT(Nl9DM@!Em^G zBToNO(!2fXE|VE&Sta&X4%7IarNh@#TFvjM+i`|?UZ3W3o_*zzs)PV~QIzk{q*386G_np*cvFN?=p%Mf*!9w#FMi1MZOQaLm*IV$0NWkYb*i6*afxpt z>qDKQgV_RTLif(YYJzBMs%gxb`7IhWLa9SJLeXClQjE&#iO>Do`-Q^PgJp%dzZo6= zDvv|IVO=*Tnut!*!wa8x52t?a0^fJtJ2XWJF&dT(T5ww+(%{Q-+uLWF?kIa%``b2$#s{G3v1y zj)>~&K6v%*cm8d5 zzuiQxAs*Ez~%sSI*>KR8xEEP$OifN`;RWP;FRS#9MaesI^h#Sd9B+ z{>by3HP!KEQ0YzT8J+X`CQ_o;Y`TBs#Je9hZ=WB|S(9;2F(=w(uYH+gOwCrMd#M;{ zcS=fDo%7ifi@MZ}BgpeXFO#a{&c`+eHHs*YO7r5n3J$IHQGFr6&?$7-dtr)cFD)B6 zLNtQ(L~0-2*`#~2X*-J9{IV{^q!_$6^@+{q%!=mwRn`Pjo1o6h>zK}@g)SbR&$Q0% zI_6T^TJwU5tW!IPBesv=FL4}azlC>>Z|?d`cR%7g>a~=rG`$H`4ZH2mRckk@D{_+p z7m}igyS1-V34U>=5pY$^U7S^w(dRq=?II&zT0|^IVUj>>9Q(Z-2GYbhqy0ofO)^9O ztEf1NY0IfjcNQ*`wf2qb-G;%t^(bnvagrN^u#`_hh|li(8iS%J2ua2Ew1h!*!jcZf$L*| zF!r-%O{C8}K{Q)`HczjKd_A%xI-$D8*bpWYrwD)8 zm1FD^DXThYhkeB0@=0#THMt;3-+Q0bK74F=b@N@rgx9(5F`s+x^A%p7Qa097K8s%> z5_l7R4hJ8a8E@TG)*SZgp_i(fsjf{EJh{5yH9G%B@#<}YhTy|Xi9LIz&JC9F-nL28 zy7?iRdxblldr5Ae>~f>}zO=wN{lnwlYtJp#+x%WPjtq`zbP!#OYf{%2p1zE|9DL&G z-LuVV!-NNGs!p0k5@k2`UY%B`RdldDU^iG-9wEzJeQo|)Ja_Ts`?qe^Ty60_%9Ocr zV99lz`lkXSyuz*dhf zrW!xE`)EvGI#~6_-ouaAx*O~LM$a4NPanvLp{9MTchQTMTdU(*Cr2({!Ik%?pS*ri zWL(VuefVg^tbVyqekF4vJA-bApShsJrOX{)FNyHQZsOQvtxafcNM4y#3?x2Xsy(EQ zgH&qZM*82MS+h}}Q7}5Cs6ryLQDI2z`c!oL{#?TO^GP=wmCsHj+?e!Gmx`6ttxH8q zNieQ*Wv61Lpuqn8%$mmV=V#VGzqp+~L?ujYe!Wk3@n*hAHty(ANr~7Tf zPgC=ul=G`I$!=a|)6drG_!vWe7$vlk9M*NZZR!R_XmdA^Ld4~))P~9#ZMP4vlh>BS zh>2n^z2tU{Wr+^vee4{)(vv0TOxm~iHfdiza%Hn#<66#@$0I%5DHe3`SKK3xWbN&~ zpMwVHW5?g3?$+X?NhwLc>)tBO-^j+Dwa4y&ia0(~d-yRMQx;42O@6}zNTk-Y$85$b zux@`eKNbFsbVo*9lXPQHyzJ`sFNTQ#Sss> zoTUVId^ml}jvTnv0em7`W>cP!@CkfkiB*ISoA~@|-PS9GPjX|A7z5B71`QjBW9}!` z8N*S1q~my|VC4w#kNdl=GDL?SC%scO2t)Ld4o|50nH@=qqE|kTD&b;#O;mGMDmsKL z;c|Hm{>;AA$11*IWd@I%{H+9-n?;({=btsfg9I z`}0;=+r5e(hp!EZn7zDrCDx*T;)Km8+lxaD_sWRpoW`8z`j_R0>bt&_%DJFMvQ7M^ z9E2L`a-Ni@<&)f&S?_RBT2sUmq>qpY-~)V??dxX$`pEm2$XReuDKl>0fcy8C-GnM# zM=At?0{-(@fRs!sDN1ld`EP;UJ{N!cCG(mEm2gj})Nq z_SgT~j#P|Q;n`G=DdXAX=}1Ek0GI9imjA*<_UB0F@~Gq(x4upP`zvz{s_K2|&eRi> z81&D3Y*U7I%20xfrU5d-)P`DeI+|)E#^Id;T$sPUNB>WMel`%4@pQ0oCXKUEDU-5? zcb?oDYzsR|47Q4KWG4>=B^q3w>_Bz+@YWcA-)Q?!fAASRo(Z#c`|dv&;;MS{sN7tB zU$m>s3X}eM(Jm{gkQK&4ttqRmW*|dqXN93jV(hTLwEO3iDwcz=6^fsC>s*;buY6ZaQ3)|QJIw=8cejVx1tOR4D z)>SajQdc9rQGyXjsw#hD^Xmy#88-9t>;_?yng)!nN?!$LK>;Wd<)AvmiX}fS;8(9% zRhasIvLgaeBt1-^j zbN;$}8~pt_B>LAa;OJkseuLY$w?*J@mSRZi8ZgmA+Y1i{+W!03wcy~$dlE?l#!cMr z$!9NuaJ06w^tE#I@OE_M=R|MI6aXXbEj`gL!Vd1Xb|^~#-=<*;?q%bGa~H;=oZLN} z_&I-GN4^F3cR~7Lgl%yi)=oD3oXFq9qa5+pmRMnbR~uinEolFHd_I(`57x(yV2?vM zZ;k)EJsRa?W#=R8=I?54?E%{3NEVtfR<><2z%+R00IaKvFpgkjZ{-E1!IQ3O!dTe1 zZx+`E&n1FZXxXA?dPzC8xlu4tp#IYLv1e(=x*z1 zhj74oID4Q8NH8~!6bgDD{7tbv7Uk;zcMI@zvv&hev83Xyv43OcV1ctl`3YOP`Xd4Z zz+)uo)z;%}3j>CB^tJW$3lPRQ`k|4Y05d#k-|4>|y9N^AR<^=kb{@`%EyS@TsndWh z+ZTy%vBksR!rK`oY~_LV#9M*U5hORz{ouB=fybVX7D$}CiPfMo&VcS4|XGb6r2o&iDc+CEL#r%BzJuMxD zeeq5fUU+_Rkv*0qstse_h5UIRH_1&K#=7s6jhD9zkpR1dN9In((G9n9gT*Ci_I1`IMThdup`9n2bBN=A?Imh;qB(h_uowa9~LJ63k?w~Hy2S8etuCcPd95HD;rNf z2a=*Gj2n)CBhhdi9E-sS!*RTDI4}Rt*&N(lPg!`|@SPGv!V!o+tw^^_VTY6uwDA9a zI6+^aezu(3FeDmI8cSZd%zJm6ai?@ z-!LQ&jo&hL|G-cf%$5!N2Sxz+lJ^Bh6G7e%^u+^7g)@NO|DlS)U=cVHzd4MDNWegQ zpm0za8bU8H&HrOIG#uI&3BewPCg8W*asPwWw)OvqOu#<^so4z1V~2rq9FT$DqU~SO z;85(*_$@O-)(!{76qp`TkOhoK2=E))0lwv%$Oge+aHJtK*l{W}9*!sRN5YQlU=aUf zU_6w4XgmQr9{PVEio}p2&0yT5Idd2*sni_CM8qKeM^^-SR}_#2B(Q;hqYPvY$SDMd zLy*ZFXouf&XJmZ|IACP{ktHw(0*)p1S#F_4-X4#_LSbkeWPUsb4{e7fKybq2;biL# zrY9hOX&v#me8Uk0_?DCZ7kL6=%MX*mz^Mfg7;4LslC?wQfW;+)VF>>+mo#YwV`u&s z1_!thzydN@!^D}%=|RF#IN+kKVSfDNqazUraJ<&PGa?a49Fjy~17ngP=N1wH6bjND zOD>3TBm##-kWPakwnCVH=s_X~$M=fCa18036J0u3jp8;L{_AZQ{nzfs!z z-(n$=SR_b408UUYAn|B2BL{FIfSf?s7RC$Z0t%wGa3l&1hYW$jfZ*ktEnp=1N+VG? zG=yRl#3X}Z30OR70t^A=I~s@|InzM!31JY)!ym>(lD30ULD4{Cp=h9S7zib3Jcy^y z+ky3jNDBr|fUFY+h#Wa;z>JeC6%qp+9Hbp^We^zlx0L?1o){bsMdGsmUowUvK-q;w zARw&40-+$E3ky~f0z;EKOE?mX`E6_e!U>DTBT0>0I6=oHARy!7K)^sg7Y<@z;XofT z5ZrO7t<33Pox!1Tzj*u?PB;t!L9%cFI6?S|!*4~OWMdE@HVuh~Lvc6ak0~k;z2r~HXpbn7o2N?wLHRSC;j0hnF0W9dh?T7$p)K(Vw z4{J~e^j7js1_L1%1coJ#xVCse<{SYbz$}t42?_~V$O+aT{QRK=39uob1c`)L9~2Tr z9=yU)NHmUIBT-0bc!5G<|Hu~cX9N#AgIESKF#%!Y zfKZ3VLJT(w1boo(@PBcO_%qQ0On`)oAf9pJb@IWZ+c4_Kg9l&C?sybvaEL7gHI2?o* zSYU}EeF?wi{g1T=(gc-v91;l`5CBIVARU6V!;&Egqz$M5B;W^0CjlZR zcsL|BK;aQkg~WrnjeKG}i1HvXG!{c{?Ll-03GPvNEF^eB{g3PexKN01M1kZ3VnzN+ zKFRH^E{05x2H_Kd z#N`R3lzenF91V%*fl2ut&;MsWK%wP#LiQI74+$60a00}lqY?1m{_l^J0*4QAfM^5~ z;sAlN11IvY%AgTY8wJX`5EB6GAeluM1sp@*Arb^)dx!}Dg=QRqWZ?zU2?&po!1t5m zgxs!B|D)PyBnE{fm23?`E)n3sRY(p7EHn-}EGVgvD7;}z%;dfajRNT;iQgN>dm1u2 zFp}h&g9ZsOxxAr)%95KtP^-WbNax2^9iRga>8htsx+op)p(4!GGBV zs!$NRL28aC$@l<~B{v^v49L^ShX4Wr!3=|hE;OjMLR0|o3W6r6ul<5y|HwNA3$bNr z3^cev10_b2XnbM3U=t1D3o>8`-@yh6gzs2TIwHCFZtX(=;|gI2NOd3*0E#IPYH)Cf z{)5^OL>xfS3^BqWG}-cc{{{}g7C87u-)C-jUx!h!XKw8NqyG5dq;A$Zg2$W}qDw zOI|nvKoCFvjUhk~g#hsh1coNJn4ldFO=cYtKlAe~I{t7P1&Y1D=J+p20}V0c&IG{l zkR<`BGeihcC`iQ}s12lk17IN9{)Z4Epbmt1|Evk17&s#GXcz3nL83zh8sur@LWl-s zMsg0Ku~_ot67&U|7G$Xe0u2%>a#n-vmppt0?XVEL02Ty_3?4yVfo{{IUEFf4g=3fK<`KoD3A zsPK{X1-S#c!vgJqXCrHe#{(vk6^_8(1|$vuFt8|Ooww`%q{-^$9@C|G9eSA!KM*8f?HM! z0)rF`kwDHNas;I4?*ioZ`h$j`SVcY{22bu4k-#vJ#|r=kD*xntK^P2$VWG>3B|;?= z0qVMt&LByGtR2|EfGiz&`2xa0-2Wi%_x22+{}20tDnhsbWDCN6pmt=21_=rczv~`< z#=}Fl`#?LwKZI=YAMD!#u_0$60Z11F29f~?3`br81mh6^Sz9ju4{=C1q@oG-hLJ>w zfFQw!6ge_Ln;;Z#SsHR=fO7vat-oHX0iozW6mJm>)Z~}Z`xE~GAoLv>AYBky06Zkm zm_c6xx$OrT2ryIRTmYL8|2Qnbf6x#V;2{k`MF9fCK?DvY66B#77!FSEO8^WsBp(mF zEJI$T0}UarcMCuA7a9N^AU+@;aH}u|fuSJs0dkAqDgA%(9~ck|r38oqxe$Vc1KJJ) zstM#116hS2g8|XwKkbNs{lEf41PKEvOM-Uf6~3*$pv?QvfB=TwlKU;;|4aHo#e&?X zfR`4qNV513bViZKZ~%sZctsF@kY~)G9VA%+Fi3eBggAe^=kNFr01@PsDUfGEVnP6e zasfDP@|QP&m_t%^0E28R5P@=njZ89jZ56-B*A4>^Bxf}S2SpGAB6o7Z#GxRm9TEi9 zz?W?MpFit_Lqp#*133+3NkHxov6$dxEb@I1pmRWV$cQ5VgY+N4zv4fTvH@@YZ^NxL zj$Fk63_=Njf$eLuzDNS7PLRR2I+JM$iU>A`$t81ZBa*yOkJ_p)|A+NY(+Xf`qRX7_NO{3+6NBt>;!zSQqFFva2dT{T%i@%k$fDb>OO07Y-pCfO`OvH zwo9UmS9`D98-+`mWuHt&Ta&%c-DthI=CR%H)$Y=sJ08>Yq&CSS?M^_Yw|$Ly;6`sU z&ZrsBv$HYN(XBQu0ZWVAodB$a=)Y6hLIxOj60qP?)7 zdTqaXiq6VoeD+^fC${y7NC|suma0qtPFX9Y<8%EzH+$y1w>@vZee=2HbbjxtV6`j% z7>^zLx@0dcka{*`b*rK+%W*r=n=^h<`O=d6^>j|hXw*OD1=YSB=gMZ5SNd-keiS7b z_*7ILaB*^BZt$Y6$?=!PqU+TR{ssS4udmhjDYcJZtoruP@if!cr39DFx$dP7&zc|7 zV`^P^Z@1R(qTZNY%H&{^)h(5TwFuk7$@yvj5?0FHK zYL(rK_vu>SB2p>Lm$9E^;vj$J@aC)vXrPsY( zjnwe!zK42lLEGvbYTtd(FQd%osQ*S&gAQz-vA@vYH`d`%HFw%4X7{O=s=Cz5I)|@_;cfA*BHWbS)MAXw&9S4d zo`y{A$u#P0RBo}R>fz}#D!*UfJ3G(G>snPeKdtap_Lax&YrE$wqg`m$+BdyDrC$Bjv!^SIjEf~w6TFKnIO@r~g}gvaE6=DP-FeJjMTPI?9&9F<{) zzHELvh^#ev3@y>Q=_Tm>|DmI9OEVI8MAxaM86LcpT=!EN`eF5PNuiG| zIbH8c+KUUz9jV8a%v%DxhByvQxBG8V+Ge{Q80f+K(Af9a`57$p?`pQp+{yiUqJBwp z`d>I`&c3{L{gEickQ8KmnKz`}iIF<;QC;yrjdsz0tp5g|O=@(B{+spQ*O7&qFL280 zPA(8T_hX?(;oy-``HiEk)+MaHj#)}W-mmoT^VF**A>}^5@6!E#E>)eWOH2#Fghl_{ zDhSg%lcrOe-F>^`z3Pm>90%3!L$=N~?jCNomQL^|n6nV_|B;uzrJJp@hoB<(&qcY@ zF3uj{o4cR_#B@fA0-JP9l?s(KeDnY<=WI!70jO zz&8TKR8^I{3K%Hpt|WBgya=}fQWmiXM|QL;LsMGPu#80!2k4I63<=f}iH0<^m4Qr%2Puz~RrpVc0xJv_Q63|URD`Ou;XVNd zi<4DU+*5#)m&Jh1AYzW4BVlkTS;T)BunI_cCImfC$QVV0EDEuw2TVh8uP^%ZBt42) zSebS`37sx*L>G_&EWnOjjEI z&VnEbHa!&r*5V;0qascaOOzqOc4NRk>nX!R9wY*c_&*^=K^BD( z#NrfWF-T}j4+Di6i9u6(f{>5C6!^S1HVjG@ttd#?Kn0)~17;2N>%(xM5`~q;f)SH2 zC`DN$SVbb{`~?Dr8;M51r-_6?0ow-+h>&UmL=0-t7lf29{$IVqs|$`GJUd`}7=$bi z1EpLfXoSElIpA3mF~nJtF^4aaMn;+}34=t*BH?io^aPSIVDw3Nk$YB5F(stSzuQrIXE!#VDE@3gbdJ-k*Nrzepv)cGmwNo zlkEx+0Sb_iA_hL;SR~=t?-Jm`Jg~I^iop^wNEA3<;2RO+Y6zbR7JX+&_jWLn5%UXjltiPDQB32yO>-1L{;n36e25AOsU6 zVq}d;7#tctWF!mU7;W+Vg>fss`J^iP1y?Lia(-|s=tU2il^6$wO);SO9?!9$;rhK@tXuK*Mf@gef9oB$0q~Q2${tNLegAOjytV z5I#a43QCuR7_3DgNfS{h!&C}lv=){iO&g;KD@Foa$AR&K1x2I&ueM2+&-aT%3-+P} zPFXM&gzlJ0K@9eLoPt4vjRNKZ4mAQAFjE0CVJ0Lv)LsJFz(u_$GPqjfi2lBw>K7ghxQaV1RMMqbBINN5+7IfCP(7!T=AY z0KO418vw)TBFqgO6`(s31cgP&V!?hAA=j<2P>P!{^uR(CnzWLFKeLdQ9zpP$M3RJp zELkCAYgjJCN@7S12|!>-0-&7?Akrflpa8rq764cvWgBT&0}Bd?fmej600lMxfq>-{ zNQlBsn-v8(42RegV?m&RBsAxQJy(9$~G#rW$0PbV}1}ySk4;V#xvW9UYfCUSfW>1aI4a7bXd#38hj060KAfSSnw;4Kx1faBMtp?P;Z7i)=pw|SU z2s0tPA&WtXfI~w-Oo4)8ouoi(ut$Jy0r!z0NO_oZU>{^1F%)Z9sq+x0{SOt$RhzT@Ztbl zB5J@WfJG;Ck;H^NAOV?qh%#doK_fB%=4u>4!9yov4_M$t;KM^yfCZ+4A`W4{GYJ4V zAGtRK9B?F9q6QBV0H=VEmEYS;9N<3?Hp9y>0RR@>LL7ia&|naNwMpSQ25c8v5jyXJ zh2>;lOU8h335#-`CocND?s&r zl8~e?9H)swg14j~3149*QjCTMaXSbe5I9As^9BnAhQNhD&Wcb36T=9SjDK_B?8vKLV<-4X;M&OfDkJRP!iZv(kRfdJ;JkqA)N_C2pUWTcuO(_ z92a1#a5opdh~1#UOu%^}0Wfe#2DT9Z-UEP3h%mtvVLz=%HbpcR#Aql;+8YDpBBU%2 zO@e>}OVCDuqyUI~ga{<>PDu}30!U8~z*0f-Q{=@8@%Tu>LT2DgLB@k7$$>p03E~F? zu_!Y*ok+42-bOTnAl~(ng6i(UoJH`pq~>r?0G6@Hiv@D@m4*Q`fq?|Q*+F}zHF4<6eNnL0;0*1} z08W@t#P$e(LVH#eY%KpN0L!O99AoAlfRGW9#)t-!0E`5WfGvQaff)^FPUI1w0e>kF z#9>4+D_Q}>+Iu6w09OcT7jC~w1hBv^1tfl?4q#3s>bDOhE)oV%6tE-W9$>&}1f~YJ z?ftU#Q7PYka%h+IkHY#<(v z6XHMtP66X0Y5>74SJbWdK`5l7m%1!AnXQVk8m5gO&$}U=M?aV*v1th}k4# zz*?aG!vKpUY%xKPV+5fq9yFW=1MS4VU^a&7k*H^Yh~Y*Pf|xxF7|-5}&P5W{U_g6? zy;)=6%FUjdN`R4nBn%aXQ9_+T{1EQG4E&vx9HZcj8-x)cCjcof8n`9E@2U6UCLrSg zi8eR@Bn%Rm6F9*n%#kPp29mc2^`QSSaAXbd9YGJChye*Spl!uHJ+QHZqfEpskTI~) z|AzrC754l@jQIo7ct9cyiecpO03rfODGAd_#7H9H++hy`N1S_l{)Yzug~L1mCdm!k zhyqzB3Xm&U4wB9{(ZqgHz)b%e8ww7U_AnAL1PmwGG_n%-+<{n}q~uWyHtrd`{6Y}x zLmBXqi+IXV-~g z#U&!*YAjI)9F%}EFR>RS>|?+;LNBc(1ng=42LT2R?;|`8g*aFT7ZPO8;CPUAfYm1h zUXcNy{I(|tT!4o(Me)XMqCZrQxMQ!Fkz#Vo>Y=wKrl1BLoE!Xpk%dk3;GJ4OhEJv-n?o zKoR`C-b>;+IsZTaq&*;ncqzg{+ASO*h9>S76dS_=ol2C3^j-?Fk~fP8AZ```P`U>o z?iC3@*ee1+Jc*=%v{fVkVXFv$M`QqLr^ob#Px(Y0yG#jI8!7! z284Ae;uIrE0GI+nkV6K5DJT+q*xUmEHwes=I0p>KwiSqr;Fv-jA{Mlf-_wAF!#0TG zAuIF~$T_lwAi+3M3Xm$AOG50~dl?1__!2-#ME-;jape34hLGu#2qDrZ3?bw3;^dB#2RD(s5Bul1b}n~K?4gKR6T%CBm;o=1AH6D3O&h?g7A65 zU{|Q1sU&`gE|c(`n-of-!1F3Vu7JQmc!mOg6+Cxw&BVY>BtRw#6F3P1!eta0^1qCL zB@`J6c#wdD;w}*nC&3^wBdYv=@Zd2NK2L-Tj?loO5Jmv+I!Mz9 zGTu`WZEkyvp-2!7F0pNbY35Ef@`D6fy zH?eyF3<&IqfarXwxKd$=v4|3id@UGP0KSQc6RM0zkfj5ohO0Ngvm-%O5cR+1dywE$ z7eD>PC73x!E$j3mhcGk}6AEWcDJ1x1v>J<}fm1_8wu zu|ZA5|Bfx7aoVpeFG(2z*+z;luS z@RKA33;|$Q0&51l3XBmP4l)2lK7fsoV3|Q7p{)c96@jNLUy6kx^->x5GdHP2z%d|u zh20Ja4PhN%S6-FEa9AZ=3<8fp2pBjO22~&uhW8Bt!;J(B43zJeaX1-SPR)oKk)4D*ZnVE^gBQ6KTb*G z^sw!)dAdS!>yM(A*6S|(yK7#&EsF}bM@4Jb*JtEZP1XlKz2!|e-`Z>$@?TtRj4}6r z)bX?6pZUcdTh-c~AJI;?rVO`h&GB13ElC2qOGSY@L*d)_EwkpGwU!&IyT8Zm)o|&% zX}x*r3q!j*5~E4GHQSgiY`bMtQ8Mz^+Rp~O4c3mfV&$Xc{mr>r&-9s%e`o)#Z4GVs zJnAUtJNH3FQ($QQ#lk1K9UdiN>&8*s{@t8|<`1ro>Mp41FXoyD`vsNtkBZdeHJXlB zK02|W_I>eIFWxYCcRF{8;e5S`_DV%T^~HdHV}A{6-FBF^O4^&PmW&2#Yj=#w%8ewx z)O@A#+X+Ji{IdSY%n%efe949(cvkl4&Aj4W_V0|1&h2lR*IiyM1Q;{yuSK60)2os= zaCk)}VAk}&AkzOFiw}nX4(IM^w%W&5)-<~>qP@nSoLU#a&#aew>n-eNjK02hlrN*U zYq7=ZIv)RO^yFA+Ek1WF#`d_`R7?N(58538Pk(Id`YE;kcM5XRa{e^mWuF|cE#5fZ zfAxd;ZPuwb@bGGC3}QPRBBKI_m)76d9b8=2t5sQiBfS2xCvteZ$9E-i<$cBIBd+Q; z6~4gNnqjqH@U`D*^0~)$1D990^cF%2FdcXP9Nv*c(KO6_e-d<=_h;{qfTGgMp~|p( z^e36aMC0dEI&+n6I!=3_?CehUX;yuz5C7Kw{KFScbL7?;FJ`;mRgT7~pKkg)L!DqM zQuv=aF1=bU9Df}xX-DoRhx4xMqpHM%y6sdajJ_W}IE5E4UbQ~Liwhdmdv`}Kt&W)>YD{ew?lKU{k-b`^RS^Q-$$$A8Rv5D)jCo3$>d3?k8_-Zs*D*)?^n>= z!MZUWuPV9xgg#HM+G>AsZ}eR1`}^Js;crpB>GrUwQzUA*o!7MyAL@wvrFATyU!U+ZP8K=PjGWCZ{PR@0$3ArSg335PS$Xa>^Tsa@xlXe`OYQ=4PoLUgaDGNFxI_18zY%yHkN}D{he>WC?L``tMVI6O<*z%52jzOX5 z`m5f!D%U=`$N29a_8*)c(yqO~TGIO|T=0uoqB_$se}sF9)r>+2M}YLrIz~ zi}SZ=im$CJGmF2n-PC#7qiwjLRmynA##1LSD$r_$H`s=~zMAGFW1uwU$@QURnv*Yk z(}idn)`T>>OtSJu6g=8^!vrFUC1TyYO{16Krjb#?M z$e_Ki*`i(W=(_Al8&58g%yc7_%23x6CfIpq#=tf)!L51S@=%A>taB&U2gT5zR@x5r z{yh>DU5pHurNFm7mD3A8_tYCBcqdQvBAXcn1-z4`a&{b3l557Tbh?DCv~oH!R}E>! zj)3*|Upf5KtAhFDQ?>Qv=pnzVn$TE#x_dN?fx|P!E)oktxg}yxPkO6x93MUP;zDXF z#tsp`Ex$9=Shdb5;ngSf`Bs18+m9CmPv=cph&{o_20Gk4IypbVK_%O>_5(sD*(W{P z4IDBnKNFhn7D2P?$0B>{@%C?KrW&t^q_0Y6PcD?WeLZ)B*Z1_ds_tqY$J-X={PT{R zUk`s49K3bzX-FpCqt^ttzbC+lK6N=sMxyV$NyQNZHLl-c-D)!%c5PwYxQ8372L-qj z)E#ON)%eFfjkzlES~k8%kJz=oQwvK$eeMs#%oJY@?m^YfQW*A`|Fq7x>s|Bd4@*XD zaQwY?O?ka^3mZ?%I?~;wWJKi}zdJOwZe*ZtH&<`h^0sT|Rjw!24?AzRu*UOzx@+|S zmnvHp+eSRC5YDCNW^oRsOkl*QVzD;%I=e2AS@G`=d`=UmD18$)^K`#R;H_VR zlM1$XTU!EBI+q?L$F<{F8qSmroDR3J=b*I??StLHRkoVG0QEB ze$`c#Z?8pv6vqWE40SE~$;GHn7yj|M_cv+S@#j--oTc!l*Gyy%st+c*2fqne@V*>4`(#G`?R?%=%#{Lh)(UlP)v< zl1aonF4S=$C(-W{3x0Dp7j5v@!HO@J-yUk?4PDrX>@AWlek{WMFH|az7-g8wOz|--$5!*d3!nyr^ zy7!VjyK}%u4pU&;C6TT3#v|y>u1g~R^EpodkMrGHJo(hnIQg{R1H6rq#<}mQZPZ!k zZfxCI*if=FI>*G{z@S_yCmyrlE6z7MI#{Tdn0oaNzo-Vo-8xRSY+7Z(J1K??-zaM? z=-qy_dB3x5$1QVRCj2RT(j%(GW0(jtTe|MZ19HvVh9~=hgADSTw!L^`j(hCfLCm4D z<|H5bk^aBGGws)0xQ$HlyUEii4PAb|aWxa&m}S%k#bf%n0n}&3&wmp#eSM+@k{yQ1 z#Y3nKx)0yli0B@(*?08FaWyWBt&cVf!D{CZF3rx^+*$l-<9ajS(BSq(MeYfY_yonr z^o8{10hc)5m1}HKhxA&6a2rGk@X{#_ms2;-{K0h`Oq5=fwQAAUHo-e|HuzlC)iBO! z>vOjLcrXq&t4xMhkXA%44;XR4;}2cmb!({t=C0#Xoo0T2Hd{5CYzi{Ii5L2OLHl-- zC3O-bt}rr`_7VMl-iO1b1s+uCXO_%_b7v}Hqq3h*Fm`kw&+PUS+KOL0wH|S`)Mqsd zd>HhDk9FG+zP(LLF4t|U@*ySa+!4+Kfsi5IUtyds9)>oSr#Z)Vc`Gv5q@G{emv@+V z|J+%soWSb|8lj~RjqW$fWkQ;_PCriYvTq7f|FOcXl7Anu0J(lC@uun#ryE zG-@>I3^eJ8z{0>`LC5#&az#VIWBP_8Gg@`my~{6!cD=-ZW%FnL9H>KQW!|=|35}^-e)!Ap~{% zh;SUoR%3CsKEC5Zqf4m7mE%u_My$_0y3^g~xtM#R1$M4zYT@E{=ab-3@zJEnAClvx zY0y(-1c$OO*&eUN7&^}fTx&s|5vXYK+1eiAqlvSeFgeoPk^C^3zf zugb;mI#gS!^tQE$WmOM!UD#$wJh_(fGO&|It=u7JVC?SVMo-xveW57umwH9b`QH}vVdndcn0w*W4{d%3aFdf%4nx6MUKWD*R(>FJn02Q zDGz>*wcL7ICwRvt@!dI%qqHLB36de5X8e}62l5bh24~>~>-6X(1iu}M=_wIEI6h}N zKB{&Nb4_`F$!B?t`KBVb>RjG%#-Yi{PwcDhg1^%KxZHjlt#lf5Sgu8Dm1C=V4lg0H zeMguQl1nMM+aEe*A9?@mTi!TzFWc~h^^HasMY+ZOPSU3J5}nLCvE2#aE%S(O_l#s? z-py}^ymin_fzq94)+35*d{*rHx%>%ZrLhT$=h3nBER#G4{|SE)U=%Lz z*CUo5aH`&_VQQ>gdQjGo9Na!~0Rf{d*@bp99oybN|#NEhgbB0^D`_)vVu;`;>5b;k@5?R;fhcDCo1V$YhD<5E1D@a zM8qiYTGH=#vbpb_A6CJ&X0Wc@dts}<9LbW*oP-E}l6!`yf?@iYZgh0zJ3jn%Q>pEg zRh73U@@g)36|eOU(4m$!j1|(bjk6AA90oLL20K$zG@`1)D<4?09w=LNhY@iti3RMnXUy8-+k z;lakR4_KGC{DZ%ZC+EI5dZvH-d}VFI-Lqf9Oy(WtSZxUT?GV;_={f0Ub_6jm`SB z+JbhhRK>{#%0h;w1ui}r*cJ^U&lvP@Q^A3D0c-u;N;&pO=k;$&orlvEE}=hdnTWj` z*%rQV>1sjNa9df^l;q5^6qzOf;$ETgNJ*l4woL#n$o}X<{VyEqoPsU($;!l z<`Fv92y$I|WlE*gCM+e4Zg!{Q(vYgG9SPZpeEq8d=dVv+ljyX?lRv+H;tB47l5tc#`0|p?wH!fa zF7?wr)uS;frp+F z%Ec<_7DHlDTdH9RZDcsL-6UU8*_&w}B*)Ts&z$}{n+Bf;Kehd7tBfv*{!#hP0{8n~ zwM>DMZu_6jZ-IsWY?a>YX4MUL$&{$>q!?e6fk6TH*q38wd=p&)<1dCn1M#N(xb{|L zmgx(+)vW-7>+SwG@c$550_*qwa(p>RYsF-yB4sF3itx`k#nV`MXzshrcNQZ7=(@z3 z$K_`aY>mGC8l+t3ln-2R^Q=f@8Cz)z@eJ>ykLqzb7GiRRHT;z%t@M(9?k5L{+{-=^ ztCWWtHQ@qD(6cq96fy;*;sILJ8E0RW)%U-Z@y_A!E*GJ0#8czY`Gt`&i;Z2En(vR+ zNtX;6DjZ0WU-a~8{qyj;`&V|Rp5XNZx$pSfe@hs|(2dqvm9gZHn=rMkCyU*RN|#Jc zu{Y;vLeyMitHt!l$Z#4l4#VVsm8}IiRdXH1SYolYkmBM>IrOEXR}e7b<2AFX!+d+DhE!11s>LW z7F)y0XME%W2J?!`aK*jsF^t-mAIej_5VK7V?J6RKQa&J*>L7$tsfKnV+jNt67cPCK z8i%`+XqY)amzzwch3(J&T2iw|r5p{G)F zupreqSilr_-7hTwsxsjKc2JF}lo_G7!dslg5 zva)|?sr%ogWZdeio1sT2BtL2k-S4{amd10*6<>G?&R?S&y3E8q*S=ihS}x$rpGn4D zwO9VuT~#NbZ-i2rwryN&nmy9A7(V+;V3pBSu2z;oS+n^5mZd4)eW^V#KRGeoC(ty8 z*=Oy!j19&2^qzOQb)zO1XSHIR#^Pq)o|H5aHJE2tN-|;cw`*mq-xTX9IUOK(x!NOu zH~($M1a(sVLK^S@j?*9vlg0uki&wm=b2t0& z2z8F_(VORK@a8`1O0l83|ITg4W8Jb6s&Wx_k>Vh_v(xp_{U-%Nmu~|FB`@k7CcX+c z&)j{Bh)<9Vb+)RS6&tGjp&JnLy&<8hEB&eGxD#EJK#HZRl7sAOX|2{2 zUb6i|6t);282=tblOk~Vts|MwqA3Cr`Y%6L+5bI!_u93JX>8@&VR6BYrs;|+k_>BB zRcWs#N*nc`e5X@9T_KF`J6&Hi)mS@hE+>(egvYt&@rK6+iAipq}dN-h)?Y|1Qy(?uW_0R=4D9buxmeo=7n5l}=g%EsdqK$`+51t zPOF1b?dN=_id-AjO7-=eS?&>gtaDaxI!_tRkjnrTPAw64hA5TV+IXD@gt_dT!<9F$=)MX*s05`EfYmfNNJjWYYm_;AF?+cx4X*}c+Z+p=Ou4o+WF-q)t zj4*qBFnH-{Sf6{PM#QqvqU!6Ly^XeTyEGb=ylneE^-;W&lA)EgI_OP|!6hndmTUD! zb!wTtw*~tlI!3dO(7D0(u8WpmCq<_O>li?quFERMavnT2#@-4V~s{l9d3@V z>dbvdIbPrDYegOw!H70`;UCkNKM*Z7Hscv9g$RpR!S4!+(X?XJ7oMgbg*F0PPp&-G z$Wy%aQ!0?Li2ucNmXVdo&1nQ{gxZ|Dm6BwW>&d67c_L!(9HTaGJp)AWQjUjO<+n{l z{Evd7YEe#;FrIc3)C}fmO3HJUZ!=G4uTI5bKvxFP=R+c|P`Za8^+>|}urjwB>8U4=hw8rUU5@FI6 zC*I`RpSxCJ?G;#BmU+g$E0eFylb3Vol}JPwbC1#OrQ9>ejWgR03qL^coQ9tWOoS?e zLWWIp{JmmC+TZSRycu(3Pf1a=$w1Iz&-8w{_I&x~9Ov9GRhc(l4-j1_2azJ|Pv3ZL z8nA}qXTzGkKX39E*-V!Va;yfwQ{738R@<1rX|zwXx6JlNM#lRqSWPwG1Xa09L%<3( z|5_WA-xadVczIRWNxIr9Lre`+`)2LnYTvJxx}~#A75I+B>DmF#>+efGb$#r3KN+^> zqX!4>oNW!EC=21%P-wP1v9*AIu$YKQl2Jym%Crd9WzeuriHx5~kHjq`RZ&WD^_z zIKR0Z-?QHV1hyj-r-IPMCnEPfn2S%YzpO#8p%&`tXu6iKb?08Xw@cfLt`w}5OG3&o ztA2+yA1c1hGV`5o@neY+xBeYfmTd&AS#Yoahw~+wp7B>slrc)m@du9MwhHq9ST3^6 z>pV^L>QtY7ef4SBi|ujqt}evxf~~#}b5ab8IzG{a3FBejBzUESZn0Xet1~tuoI`QL z+KknRN&@>VJ*~G*ti5CiWuuemDj=%khYSDBrOGRm%Av9v>Cm0_UMU+h)%iHJ^+-kTi$2RyIp#D{2^z`l5mKu%rjBxv@D1~*AIN7 z@9{pX82$I_vKOo1=xw8kZ$F=nZM5*&qm9EhK_QLpoND*j{1WKdKeSh{MfH>=Hd0(` zV#dG95Y5gT=x+Tjn0uMFM)#?F6kPgNK01qYRr-L;K}?;riED<6Z z{nfu|aff9m0+ZDE!jof4Ffx=B9qd0ae(HLZOL$qfz80ffuG0K(L9bKzoCt-W z;89I*sQ^^1S5Z1cAL6wFmyf-f3ov@=PN?j|0DG+TNf7XGk*JBxHK=*3I8#ayh@wBdzZtW z^S89|Gl@>CtFfJIItaLwavuN0_?L&B>dUk1Igf6q;c17#Q!B)=hBbr}f!Lz02*l

      &jVfE0@Ydz?G7DMK+QDr%I6qvM$o1gt(k90GsPoo<#<-hHHN$cqv5#a~ zT@9VL?)$FsJ&T(L+1DDt-&`68R$c3Q$(azCq{8rsV{uRKJGfA2hS;NjK)S5>krA4~Fb?~53Xvby@MCh&8I_YdXw>-DFb$D4dwoB6HOsE;E!hp_!xF)TfIOwUm^ zUzfP4sj_o3MOhrS1rG{?6a|=PY}=dH<4!W%b*zZI-gozOD;;0++Z4Tb4?|@WptzLV zc(AA1mYJKIOx zIX^e(kf`qQ-joFEHxF*@(sp9wzD(e6-K~$mU3^~q^;v7>tTNA;u*FIpo1+&;g&RWS&QCc_>s_S)~12kW>V zI85%#@)OyvTE1EH_6-B?a#z{I#;Sk*?njmu{wExV`JG+|>Yc{+<{2Jyl1C1o%5 z?rYjHv?LTfiPp;qY_{aMPK;RlL9CG%2gj@Kn;#qgaa5=@=#8(^>{7E-Y@;_(Wg6?M zWiF3r60Y2|QE;-cJ>u>s+IZf9rMcr9)^h9oE%4zo&T{LF4@;QWicVQua^yK3Mo`0| z%-j&a^#gw7YJ49b3|c0uQ|TIoZcP5cj=ZU#R%6>p4ly*M3gBGkonmzoW3 zrpO1r{6IVAkZ@^6a7JHhZKRaxxN^2z96B#SQOMtXGL-U>ZX$M+l(f}?)$I%s7MZ5d{aY(Lb zCL9Th?V29<<1u07Ykwu#Fe7y>0L3&$&B31(QuTFh?M{qsw{_p+Q;Pc0iy?Fg)@maR zX;yCxOFc(cJk*-wEYIzPMY%Go`(JbQ_DVig0Yi>UDPCrQDF=Q`h=mI~BGcq?{_*p)6CGj(5`PRNAiQhqT zw+tK3sKh_&OgSQ9S|`!@^+0kr*CQl+ntdM{^UBHAG_B_>?;F{56;^p;Gn7RQ zKfJdt1;gdsC2RDF3q%{1p8L+y2au0sED@wOb#232DfYs0U}L zjm0rBz1jTBPh8gi{*Y*9SVddsm^07*6B;!?7aF`U7leW%I*Z}s$MJkQ#~+5Z`TP87 z^nW*7n(}(BJ-v3M_y9FqSIX@K*&j=5K04JOvj&?#|E5;W*pg^Grkhv(t#TUSKbr4L zKmX^I3n-r#xiYDUqz-g+daf7+t6iFt>S!oTf3OhJqUzL3dD7eSz#)F>6`uOCKAM5C z_iT(7>17hB+5EP?HIIt%i*+#9SQMlxT=jM>uI}rpbvFF-soDFdUtOXop9;o22&ZcJ ziUE^;XXXlh0)9c**k_*>_Z;<>nH~P5npk1+!9%Ld;=_!-l77)D)%*#v!}qTvo_?5) zRQ276?RKZXZun*PBeU}Z3Q(&)2x`?W44@8x5CjZs0W&PVn%i6tH}2WS+k8j!;7@zc z4W1erZU^cWJyFLO3LGQg?*wgf9W{e}b8&t2LP*jvod^lWntys3yP{DoW+r}mWsAR? z&lxu^23Hg9xotSaE1imrj_jxY!>>E;?U9Kz8DJ z*OC*u@MZLuL0APXKHsj}Kc~I&(wxuU-!mTVo^E@Ee`O(VD;+MJFcTRCDaedeod_qqSdo3& z#`BXG;l&D18+MoAXdYEI_ko27o@ZIf=}aw$=MO}`EH%^XtRKIba-^6)oTBAeaOY_n z!$f_T^0D9qG1XF1_~c!*9Wx=EnF_ zw^C`!kpUvYU&OT0RU79?}U8K7iO#Kkl>dGM-1^U}|Zs z(UZoQ0!YiVJay!-it}^z47KsY37DWGRcS99FvtN#H6dX;M0fOf3RN9v8g9Ogg*TT zu3^D>C>y-Gb*5WysH3xnDba#wj%WPKkugvF07}!E}D@nJHgQOA3XI7e=Mg;W}Y{$90`kdt(K0L`epT< zyPFQP)w!mX?)J9W;{M`m{V{fxmF*vO=N=B_&!_(ttZ#~(DMIKzXKLEfU(&uWk^B8= z&2QeG7bVBHt=l?p6jBz{Y~iWT@&^Xg;~DhnV-`2C(`M2rP+#?TGZwD%u0D@GzG*Gt z9T3zVzw+?+PNMMj8;v0u6UEH;7tO8g69cTvr`L2d2E}WYbSGVuO;-FKT(8lw@eIgR z+5Rxy+g&eJQgN|*dKx^-?H1a4|M+OwT7JGm#=QT)xyXSo9j;WjurxeFtA$3I+|^(K zRtZP_$9ES)ZmP7Y(l*ar@|Jvo;8gQY{d{tSwYjWJ;hru_&!U<0S1XS$AKbwk6<1yV zmV-jbP4{&bPo&hfHxCw7uY7%*#JBeERycDxM`K{T#sNg&g2IQsC*2m*rAHGjwk(=3 z4c1~yTRm=3Ze}}g)Zfym;eW&)>zKCM8lE^vy~(!pxBqY(CBn?y>h`$VkKY}vpS>x2 z2O>4zG8y!DQ>Yu4YC#=U*Pn>vDt;f%= z-?W#h5asi-Rh-S4RgKY$Lp_Txym`i22X3gj%l}<>~*w-@`)5qamhW*I57GU%vuZ1;Fn? z{E{vy{#8v4jl4xccNU*R&T|s`|iX zw-GbA0S*7e5x9E>UVMgMS;j)He^`?`)%V+wFjpDD+v+3)d@UKgunQ2-DGPD9FL2cZ zzC^wUfG25-$PVj-PH3j&0AJB$ngH`3tiYeb0JUqgs-i#JIS zdw?B!uoetyES>w`e_Z21f$I_AH?dIg?>&Hb?ZM!{3(sh9kp%p77H;|fY7M|ZIea67 z2u6d8ZeY?Ru=olLc7)za+{-5{w!6hC$2}pkz18r}KQ6Q7*jShf&q&rA1aA63(5=UqZ-$(*) zj1wC}6dO1g0srU=;c6P(IsBU;IH-F=4VEy2&4ORyC$j!Z z{iIs0HdN#Nju#oJ?vu;e6zd-s@vo?cTiOb|&wkAr_HL4i)0H#$@!REFuzgc5g?C4b zp=jA?^F*YfD6Y;3)g{1t#pkv6SvQr(UGN`~yi_*1bAJ@Bm#th7#m&!T)#McP#s3Npny9mS%pTltSbB8gdM`i2@HfpHK{BT}^-T-wY`KmupX%9fc;=z@dG_^m z2YdGqxBFx;kIjaQw=lj`)apU6;6&q}7nbU%WY48#4hGSg zFjW;Ei^`zxdn;f31KK5TEs3CU*a@FEaW&% zM{@M{*GEPqk0fxfgh{h+ZlJX%^SqlRT&Kb;hRj6=*8`FdONZ}PU6E0vmc**oxQW&N`75b${cEYnr{yvJV=Xd< z6DnL*27!%!47{>Wa!#u_wu?XqIKt&({_?-=Z|z}o7mmeAPn@BCBNU%JwbIB|@a+_} z)i0`o(q~OR7k>yy{t>92tr;EvXxX|+X`^$|KCegF(&hqlV|&E(grtGfOKN=4m4iuq zN**_6=?ey^Z~PK6N)m`fxmC@MlxxQo57)ku`utsQVQw^cH|g=e=LyHWH6-bbp<=Iy*b` z(>>Bd#C%A`A|$+5%c${*x6Hs_ar|JU;VbJy({~K2d|SG2RXOf#Xa=qYga0W}ePXY2 zJaX{R$T8RPh{_tdth`2%H;r%PBnDpk7N)dj7S`)_EEwn-xTi$$C>9qfM{hfMjsIr% zJ@G;H=P5ne*WSIH8hob|hu?C0{V_~=a{hB-azCTn__CzjHv=Ts$C;tA&)aQywt+C^ z$I08VX-9i&R5kSuMjN_}B-->C(7c;C5O~_RSY^=s#x`cR>x;cyKX_-8a$q#m#cMOL zX{hG+S%lO1Dj8FLe>&?xPCi|KGpo`4x^a`7h{7C49c@pT3059+5gUSjP6?(W>+QEOK>N;6hN?J|f+xo-;| zZxM5Dx%>CSLh^?B>Ns1$&x+<_2kadwf}_v2Itm}Ve*bQ1UBbjGDu*E|*_&G6~n@14q$mj<1{1VDOZ5h0W4sCQaAdMNbui%UDq8eM!Q}k8U+%O7b%swBMdf ze5Z~2jS4NSOKAUG9&D39U%HFe{8=+SCORIsc;MJ{UvYrtQ_7DUlJTJfMLy@~O#5&J zzK1zDF8^b9b9!>>VqbPC&80;OjCb|-j@?mIbwOny-nZdqYMH~*yi)DZLfQO3y8`5d zMbQ(F1sBVY3@=x(g*hcR8T$VZW8WDN#j>sI%n($NAW1+#P(-o}L(W-=k|m2s5=oK~ z7z|qwBr3GzpopMk1VoYuDjA6al0|}oDEl`YM|< z%y6K@ZY)_*MWm9h?1XBlbn=w3yYfUi*1*TT^eM$hQgTZ{xyKR%^bgEmj;R<+vyGCnM>w2x3b8(9k^Bkzc5Uk~5A(VHKx~ z@}l+Q>f_o98HxoubFRF+8dm=_zeln&n$q&M>OvvwbFxAYI<<}0Nk#)sQfXtCUTtG# zb%$!xHYEgS6)auzlzU{88Z%#Q9^*%p23_4iR5)*Q56`Z2S${1@+h10%Z?^2}jhW`& zNOrPISb1(LuEqG4TjR=_o4n7{-lyST8|S<`M5H9kS>7*2oqjm!oIZH(BjK-_;HbAK z>hdP5=l&<;y7{t~W1aJt)SrHh@v;7{hOPQ;mPEc0Z|z()?qE~U7uPM`-S?!s{O94u zk*dk3je!z8uValz*;w!1_;Q5A^oG|%ksHXnO}Vo?Yl6CW)%qVidMaG|KAYdW&!5ab zB^NENPoLxcCf4tZwivqNq?4Q=X*kwjf`qPY=Zw&n<;wgoEv<91O&jmLs{E_RoQLzV zzFh*7@BPvh5f1`byoYb> z;u?_S2jxey?+0qSb?z%^cS)zi%vgeIPrA{&mLGJhJMwg4cUP*h)?_U|uuUi9!I0AX#oN4r;A~f0LK{h4i%v-% z2b*oe9RqPn;hWc*m%=O|es)anr$pm<)wuB_d58s}FmrtiwNXnngqkNNjmp}!sSlmN zdSA4oI>g=`^GVW-gNL|Wb=Xkv!CRk@i~QajL`QsMV(&6Jb@i_uO3|*en+%@AHkg^s zt8Ue*=7#CtRaRMXvk5z4HaN+xLMu7(sbx!voIw9Afl677pHvL-ofjn^G~3Q^aD8kV zqzt-$_;V|{z|bu8WFWj@cDZRwY4C6h@d+pIYtj`bzcu@pUXJ;sEzcS3zo9nRr(!dy zDka@ad`&TTRzS*IY^r4GTJZvS7+CLM;R)hlk<+uss!urfKXLUA+t}4Tv2fSub&~yr zg92}K(RCYniYLrBk0iWnl4g|@`S#=PuWgrF7Oi>5FTKNiKL&m+S$O-*hbBe;@EYC_ zP-2PBC#}d6*b9TUhL^jZJsiY)Y4 z`OkysXWA*eSd4up6IAcD#Gg#!7irRX5Yl7DQJLFdt5qFvv+bB=X8~Iv*0<4{)o!DA zJMYOaI<0C3>_T7X9!gr6px~p0+h?H~4#WrO z6&K<(Qcx87%!T;L0Q~u2x(C?l7-rc4UcF#`iqi%8o<(d>!+wi^D(L_K^ooi??c4}z zD4qjBQi|e5^db;Or2~8jG6FHW2+Ys9o#4uv96lsb0LNEDPreEq`>;?3?|EIm^|J7c=kj#t3U`lgtA%u|# znbL3m2vH&gcPZ07ga!$+LK3}+9 zgyZ5d;PbK%+P52~ECnF)DLm*h@cV`f;nV>NXXk+`%4x*+15*zGfNJf$AVfR^Y|U9h zm_j?hfUPHgAa3J=RQu{+nl`W;fYSz1EP&!+`uQ7z&-*?E^d;xfcnI_CJ_H&*f+Qy0 z2LP93kRVQnjv8)Vglj)3Kvxae8uwu^e-OXA*nqqcLh8E+W=LfN z6ast;uoA#P;I)k-v=jt21+78 zo`!t)KrZ1RVDrIcNdQz8uug){kpNg45fO~>Lx%5T@EO|2;PZpWK%t1=AbfuILHO+K zgW{3DLHO+KgYdc82W6p<%TzFFEU+Cf-#7gg0Wt;(I*Rm%S_qMM;45Q5QwfR-47wn5 zFjE4q`+*jYBB`OTL`afSDpKSQ0`atzk_>r=2q9nkm>P*VBk6C))AnzDGCaop?_-15 z|2?E07lL;N07EDsCBUE2kOi2rlwK1<(juUZBcKS*OCbFqLK5(xz}00aMG;BN3UkG=u=P(UOf|n=H-zZ5Wf`i782aKZS=<-Bj)|WfcbUc=Z^1-gN`v- z0k{2AXux41h=H=@K*G8zpbC}CBkw_aDoCS)F-rh&?SM%NzKe$5T|iPH&x=4k7m%9> z-qOz(kpW0VTj?crq|0dpf9X4Cq&oo_=Lgx|zv~e+LX4!L|My7+SY^cx=B)pii@~H_ z|Cp9>09tZf-2wFI`1Ahs3@~`%!}#eLMCO51fyxy@rbs&!QAK4~2OlClNuV9^Oa+0_>2ASLil1l|9v@TYg(WMD3`+Yr?&dv2iP| zDY}PF3G-7yclHt&9jnx945`Y#Z~0sc+&evy^m1cOOs2)bQ;SU)fx z4M_FtkLTSOb_;mrGqfkVz`g6%NUqU>{j{M`k;f_HH0ECqu2OUY`s=oY#?6WzV4?6# zhpQDy%y|xGEuG$G#jZ43ABQtCyQ8t1KEqwxP~vdimThB@Mg_lU^#dqEtMmcXYTN5P z<{vbj@Iz!FKz$=EDQW7n-@u}OOZD^ZFQ!w?U!)}CNExN28T23RskM4Vq)AlKmu|1m z?|P%VDk2(QIIiq&m7GlEI2k_YgY6Q8B6?b5;ucCDYxU%QlNt5H>{(-_pH{31Y1vk- z>9*{JEH1=lkNNC%9_@I+o%Tz3K{~?^n6g$qT-Wr`_Dh{wOiu*eIFnVyqud(-i$Yq0 zX1=Ggz2m1lsI==l)#>_6zS~!%Rnj`UBzRA+69fBg%11;NI@IZE&zi?$r{#eL5T#~; z?mma~h_}CRP}R$M3mwVlImh=%J_a4#yEA6RG;_o}Xj5YM6MATi)AI%0qEAAssMo?e zX-~wc!2KI(zlP+3y6PNZ}7xOvhx3%?dvU!lDlsshTOD0Eg&MD_F zRaa!JZVZ$mcSGJ=AtI=;P6`N_%zWM8*dpd@r%mzYzsC9U0Pz%t#Y`& z%Q-2sz=t$#%_$vtNEmMdpCuxfNq9%zBTN|<`uwyrJN;GV;>N4Dp z*t4xzOH_%)W=f7&XjiQoVN$pJLP|=9(&qMKzK+RE_qC~_x1Nb1Hrroj zD=I@pD;<_r`NozDzw2VlgF`<$O^%m;(d<7|I9`5pZPC@NZkp*)#1FRCIZuh)P|*SS zesHJBDVAO-hV=2YmPyY7rolsnci-L`E{bR)_M)`C#g|JSG4uTzqpXu%$JsbP!j9yC z2SrkYKDxsVX|35E9ubz&`h<3J`hm21@X6CoNxzFPF8fd`c8JSVkI+SYMMM7(R1!m{ zf7=t%BkbqQMwX>>1#;s~Gwt!&CrLkNWy?xj)c33k$_f$Pq1D&U3(Pt?@^j*$lK!Dg z%};tt6>F1Tf2k&3H}Ez3)PNFmFqmRa$~BTDi6<;hg-@>)xZ^WC8!#j;N=1hZF(mV9 z@r1KjK6~0?-QV|ss4GpVMf^m%Zp$6dXq#C-@=l%_d)^b^clv#@eXQ?0^`b+Wwx?sJ)MnmhYG?avZ)3P|hE zD&5+aeyuw>xh?)$C0@#_jbE1zBbD)JC}VZzVchUDK0DuM9MySeTW@bj&0z05&l79? zrA@c~R^6g=tSU5{GjBF8Kfk!TwzhHiC=wJSG*wfxr@9B}^5zKAcS7+Pr^nOi?2{N-g zOFgM*dam_B*`-7(*ECU%F~bnIs}e1IaZLJeZ9S=7%so51-!0jWr;#NapDjuY1eXP5 z`hprZifMxlMXsKy62tF#&W*T3HInB>{Gd|_msXBGAt5yN`9hJy&f03cFle$t0{AnZR}*&X}1Roo2Fx{c5-9+ai?5w5*Uq9(48T3l^dg|W^?^A7gA>_0j~FN(Vfv` z?&on;QE&%e>S;!mRsLc<9wa(=_Y?RXzWan-v+4?nKY5G7pD8<^GCREam66qj9YY}! zJGr7jS`2);=F4^2k^|{#$qf#EEcg*bx>}3K?|OH#Z;Wd^>AC`rp(p1Nnqha2P>syY z1=~{>KN~oGRwGbX7GQ;BwHuf>s!zD1KsR@{1~z4L+2n9zo*~$ zNRjFA%|~m@E;#(9)3?C~VMeC}C(|RnvHBmKtTEo4u2r_t*DD@x8`%f*J+H`roJ66ja0+YAfV9uR z5G<Bsm*Bul$D-0OqnX%l*;D|^cd=kM5J7VXKrNKk5A?GpI7ly?6)K0dR-tC|W zTC&Z<+#8BBWf*fopL~2@G?5g@$(%m`*-dmI_}SC7KYR~ZdGk96{b_2XZB-2RZ-XOa z+VLi~Zw)(->8mPyQgz5+UG{dfKWx76E zrKTg@pr|w?2SNb1h6%#%=KvX?2%sv)pU~i48)icW^JEPAKW2%dkeo3pjsv{;2?yb9^X^&^rnZAz6k6x@Hwn}9`xFT_Lg0} z%;LQkneg>Idg*0_UT2P7g;uS>!sPWfv1*U^8*3I%{q*8I-Y#q{Fg={ys8ZPwh>vg? zlNtA$ik-gi_d)38L&;?OpWh`G6MHuOU41lf^$3i}r1=FqxJxhmatrv;<67ygvF*vtjF>72+r!&L6-oFl$+AxAB!Yq#RW)KJ0qpt;gpHG39&)iq|RQ zqTSG(zl0tL#rn%2rtj9 zXTF%-iOX!g8qzO47`cZb6=OEYX`_DE_@r84!*!}>$=lpTn#fSjB1M;!sE6@`XZ&@? zZ=GRP{^e<5x}%6IuIPj=mU8=V@$Ky;h-K4aKWm#Iq=O^l$^Y1%9-42m? z_Q|r-Luy$-glT#D{*%i*B5WxXjtxn&(hr+*>bUD_(o`#kGO*j!A?Gf`z ziq@lWdHJd#$ye)kfw5E;&anm(GHU$~m8yn#ay)H5T$7E;^CC}~YfhZd{l#ps9qUOH zxp!xgRs6|DUG>QJP*RYEv#@lZ=z~=ix;;PUTa{EMvxVw|RoLP61v|-?84Z)=-_69o z$&7C&CQ>f4+>};n-So2>6H1y`dbs%c#OkEi7Gkp3m$yrzt-GY5{g?>t`xCrvCDXqg z9+sbQYW8|qF4|nq7e1Y8)j9m@1XY%i;h?Lr?i5e;P%#PGEOa>VYEtjVO5s+AlH(h3 z*t%-%r`n8K^Fahy&0RZ*&u!-_>m-S%y-qN>%}gj_6{lC~0^WUD*LhTr*ftBv8}$4z zY~?NfLwwx&2#4j$h(d}aJ=5Su!=4THoK3?H{a)bMEhz`CcCoIa-6x}J7HyjroYK9z z8CDiSzS-_Sf9Pn%gi9$WcI#PWdP|GRZTFH!ob?nNPtoyH!xlgx5&r6)ZJ-q%?;p-@dC%L6_8SSI(~wyrw=U-TIo^+-kk6S7)8Ke$x1;`qPi+ zyL7GZJCLe{8zQieMg_1xIsCJi;#;-#5+wMnN|P3}&Q*Dg)9*bT{h_B7!`Xl0Y25W} zXF8r77&X4&-4=8OZGrh@@w*W2_m~=M)afh7+HRefT+OOY{ zx$;$1uAR(C$ib;vQBh+yX!6W#^}2-m7Gf_Zbth18wrwUcypGN&={9W_y`3C<+PGuT zMbE6;Mem}NgfQ%)pEtZ@>%AE({_?K72a&0^Z4J%ADd0hH{0u3!?c$8zg4YxAQ0LSa zg5lq_ct(G*Ku@k~weFf5Q#TNOxu`GUD!_OMBSZR0_>f(Ed)%=@@iw70s4iEIdg9nz zHABCe*Ls7zha^>6vP=%uY~)sDNsjm#4r7>Hu4|ih>VFk7i+SN7KH|>UBV^`Rs?@2} zKut)Tc)v4uc+7!o6MIZ_@V>_mQKIAf*ehmT)voDTSQ|>=E1VPEX~g){r1V2FqZb4*l8l-uME->0d@?5vJ+)*)3qU&q#b3-{{prizKb82l`Q zX`kZk?Qa{FIHp-$_#t&LROicQC+R3{ONl7Cc&CZFo!l1nslf`31>d49bkdaQM}jL?-q zZooB^=Yj+*l#y|Y>V3#m`YF0#oYv!K01UeEvrH-GElcT(&>A(BYhP7WzGWFt2bTv{ zx+`|;^D}*3_<5yUX(Z$H405%D(kI(MJe^N~pD7AUcRMEhQ(gnW7nn>3R|Mv`D<)^h zgul>T>7ZN@@|iw7#`Ai)gHj)DE}pL0t)@a@+m{H1pKA3y0W{NIbGPo+Qwvd8^U`rY zE_IPJ&M~%{?JFNvsoZQg#Qp6y&9uP=ccJ_S_t?R))@ZSCF>Ra1HEmm;_60GPE0Dy4 zHJD@~Z}E%NCGC%Mw?o7|$@LD=HCj;aANmyp05p-;8@i<5Xwgk)e)R;++KKO16M60< zOwVEUh05#Br;l<8kdDZ2yp+_BuX5A2 zszbD2>DupXA&p(I7P2CPbon7$NK;pfK<+t``Gh%=WWBF+BOzNlgfnv_F7^J1+%kTT zpL12fCg2gc@pkGU?aY0q5ws)A^}#n-ITfGyiN=h0FYflO5Lss}gI-$vV_G~Wxg z73qInx=~}~Zn*eUZNQ(qoSU=EPFM9P-+1gDi-(UgM$+rKILltxu@lmTDPDY6-z}2S zB+@GSQcO!^Nl!N;jO%lgzHSC1H+-_z6c{X`ayoo-wlha2J199FVr&x~y!^o2No*Wj zY{KdLCZMV~$XKgYayH9#_myIf?S~hGvo1APyY4!AeLM8k=@X)CFv1N%KI?hXTXpIK z!q^TRVg%w-TREch^GTW~J?=3VFc-H6J*~2jFeEpgss#{m95JZ(`dKg|N5UkUO(3Ns zWtX<6{MhS(EQ^Xc5f5T#D&urhxt=k-(IFr4Ea0n|H8u+z$S9|CX=-n#l4hr# zLGpG@BY7WBBmJvY>6oi@pS=uk=UNM-Rdv5jJF^-{dlWvqS+FG<`0zDzs=1DS2-dQjW^SPDzY})S`BeGLUNx z>-cy?<}L+ttAhS`C6N0%IIZzhYU?hHid|gd-zC%aulY-uvChO%*s_gVP0#k(z|2E; zlcXr8mrFFfF9fB}z7QO{BYv6>oYuPOQ>vb}E}qgzqNMAhca=LhS)5Ie6(4sC5x3Z3 zN^hOPGP-z3hduvnLshb~Wx_TgoZ!wl<>}!u@%q@I@FdyPTaT5$y7adms@m%XMlh6n5Yzy%MNX? z^=IdW9N$-bBpv-Xy4b%1U7fV7Scf9H#FE2C31QbIDq4tK``NBJ3TK1m;4mI~hoUHp zN3Z){^nY^{Mmqt#F5Oi};hB(SVMdS2TM1#=FNbVSkN4O-S(0}aj}E_H}tw!ftmK9k+1tc-7WZiS?y#dTzD#{L3tOuGS&Ej@y^#R-|UJBTZ@@D zI^fkus!uue(&feaetKSBc@J|p*A}k}L6ZR*(Jn0_W3@uV!PW0vs=u4;`c!{s^qGiv z{&uU8{1(>_`DBZ3$yTAZym;o8k4SI|=ktrxlB~Y&+pptHzi6Q&eGh&wdY)ITF7jQ1 ze0s*(zY4n)J=f7YQT=exNOJr6Pdi_(g|6X;ubk${rU_`le-hOhT1eJ5=Lf^`;xaw; zMH2~yQT$Pa8vW6=A7hH=R@IBvDMmdPSUYCN6rKVE!)A&;U7A*ZChsexHMH!KM8y7)Hx}?BbUmWl!m)*c zQs!Hw`O7>V)x0V!zwTpKZe7L1-VbZ9FRkw!cjF~YW1?_1W^}d=3GPG*bL&?4viExP z={{z+vJNS{_DWql_F)Vs+pa>$uNA$lgK&0ka}%|`oNrt@*M&SKtRCU?>)`BDm9*M4 z&wAOi?<^ZDcE|hjvW-=^yS~ii>S8m$_?#XQ#+re?NZQna@mK75%S zi8Or>c*v0LRE@K;?EJIi2t=-;Y__b_@B1DWZx5!`zR*p$TQQIMyhlr z9$yUp@${Z#`uE5Cp?F=eH1*lhXX`IXPlxJALi<^|>*q#*w$4vo{run9ZDs)r?(0>O z?&scHfAPdkP1L?>^0)YrRcJwu>sD_boD^PUHhyDHhh9E!q;(m~&MLfeMv-5Huke(@ z^371@vq4i6n@V)omTy{qCKMyzsF0(+)~K33^;bmXWgYCze9Uf1;_v8G|LYen_h;vPkA59e%#lN^K~5wI z%ow$i{)~=!s4uw0ZrM$paV8@^{c)n62{k*G9R#mE)1pyw=t*Av$>>y1*clrdoZu`% zOmw)jcKam#sh06zYKBu9l{dqWMfQYbSUnCT|9qmmmZ0vhaL2m8?2a$wFln-Bj`M_) zU+Xgo3>4*kRdQI)oS2sFlqS`YP)dqSL@?oz;5BN{G0n}MM=U&;wA4jI^4)eb*b9W% zhTL9VA@ndyb|L(fErtVHQ3Mmtu+4e)#T`5CtKp@ z)Uu_Fs3<29BDO&%(u(vTPpebXXR#O}HopDC{JM6Tf``)W$+=>J#`kVv2vfTwihmq_ zalyvCx7QOpj(e|o!tLZNoR4D8}TQA~$O*tS|%G3uXj;L-#qYZ)8^z8t0c{Wl2_P?cNQUw}({z^^y7(N!e9r zgyB!#kMl3qekdD#^A?F{ z-qiV9FL%oaOtd|8IxrJeXe!^QosvxNpyz)Lm);nNY}3&nAS%8x5J-E2vHgzYTWl)v z=$-r5hPy1^_@ffP^EeG3nq(Ok*dkgd|Mf-0I~;59v6*3nM~dI(m`eb!u|->)$-9i? zC1-*nBGKUn&=@<8UoW*8+v55_>av@pENGK{Ekpp7c;CyZxlZZQL;8^jcYEa$7F`;} z0l?s2NFuxB870t1n7Z+yyC+GdHV>=%B-$);dZ%ttIV#fd=m@60Z>>V-(4=*=o59hV zjn|$221i|gj^|&?p!g^qt{|l!aI6u$&P#L`By)AA*@JPG+#p({QlLA(TQ`G_zFAjF zzu#5hm(d<#&ntfEUT%lD`PvuT9pdfbbJF0HXmC$Cr69?5h_|pyH{*jH3w9<;M{W+h zLY|GQBQ!(nF4HIQ#o0fZQ} zTU)h%WH#$NeogNFRO2S2Hx{12$9;W&zE{`!4(aC@eccH<`G;y!hMug7s>vVx)oH@7 zF5YvO@R2W1l4Kp!OwP3v@QDtxZlD^IU%XcqDajhZ;Zr+#@7odA0BZ4Gx9=Y>`AgX{ z8}O|pVtX}{DKg*o#!9kk-ZfB5?&|#kVqq!^0Cx9CXQE`*=0pSbk)$UOWlT%R&6unt zo$^rHY?T<}d9;+|wbAQ1X(r@QwZzvn=sBcMG6s2M#kTPOh<1JZN-f}}rxBFR9AE^M z*KHT_=}R5_tO#vbn=O8s1@|I>6o$}^6<<3u{UMeSRhLBaY(RqULa7&Dq|+}`)6XGT z-62o^%Oz2_MV-l880mwTtp2Kqx?T3|vA+r`<>`a6S-VrM@|TA{%O=|NlsvsH+VaX# z1?3uVG!RZShB>>!d+ghE&S(1#m8TW29D{x}vDobjtW|8^eopc+R;GP9zX|*nPo2;4 zx{}qg>1!A?`-92Fx)RkYGwuX7D%hR#$0nhMn^n@^lD|xhIK=zyv@FTS;dXiHn{qEV zg2j2-R1O&~Qr5)y5zL!x9G1-db~=!I8G_ou@;!rLKc6OQpQ062@azya2m)}m0 zT|c)Gy!iu!?(hKQ-f3_vo)cVQtmgd`cRbou6yNJEQhr{1?5EhZ5FLRHE&*D(=3s=v zs-L1+O>)EwwdN&CR|MpzxV;h`0R~x+j>z3*caw~(wLGebc;oY-I)TrLn$xLM<8~I$ z5!x}BWt=0t91!fJeRM?iF;bLYrQ{r;%cwV{>#h)*M5nF*x^mLR=>p`N{WUUtMK9s= z%^B_C{<%-RtnJteQRzH|R38%?^B~!!j`a$%?qSUz6qo1P9hs1t{I<&;heaL7ct|L{ z&FP#;C|zcP{aBHjOi}!bHPh&|zYdG;ovgX672`|Wc9h?R^(dbhn`DbtL#gj~KkUtH zTTK$=&o7LwS=T$;su#q{iLXo!2NxwY?rbxGSh^}b2leD zECu`W`uODV%$J>QlbDAo*rsYHfV{T7Z4&!13ELE1u;dJ;Y`eT_A6ly?EJ~N0jnJOE z{^*wFIX{U*y*?5Mm8v&F0!m58NsF8{4)NajeVDe-^xPBY8IC_>+J`^3d$2tOl9>RK z`=3X!F0TnyVCTdB(z9I_YdJ@>EgF07y*O{}Aa5EEe)QrBh0?~Vgb<=FFZ>;lF7eu1 zK+FLoU9~{6Tkfm@9ve_O)coS(3I1Olq-;382>0=d%T*?`z9*~Z-B#OkCaUL&?K^8|YA$h-5$dZWVZ4TIH z9D4b!B9L2*e`Gn_*n%^Vo0ES;wUMMOdJ&oX39`KPtf!#Ui3j2>X_F! zXH?850ubM0zn3I$pHQFbp`T=YqLU4me&hV;qiga?Z$c)6d9tnnX&!=q9AbVC1cuZExIg zLFtIEJXfw(WY(xO;3i5}O)r26oz5T5JV!hqAcXul(3H z&?=$1m?`S4-^Cu(aiP@8{@K7gOb2$>ZZpK7i(R>QF`uVG*)%whk`8&J?pGqwsGIz& zuri7pr!`CSdHaslu~BO6%c-1%rmLW2_IB&s+*>KQ2#ZUq%{1L<}a&) z7mTjv;W6)>>NY+~yM4{cy+&R^ndx=$@;A_4=$rO(xrrj$I|?y-MdhfM&6DvKN+TaMdFrg>h!4X&4HRl#_ASF zRIBs0aOpA8>V<)?!XuJY=bev0Sc=ihi%My)1(M0BS%+!p&N5WC{W@I_7_LP~!kAbxN{sw0b7rjh|Qlh^_t(HCIq^p^9hW<(exXiQ|D*y=d zEl%FCWph%AXG+*aA4!>~N{RP}4PqaPHr?93%2#K^HAm-`x%Cfo5DYP*e zWJmd7rLOwJhLl-+;I`(*vVIo$Ge~8__2+lNJ+jG`bj02r?4p1}f9ulDy`_O8yANww zEwFhcf|qT$$)$70uFp??&*va--WVucugQFD@xkeYQ$^0igXJc<90dQ~a&IKtyTN4p z04nOyRTa4?CoB#1^r|hm@Ta3T8hxJ{OkzQ#WV((yH?~%FEJW)l3o!_Zzu>vFwN5uy zyCz3TCryFniWrpMW&i#2mnd(_>xg@7tpyhS6T)>Li*T# z=_=CYq{Hv3>iz65{USWP8fT+Dx+B5Y3!HjB*hG0Yf7=FT{-JtY)6_sr2e^- zmt*sovdXY$GJEy8D=%#tejRy|ZG`4cNLP?(Ta=laGk#%nae|4-IIl@Uyg0S#)@+(UnOQJAFQ}KWFbvwY3&q zbLLRQ((-*A6eOW}KVvsSpcVae29-gnNR~|=OY}nQx%6dYETnKf#;pEeoqmmh&VYl6Pn=f(YA*U-^@KMoy1&?xua%mDDv~JD*~!>c$s}O|Lh! zmn%L;8=96^FQ1+4#^WzpA4=_Zj+gHc$usgN*z;T;KliIkJ?yzZs=bWp)HzC$PQIQw zd&1b{3^Pce>4DUp9)rik?delI0RiO~F0A|2Y)7}8lnSlB@oovxd50!6iM-79Uh)0h z@`@;{Ge<)zA^_74EGh1XW8`c(0rIjrG0XLkTzaa>3suP(!}y zNRt2g!wvNR{ow`*gBC6&L81@{L|*AJ6l#Qxz~tN62RQ9#|Gz$Xz`GBT?tgLo+x>?J zT6~720Uv#fJ-Q;x4E;EZ%D{?76m~Ki-P+1{Rn0eUn%-n7Da9h~GdruLrB#YXpfqwCGx;Z0ZYEJ$OK^YzF`tCn+5WLRY=XmC!fHw@NtvR}xf;Dgvp))j*343X7q zoZ`b{GV*?NYCH6!wH_H&g!7dJ*A%q-+UA^i6f6b@FWAsVniRCiY$&ilN1##_Bg{_jZUDSj+qXIjvOy3 z-AT>+{Frk|Sd27G6MN~&IDBEu+8pZObthNrBXz{Z57PY zq8!V}URUQ*a%bsL$FDV-H*4owMoj$fJraU#vYJ-=Yk{@CO0P>;pv6CH{%l(o|B6&F zzke1*ijKt$L}9T;St~5pko$J$3RQCe3oDTd6-R5QG**sO`knps8se(Ui{^~wjP%cx zz3tG^geyr~I-hN#BmA>I4L7v;XH8XPMsDh8)2dmzvVZo{4e8sURiPKH@1CGlv1H5m z8C#d~>8II^h2c}uD;ZZWYNX}GKzc_9l&sjT?c{atpFM*+eP_2OyL!fYp8UwgC_=r9 z^e68-VPhV@bKR6VqZDh*Zte23xC1(BXb2>IRjMIB6S%Sja{|xQ&zZ4X&#xW1Sn%@Y zGtyl?R?fTcCrM(c-;c~L(O(F^Hm89tA8VO%iMR9&nFUhdm!neZZGi(zUrYN`?$GH3 z%eYTA^CAyE*|?lw!W2d&WJR@%*e&+JVPHAPc!R?=LD5}i^lAngh~`6;!fxEiV(9y1 z^9l~WvpAjbZuBjC*bSl}&WqU7jJJk_K&%gb@C^YA5M~o9EPyVaX6zG$1soM`_*cU7 zSamJ9A6|^_`?<*fp#1}1URuk@lu_Y*;lhUNcBd0w{o6%J1E!e%1LHnR8zTY6=!3=KWLGXU4;KRUuP%J;{H;+&#)OQ~B zn}W!i>Y$Y1eZ9dxvapqqix`RqI*vxc96~tiB5R!gGh8nFFnBvzA;?t>MGdJ6{(*Zm zY)MEi@*5@!_E#0b!|q`IfKdqm-!V8#cy%zJlMpnj0JOakLNx<-9#HJRwV(m@lEA)} zSHh?!;CTwRCH^}yyaBNoK9Lj=R1+0i2M2xEPE?>QL901H!j4!N91=n*?5lf3;Z8sS z_MSe#0B=6ve+z4aRuoY6z`Yh!YVa`eiNQQwz#SGR9#MqFz&{r3uX`W{4)|zMSWFGI zD52_r7?g(CZ!!FZs~BGVMi~~vpS1oh2F+C%7yBZV2WD?jn+8e&Zl7l%IYX2z98{!- zHv|VQ1MKb#Dj@8y2>j%QfsF!?%SDv@-|-mG=Y?V7fqf*r8$Iwv!y`>p{}TzU2A|R% zAc5m0@X5y`mDK(d2|U_>L)bnN-Yy<+ZsC#q>L_EVUkhapeN#ti!dIf_;N}PytpM;V z1Rj#W=NN8-IMe_9zE>EM)5B-)7%m=_0PvQD9~(X%j{Xe#d?rVeG%9x-oGYG)j zJA?ap5bz!ZAMEafxOMO#BYN;qgfROUG^p!<5o{mRetr=;H(;f5ZSi zfUqFsXaEa<|0bxm_%sATl>4{?J}@Gzy!P(t7q2KLq`0IwuM zplbll1Gx7>fmWcoZkeG(U^zY5HXM*=?2FN$7!L{p$~Q;J!&(_&$4=0t9biDWa$qs! zVu8odqd^7$ecS;C>>9sc3efp0C=Y71D5xLc4&Dkha26NEKxJ1@w}1pR?ceqZ!rOQY zKq{7~Ti~exV?a*vaRk9=D+qO4qWnMy4G8Ie3oxL53JF2hS5b;#=MR#o>(opj);memE#Y1=0c@s0UyXzp;8B8pLkO4vx=8`RI|#gI@ya3R z>nMpwmsW}4cw!s^;Hkpx4v$0w`(Yj!xb*+bu>jr!8IA#%4ZwH+a=ae{cs&ap&B)9)WSeBdFnu33zi35TH7O zUKUmYSRrBRMxX<9LZII~K!7TW#_LdZMVWxv7nm{qHUh4wpliVy(To$LK}-Ct9u2B2 z818Xmt($OckUAJ&_jRK|!vg&ePTYYLgW3bTkl=HO2D4Q#nE_(wN7YV*WCFhhpmYHZ z1Dx|OZYUEfv>2EM90=iw8a@^^Wa19e6a+IExU}&~1;L;xhRZP(H0X{ZE%oq10Z*Nv zOd}r@9f6+d$7}c%n150Q{KMr0P!QpKzW>|hghO!Or9==<5CEoVcvllJn&Vth_BnY< znWIo^$P<6mR-CU2?3838D2Rq!V^Jri!9WY*@GIN9o57ywun?3lp2olg1KtPzTZ&5r zrvn2f;Z9FbCy^L2=tvAWgK*COpc6;`a}evFI$@ug11Xe((*-D(Aruor5SorfF&%K} z{9)y9{vs3Dj<*m}EoW**1^;70fd z8qAY^8zle@fQ*90FrCx zAvgg&D?-r_UDmvGN%;a)T?A$ZGoC0Ca(PQPYh`CAcm90|X))>{i1=B8kO#8&LQ$1| zDMqm)z{C6g|M0)3>QFy4f!Cj`I* zIb9VseW>pV0T-ao-OrJvprtk2w zJ0)|aK=y34*KFLqz{_o3$-g3gZ7_5A*ydFB^xw)`+pTh#l{$R--Wfac^r)NNG>}BC z+k4y8iGjnTZ6Ad5=!Z8MuojBJIP91s`qfr30x_t0#tgbIk=dZ#(T7+&elj zn%HG*7nuVM5q@+b%Qlk;*zo)ub;}}X9IJ3)b^3$GOM_I4?T2!9Ban-qr(gYQ%g+-l zXXT&D++7H7fpUf_c1&K%+#8pv-C-Foz7X`i;A14h(JG>V|LKx+^9}4Z<@#JbvM0bM02_VoOkQcBy1Gs*UjmNd5V6BEgcEpKgA)vvxu35WCwX*hmiR?%`Qn`nt7o(l|bWp(yUYd$u%f*gXZgl-}{&2{X;N+Anpu zz7=w1De{b6zW@CEQP26L)8Xm1&pvst%d;wmZ_u>oUsZm8;WI)bX)=OST=|}5_>#(Z z%Wq!@PcKbGZA?d9p0<KQC_*yF?Llb=Rv zrtb-!Wcu)WHk^&w)ty=*@A9owt7lBPUd5{YA4+p#@86kvQG7I8{}T7+dW%Xy9w7-$ zV{ep{Dr>>RuO%1WN*Fw(y+upvS!|NnnszDw?YYT;zxcY&nihU~O`}xH&h+C`*Jrtp zpGO{`M3@ZIV@}_m(GGC0?|6r0t3&Ch#rlzPYS)@N)t%frBpnX8e`zs?bT z(w|(`9JXzJV=~6}!(cHSg;fY7+Z!dGEPeH&*u`mLm?Fy)=|g^U>KjuMu`<~!QRz3f z?7uE85{DZYvV8f9pjMW;>(aB(z`|TiE#b_-#ii0Sc7w35bx2I9lwq&36ZIdu7eA7a5GQ+B3}wpZ*7Kk6BVs>0EFJHDIaxjR48wIS$K4gj zQ-;amsJlx@ z$6Fx7jfUpT3b+eLYG1-@S)jJAQs65RVKSax=bd}tBj3AX5)xyb&|!%&-(QoGlIA!9 zl(ZqPsNN<$Yd|QV;xHdx`{w-ePVaPzT7JA-&w+pR|DiNy*Gkm?RXN(dXoZ-!u!0L4 z%<^v+Jix=kpZXUV3H>Bs_Ws2AhbSs#*x*?c@an+%hsV>(t|dsbTa^&ARuAakuarU zZ2ts=@Db*Ja5Jf%!a=L=(Wap`;zyIaI9=_D8F4dLeXMxVM>lhh7r?2i`K#p00Nq`1 zg)D7$dOm#fHg>B%;}rc<@?!CAi1;U^My$E#{b0WY)eRB!P&pY>u$#B8wdar9T*D7nh8&N z_YVJN#pJZ9SysxHE0a_6TvEbV0%Rz~5d_KaALzwKaxe}T10S*u}Sj+i{+IRPY z@0-UuWPV`h2Wwj?-2;#o1;bjD{=JnIMG=~CR>v?{aUEa;vI^-BAB^reK?!`58)Yk{ zYtf9+hP?S-F1SBmIKgw8F8B`2gG$(xthbBb+-6Hi<3T=(56Ak4-!Bmf`Uv1NFk(3yV zELD@OfMd-}YBY_FEug3EgKrYg#ew=5ClUoi4639~{Efw|GG;BJusb?YUg+t3*3;0uW&(Ssr<=O4~nOQ=1tr7>$ zSfCUONlhqxk!Nw?=6=oF@$_;?luwG5l0q}wG#so4f5#;0om(F$!ogTyDalc^UR9*- zx%|-)j$85P7+25qDO$~>UJk~K92Fu7VluA|1~K&;H*zH6r>2QAI`*&*4;d=Y0gZ5= z$FeDDIe>6`=nPs1qr7luVaTVZ&2wtvrFt__r@8pt4m_T|w_;&k$kN`>Lp*}2@il2m zH$iW0P!C6+zhQ6PvDT};lT7p6A7Q2TN7wBhVVkEXHU( zJ|Lqv-hQdML)V(KT(%>{O`jXDv|?bHSsV}48PKA12}A>PD0%sHe^@4_7QzV2IpP|DM`O-qU?7(qWKCqEn9wb&LzV8Ts6c) z>t-A>I7^$)m$42*4?+hQ51&xOg~CJ&pjyNUG6EH;f2pGdzeQVBAVn%rHN)oE*rQWKlKDmGtH7eQhDY*s_mw>PF!0%kqAHL2BwX_!?e}cbOJ2ZS5u9 z@FcchCQThkdbCKqGuqm=d-%Wq6%bl_TaWmU%ZtbIxJFsC|Ax`QIOEQ>@JwmT)Jh4a z;WB#@eRJ0Y7Jget*})xk0 zL@-~oa6QXvtEbsPolc4LD}Kocp;kRgT?_cl#vAhchRhGS4GNPIiRRK`khDbO!q9n- zPhV@Vq0_;6jxl|);)uIkO~fodQZFo4iRl7KNi$7KEF2uh1Umv;OLG~^GSlP{K9B#cWZ6>-XGSf6Ws0rf#7cYu} z;LGvy@mNK9ph3GyszZKE;{v~Q9%Ra?NhQ5o}0=&2oP{Sf{;|YrdaxQAgzz_?iX!0-US|cUaIF+@OB&LE>n`rbY)T zKq;fGKf${MGq_8o?i#t%MyH*bIp838)_7>Y01CB}%(7U#@iOmnSVnAA+CQf2 z=(3{V9A{&R9W&vW`@;PQ2*}+mN;e<5A?SYiv4Vjq7~W1r^e1lzpm#9F0KMM$)75Kj z^K=l6maewvbH`!wyS6yu225KAUPle7K`ksRK_iL!)H+m5i}pY)6fw(&f}8LXs~Sy! ztf*dU5`{}diSie@@F9p;F{l%y?D4)Bslmab@un;f)wcDh(-I%>VJym!*>RC-d3Quo zQ7E3+%oZw-9ZYc(Kpn#Pb7#!AW1ua5xJsqWjn2A!k-j=*-Ypd&vJ>GdyFn{?NKa!6 zQGv`+<2PK?jO#pgg{;xG>F5@V7q@($9Lr9KMsS)!n^be=e?k=I?Ao$*;a~ zbZP5oo%G~@l$$>O>dh?DPwLSADJn1OIG(bv?xlP2CcafuQ`X{nrJF4qrzceFy+%%+@s~MC}=!Ca(^Es zfgbqAA?!~iQ&{gu_d;g=(}qKrrhLw>ifvvcWKGGkz?x+ut1>tPjyA0sp@>}JDMNBH zd#Y)zc45fGL%HmwE+aXLE&!^k*ob7D1+B0^XBI@H8z8(^Rx&Tvx0EI0MxulYMnjSc z{G%Q+1%gz)bdWOO>+@ozqP)T_Kj5s?@_EL-`&Dh?^3mgR z@!=TJTZoEUxuQsW*4Q<+G8m zVF&PW0oVbdg=V2{REq>33D_mMEiFb3(~(A}jfl=`q7}j_=qLqK%YI0F`an+W9eH35 zEl&{6poOSFW=R)aiV3T%V1hI3rOyFkDR3Q1iN>$;MgD~`fQoEg{wj!dQ?Bh3I}>*O>H5WFVEPUcR>E^Uv74X_76>e((3z+4XxD3@x0M;(mxJz@d+i8wU^}oYK{cn) z0QiRXHX)K+(vam5;7Aqeq1~v3)F?_%gCVg-eIdtF8Tw;E9z<~G@+pU}aqn;LkR0;N z)qJxrptD^sm|)1c_?yfRZt;#4;Ps?fN?V^h;$+VQynY!9_H^^K6wE2Fw9}U#t2WqLB?c8{K{yf%c>k0iMc8ucZV`NGCZ7LYa~xhwTMQM-onNk9_z` zN4)(L@=PA21%NAD%nfwx5ga4z54;Hfd~Fbbw`8ffprX39=9@kU#VKc`Iyxrx3#^&d zIt-!bQ2S)+Hlh+v$*T2e1so0R&zPgS zTI2%yT!_6<7BfzU6wKVUiZ#}40CD0b+y#U&Uz<_>(^m@PXDrP0$=1+c!GlIeox2vO z5Z_v<5OUVtJ(I8NF8oS-Y=jwigb%AZ_Og7FGV)#rXe&a>Z%y27FVw&I1BQ|&8mG0% z7~bB3KBDn37ojw_ec^Uy&nn`x!6$r^6OGP^cw(D{+81*T(Vr)ybxVcRa08;6^FgLM+T$JJ&Xf-B@GZg+}n$UK^FWFktb z)O+LbT4oV-1>_uOsALlgHT9BAf0MHX;P>a@;5=x^NQK(6*8}*XXoAU_P%SM%z`zPEvyV$Q>tZ zj0(X_Jotdqk3nS|lgN@6fiu`hh;*aIH?>{K-a+!-C?=;cAwaI`#5Hv8ytsOBS zO~;P=$n#GxPrObXpvn^+SjkIPMJ!)j#LJ|dIh?i!oPTYfM}i@wtyJvw715PQsY_fV zH_y^!pq9(oRMz=9i_28}Qq$Kp-$R4&3TGvS%P_{ZwptHWEwUH2d~)G?9`i_bZdiSC z&XzQJJ$aw0$y&xrFQy+|ARq-9@-frATDDaKY@(zY2(g?73_(tz#6mgQX}zZGaT9~F zV#hRmE7=prD^wDbfQGt>WW$QYrp=^ndwZOXqpdz&=AG0|b*^hpHylY=*!OsJuFyZ#$@hHLuHUEq=EQ1ls>;2>N9H_!_1Qf=paov9(xj^cNu&8Kin9%A_R8>$+TZ)-)n^T&P z>xhxZ`8W&TP`K9y6jbqiduF1P1aQ(XPPiH?{?S{X`}zPmA5>YMRH>RTUBcC`*!lfc z!dqR$qh4ks>@MXlH$;T^3Q>!D`Px^2=0*pVV5<7`ojYFryeRPT*eY1g|V zktVz13KcmvT5F=B{o^JwTNz61EVdmU)n^_a7X0t`4&4NEAl{gV(^^i*iD{RXo3nKl za?ti3ymmzj53Lec*{rti8^lcm5U+vp7I?mT!J!6J zM)o2?5MNaihj{xr6Poz-(6iOr60k%xG@Tn+_e^gn>FS$UFxwMe59F%hH9?Dk;9%ha zL>(kNBqscve!b(DP2WA}g0)VETSy6Ff#^UeliW!D65nMBt{iA*KAv2aLr}?3i3{gv zBy${Wio#Scq=jQ(Aj?MX8RwN2Yq@NYwt0vAt=}h7>h<(YTdB##eA^S4TrpgX*Czxt zK%-4H7XA@8x!(9=+S+dDCKqV6#WTkTSb!GHTAkZzV1mPu;dVsXh~*p)Uw%=1t(UR| zp`#(Vzl9whv>BgRGHW<_J;A|De*N&_c;BFqlug+YP~p8_?dyAH(dCbIb{@;@^?G|^ zBwE|J@OTcee;q~e&%0l#a%Zw%{d$LZIll z#SCHW3L8b|T^&CfD)bnimE&2xx;=-T=qZtwh$Ypw=u^hdqR|uw#~PyR^!TbiDB8OB z8j!fmz|4RFUflk9#Jt$XKSf;QdD(?18eTSO9m1gtD(GW9jj%MtP7)};0XFeN$sGGF z!1t9&=Z}@R5>Kb1%%T<#hM9~id9tf)3);kX|F&jrOYK=}i`!EN0WH*`D0HJm-tC%xE+DE~ncq7+Rox-5o>o09ex z<-W4PB&c%~S~rD@>ar0kwO@dMZelLZ*vjNl)?E>zy6f&sX{6_JztYwv$CUhpj=uZn z3Zh+`f4%25!U&gxx0UF8o^Bo+ITq)eWf{RT&q}Sn=g3`Omt$8IK>jIy=mO68YInOZ zvC{e{d3ynwCLaE_*Hn)AKMWhTP)v3eUu$W{DApqk+_kgw0xV|bGNCUy9!;^b$-X)*0BuT!eE;5LK#GS^F10bq1@RX&vQGO_U^F0P{&^QN{@3?#c(xVNdP(ak?_p%^ph-8xhiajv6&^D z;L)=!VMi5D{p%@5(|(S#;QLo!3nQPVU7wWax<*J>79R{uTWl$YPVOOx1gVMWH9~51E`qoF;iTSiH*PKA zDV0hV$9kxZNpB&rd#b|b^0ZDRyMkV$aaCQnu-HpzwjREn->VwjlAw_wbtSKbsiC&s(E9t=XQu~>?Fb@Y z`lN{>rt37l{Y5Oo;IN5X)%Eha$yL<4rY%k><_fO5q#e;3rG3+Kc%|KH=_u0-(bz)E zdPa0T-#x23$^Ia33ftu3neO>1$dq~G2-VIsfUaO9Mc$mo9@Em>H}lf$vkjF868bh` z!j>S3bq_&APH#I|HO*5seB$<-876Y3tkof!h0S|FzMe8o#`M_TPI+TWN26*Pr-Eyq zG=92SlDc~Zv!*&JJ>VhWY;QgrI3Ey|iL^$)XqxoPBGU_yCS7ZBsKD{75h?$Zyu;=e zpcmtNThYw&F<=w1MOuU8u&FiGNdF@Hy?*r46{UUJ9eSZ%D-#3wJw&R zS+%4XWY}0w`wgCgmW`@ai?5{eRujZnK^LFu5LO|7Z)S=%ZGR{E=;j}POS`nNo67X*C1$g?HJwK9gfS|_ZedWN!b+E8^gAKEyhcmsmE zEsr!??o>4HzYS8#wmH0S^0C}nKXYHxJIY4Oh}f-YQt)Xo3XS$Rby!wi3hXNlz%5cS zQn8LIRRkspmIrHwT_W-7^buo$){8ic@{-C5$;Au>$ftLmX`{4C)f^PG7^vP#`!pjh$uR+XN8 zYJFnG9fCU$0d2&!@bfT!4FR@30;iRPX-y4K-~ppkY@v{ z-Q;en7wl*EhjjF2_vAR4F;l_#qb#dWA8vWrF zQVO<=tD$+(Ze1UX%V1_Iq2n*t;iX2J{S8g+Of^Es)t;k>_;wpUD@AeNwxTi?aUFxe z3ve4vRbN1h|3=XZ-;E$WCzX?()9hAH(V0WMhsFDE+nhMKA_iAnpM5CLo9(11#S7e= zyW8x~DZx0$y_&BZLE?Qt3ptdI9y#e@kOCDC18ji=I~S1&4S{$P72$7qoy8Alw(Tvy zlFW+o=%FTm`Q|?bn%4EC?Q&G|KrR2FpC_eQkPrjJFFe71Yk$1G=OA$+WhSDym5aJE zBWJ1u0zr)xN>_IHmbqP|iw#m}u2NUnAsCL0idAC)GxP9dNZSE`*Hirq6^hb!s){8E z-)v1L1G(4U*Nf~8sl1QAw#8*+;}@fD`HuRB0@FUU=t%-Qz89!pRLk3)0gv5y^S!S} zW14|WWGO_mM1gLhN;3-`fqY6t1?Gung3@_6#ABssv^rt^z0?hSE`UR+(D*~(U2q%$ zbas;pa3t!1Jhc)a_5m8qy2b@t03!HI-+uze@e`Yt?)Tz6!?)kSrR)=dVek2Ly^rWY z7U7++4D?IDTJz(8E1OLUOV@rPr|&@Rjlf4I9_#ewMs6&CK8<;IQs)=SfQ^3=o?f0CNu0E01Xc)PNetN> zG{CvvA~R9$zbAWH<=`52Z6hMK^3fJpEy6=1AW9xprH^9yp^(irbjYTN%XQgsMGq** z$4QEgmkZX?k0Ihi7@o9iK`qOKDi=GLS_r zYoN>Fm#~kcO^_OU8cHsA@bM$r9LB0@hKs!w0Nt6>tNJl)3^KU-W&=kI)Lw?t!4dnm zh0rNLDX;3Xn5^8Yg^F>lmSzIO@zpqm(KV8Du!wz)?g6m=!j-T=mP}$0*mk zN%@$@>rIy`t`bEEn|Okl>UPJ2irOjH>vaYWA6vO*C>qZ6?P?hE2Qm>a`Omx3_KDth zO7p*E_ypdnoYzh4jJ7*|3t|mjh$3XACFU&vX3wH9D~b-V&o`VB5Y$chz2D@z5;?Kl~;?Wb65o@wcI%(cX; zRay=_Fd1q@-49mT|#>wd@N0@gklkBTCJ_)C(dm{k)Op+l(K&=I=Q zD=;ooQG?aUA2&YNg>d`mXaXuPI) z*YaI0=WKP}N0$+v>%U<6_G~vB?#a9cIYZN?u z<2#;leSP~g+r4uqf)VjFMnY>y9wxk&y#`BC33;PHRSt@NEJNbTwzBaBrZkoZlQb?Y znWpz8Ud8nxd3>`MyFM*6xzjj+`ASKP=cF!rE?}ytZanRf=lstyNAC4uQFZ%#yl_MK zVR}nAGkCu(iX%P2EyH7Y$eKnOIse^MGleHRxP;>0;lGdECz816Vw#8VJ=FnnpH*2s zx?zsBUuEZ1m1i46-{b)*ay#+|zU4Qn-y(Ch;kTd0Rq!VR0>*FFG*8k1yiv5mgaXUa zymB@D-K27+LpUgKUXMbNJtx}8p%_2zqxysX1+p|FgBL5t%{_s9PK;;_hNPVA8A)54 zBJb_o7_AnZJ_xl_Wi+YtIJAvb(QT;F<5#HKvOL~d$xT?FHGm4iK(F}Jw7H)rFxi6 zk~%v2T##9}X6n9JMP&cAuy(snoO;LEQ9wfqCw>N^>NuW_*(b25`%s$O(i=slb~i+Qse8itgqjQ51kjDWnyrt6|5?wKJQN!{dcT?=dZMKSyNJLdr!oT zY@``2?@{Pv=O@Kwhq9H3+`Pnoy+(_veu~!gWu^?xQWU9hOq?VkN3W&W8!l5Ik7Fsi zUB0v}JFeRjYp4rbtEI`@gShs}i?_m5PXF1C{QXcu;;HlB3b?uHk1pC9d?t$XVX@Eo zjwU|&h?D5!{dQBG zt-C;7`x}EcGnoW^J(`7X?sdZ1FK}R~gtY$@SHo5FJftjO^cfylO8Bu}os@?V2fU4r zhf_1p6<&gBA|^`l>g)~{hr8&%W{xxY)HdhLXV7heKN)t2N0Um|xNy_4AM#HZe*+k8 zFp|#$BB%{b7Ji$HeBxmd$I~jW3HGUh&g*8cWXzFzPWz9`(+q((KhXl?m-9CuksF|@ z#1v2+e*ROv{@7eNf0z00e0a`fy1E&LrQd$t|GI_=A(`7)Z6hwk8sBcqyGvI{`Vo>f%XR^Yi+cztPK5FnlA}!_kXm4Vb1EbzX#>b4hGIuR^z7#3@hp zR(`*JBD+$H>A$gjU++hT(b0kxm1`uAhn24?$kSqDZ|Z1I zKNJ!G+Cok-q!wEk+AeN-+}HMckKl1NBTPkw@`J}`PmIUP*5-U1InLu<>vw-`H^Yd8 zm{R~4@W60Ol&H?fBuj}(i*>e0l}md6I)mOY;?pQ;-~VIIihs+OUCD^MHY((Y63?@C zD|#6$|GidQ4x~duP3faZ`_em46a=^;z)gs%=9Efo)|4iOl|U!{J!^0cZ>+pF$X9TD zd9p$~41ioq#cu%I z>!#4HtLe%jEc1w^2f2M8(o&du^K?9Cv@%J94OnF?D5494y41@;?f!(*%S=R?BWYJD z_~rDS3kz>zX{M;N`=_<^l|S0ZOx<%9s}!m!%~3DQTMmkGfiLt(M1F!z$Kcht{^S6t z7D7M1i4l!hUcj4+cg-*@No@Q&^w9G-SV9eHE#=g|E07U`lO~8Rx@$AnCKm^kFn)7|V1?rHT>2*>v)|YowxR5XmC% z#{I1o`&T@PDa-F@%%u*3Hb?TNklzfjXyY)n9bd3%bJW?j0yG#;g5LkUwqWX zOBI{+J7i_QCRmc`j#Blkm2v0+P0B%`RcfnCxdDe&Ia<(TnS6|01M1s+yBB-ZX$q++ zECTM`wHt+Uo=o!Yc6pkfo)QT?pOR(kl$+3 z!sNXHci_J)Ekw81lAfcgwM4jM>^ThqaySzs)YVN)=NhyEHenE^cC1l=he8>@>Wa&z zbb0P1j|O2wZHB)&M810D*o8>pB~KzZ$*15usvYNB@L%OcEi~vCuxGJ7sc{2T?#<5G z=PhsAevgU0K^2R>~;bCDd)ly(U)c9ZS?+ersdh8wl$qlVx zNehP{1V=Z^)LnDY0;_7Z)#E3Es;w_bkg1oS;;?56h6pnIGDn~M| zTmT}gXO&QdG)>0#wD)VW1k1TfthCC2zQ*Pv@nB`DrC_3z-v4QN10bmW=9{*L(d4{X z00g#2XVaQn2`LnyJ{th23P<4VtmO%6n#Fr>K+_(e)2zmF zr|qvl*q3v5$P+fQ1#njXzQElNY*$vg$on(#Mo6w_`H z8Mk)ui+Bxy%p9Wo|B(pNd}xmYOE_`GgM65lOC10>R@f&=ZNB0niXZ#Zqor$J9j1CL zwCJ)A+x_6W&0OC?j@e*Qr-g(f#XPqq6*T*GE}ve_taJKfbNKeQA}h33jaGjHn~V=a zLbC7akxEXQZH*{#ZJ#h_xKWh`T0QN}rh6w~fzubf9vvA}5ZW&%tSA3wT?o!GKg^PY z%heH(waxXpC6*mI#jHMbaP0a7#=l<5*%1Ebw?Su5)GXf;m1ggikH)vv>(YDiwJ6^S z6LP*Q)~f&B^@_pvD8MFR0nB7|J^oi#xus1hSFdb2)c1%bKt?;+PlK0=JegTb5~HBN zN(GuomgY;K<%y&$kn+GCqEqX((3xL>9B~62`D*gKX9;h)Q=9LPXFOMqJE0igmu&(D z3Y+aq=NXnb(`SS+vUm@3)-OE9&~-91iYks=e2B>QPrdagFP(YvVPZcwE^6bddEKl@ z3VK+1Tn4~=9OGoCuCZGqh!+s647#h9vt=RNI>ZJUhFhf>G#bhK(QGdzA{jyB5Uc{EfA4-EOu(|2NSa69dYdsT9u$5(dzMqf>W@ zs3$f)B`71cRMFf`9d?n&qECPum_4|aIksA0PxqopQ|fvY>LR5Z90yWOJ@`N4D-d+r z6I~D=&|hHmP*#-w{Vziz8wP>4VJ`4f7!0DeJcvo&5)8TA^HHGADHn-B5M&) zr-ToznQW=9dtVc$Ba}ks*8{GZh6O-7_**&LIN|o#c7(Xu>d}cyF?hZ}uXFOgm=wpl za2NfD{86N7P*ChAL~%a;H!X<2e~{-(~KeE{CDP|?#Px|S!J?D>4FUd5#K_DV?;k~>Ggsf zxLNQ6%f{|g=7|D>pzVYr7AvAcPjJUwziaM_3Sp$#0Jy^UA>jv@SvaqsFU)9xNXq>& z<;j0-qLHw`CNJvxu=-;%g}p%eO_7RiM4n@Upnt-25&LDpERF%jdSSY_d0vS?QYQI? zzhQ|4e~9&LqrF{Ng6%=>;n2X;90p+hg7Ex_*;9aShJI*PfqsZ_{A^B;!c<{YRu2%@=^Mc zH+|^6Lb*Uc68;9D^?=DU(GM{L<`nu;PKi(dgi*}N7U3DHq2^*d9QP-W!tHGU8p+=n zPw_`H`c9&^(Y8A4O1#M}J>;GgZgWQYlR9Z~N>99q-V{NReZU`LimxRie%AhCfi5fj z+OIKGLd~KyHR_7W>^vpVoWS4V_fxcfO787<4v(3_17mDM{Uu zLfwT<-)pU>kXVAm4`3YYNprtd$0M0S(3fP8>zC@= zpMo((zz{}(rDA{#M{zZXEF=+<`0P#BnrZ#bd&)H&fHMi=3mjneOO_j9iT-ZbeSQ6 zY^Py;E8plJ4+eE4JarV17Rbk4vVR#?H1;FA0fDwz{-EA4fr!_T9ez+9?J!0ZG{!v& zff9iRf$$;Yy;|JrDm!GdjmVsjaP_f&Cjt&vo@ZkXRYRTqAtLQ59*mz!`QBlhRzP-y zkEQsTuS7Z1-lF^qZbbP8J;8cFHeHEBWd9iSgy-l%Es?o-kcgleIZSsUJeq<4P}~lW z0nxo6ILV2tC!b?jt5k`(r|E4NZvZ$CA7nQZ5Rx&IwwoB_7<$M&#tu4Fd1L69*!GDiBd$(9hx3;0{lL>y;>> zzEZqRkik78pO#`RL3jPYjpPKK{t<);zuN&m{EdI?;}4l6Wv(glFxBAKqyH7Nbl=;$y>NO>Aa1tdm9MnjJ&9KL-t9 zAMi5(#hr%4(;O}qwyQTn>Lu=}0Hg{S&VK`s0BqM;&*Go?F~vQB(`hcdaPMUg@3P}? z2Wd3Ef6b33y^gz3y&yRco$H9Ksh`s(8eIbI*^D4A@e-y#v#fT$!Cx@627++@-k29a z(J2MPAAbk0@k4IbK%UhFsnZ9BR{aQcR*ylcfPzWqASQ3kMT!QRD{X5-0Wfxppx7$I z@7aaKq~6tV++JBv9mPhGB}OyEMc zKQB6m&if+Uv|$uZ0*Du(0W0=U0qoxwntw6;APxWgyL+&{uNC+@YEoPFK4i!Nz&s}*y-qP?|@8|V->kR%Zop0~l5d^xx7#|4`9XG=wE@&C2Xvk`V!Z^@@# zmS$!D&ew~WT3vOVms=N~EXfUt5$Zio<0xC6ovZ)Qn!%om-P=4r(Nwi!7g}fYF?m>0 z)<{u$Zp^p_SfaZ125-v)#1^8(pTrkO`;LPIz}*UoiUrMgq;`&b1pKR(Sglv6+&*cm zPBkgfKhY&V+u$B|YPo?0F43CkL^P-JR$RQnf+De~djdX_`v)(}#r|;MK|CYkDc!Eo zMR^qBex`HXiGC+o^o%ZCn9AS#6d{r%c!LPV1VGj{l5tN|K^@@z19c zjt(9J+++wp7vzft+z7y$44`D0@K1nSx-U1MYjtgt?pTNf*7T!;&P*`ZBAyrs7 z`-i4V5S{zTfcAhDR#aETSw^uuNHxP0-U(JfB1rX&g*Im#-!xd&n$Lnet>pkw0eICG z@o&`PL~B1n_HRvmSFTDHeR{Bi{7BPr z+hQ}Pl!whH?c!M(O)Xp(*F`KiCG9Uq?FO(~Y{iG`5WA&uJj2~jSAfrsoz?G-`cpj$ zo$1~NoYhy38)X-i0&zo{A6Rag%c_rem0w^K9=3P?LGNANT+EH_({BYJ(b6xP!BMdO z36T8%(Ek4<+!_mnH0OWm2K+B(|DV{@f9np$tgZ#ko zCZQ;YptstBJihvXdraOJA082PCHZfYt;1-P4dty~;>9}(k&o54BnG@pjKzCscM$>{ zuI)OP;=7UTGUW65zPH+245_H~46H<4c{V0y$0A$7E{hW3ca*H}(8Zd75p)&+r3SYi>qwNmghp0y0DQQOclOPgP9odm}ar89E5fMC%$H2Cq;Utmi= zm*7fvLnpn7ohu9%@BG5Xwjv~`Vm$h;VLsWUw|4f*g%|d&3e%M_+msbxg{~6CO(vk8 zN{ap$hfv;FO=*S`9IK)G4hH2uod_lYp8V=+6U#N|Jg~FQ%CzXJh3HeJT!bUu>KSxO-jC)ZG~{wr z6B5?0pQBn$-Nm&%3YM&oe6U$XICcapVK(hF#UJax1GDGbvg`=9toaT8u21Sykz2W~ z=5Y?k$H6~|pP{sQhS%h0uA!x^7jw2S+H5@OA_(`e>hvuyNnV)&mVZstT{P+Gqe|j5 zhH^}QKyq7Wd_JVu>Pnz8_%$9fMWW+@bhEJ`RMi_>cv&0{e$*&0QyW{xmjS2js(!#1 zKMA&741P>_o);l_K1xyyptaG1+KF1qs%_U-G09}&#iEhTf&oC6)r#1p-&0K2du#AO zNkIq#Ra2rs0#2d;#JFKHZkm#YT@GT!9XCY<6Wc_Cuv56-^DTwVKER!m{I&E~&Q zyXY8{yyzzd@Se+~tMz%GxDRz|s?wUlNvimK+i#VghHOa4|JI*gg$A{lC z_c~rMNA>I^cVtKTzV~iPi?4kR)I#4bMvc@N{-yx~N*(R^ZLpW)f=c4>-rY*A>WH8> zXP&ArsbZl3*bV;B6Paxo#cKARhO$^2^DMKP$*WRbA#x*ZD@0;>J#+Go*L1H zt?IfH`Xput{+$%z5l>)r+znNA1L=j)Sbusph$Q0J*Ii(ea;=Xp)vAfcbYv%Q4dak( z%yWoRTB4zmu6nDYqhKQbl5)>^K=Zc1lMs&lS;XU=$3qB@s+~t{!Z*MfH&v(akFjYr zOU&m6*cjDeT@2Rku*HWgn6!y+e2I@g_~|FPBE0j@gB9ia^!lAKtbBbh>+7I>cI7!4 z#SU^sCP`ynidI5}gw0(=fTGq!W{P6Q{uoby*OF`DprqEI=-Y}}45{Hyi z8OJ1tcMx5x82^W>w~UITX}5;4fgk~b6Wrb1gFC_9-QBJ6;O?%$9YP51Zo%E%9fEz_ zxu54f=R0eDbobR&wWq4O*P6Pf_THBgZB?O7lc!1Pg{BEJta6xR%_Se5-g;Z@YdsS0 z%@_~Oxn1LaMO{~2MFY}lsMpnPlu}4cmN&&SB3vo~4}hpYnCqe$S@CJM5QpjkRpW0- zg?8e!b-jwwT!(tzpGLRs1gEq#%Z~*<ig;bZMLiYI~hNGS-Q9D#f6ibkA_L-myOM;R?HMVsmQYV++!noncvL3(e5Z=JSnw@{o?Dw zq(l=B+IuF4cu7_BI*U8ya!_(3BFZT1(8*4s#~c*J(JG`<4h@r}=8{UCYQyn7_>IIu zrc%sq6Mz+@4a9Mvd&JZi;#x~VPX2q22zy_lV36oZgL-b3X#*uAj$fsyDOm?ODMg~G z6KyhQpa&myQY3ixwP#swAMA*!eCx>--Gp7+Zt!7z{2`{B?c-YV6_=>0zKYX``dSr!M&ey z+t@Q0w!AN+QvIfE*Av7rp*sBngS$v4>W68SXKUVI)*9)r8)J$K6htxe1E=EYf<3DK zbP*A4igl9JS5a-&MZ#t_A5@R5VAAx;s10Qtt#Go3ve<$}vVP~ zKK%ym8toirFRfTw6Nkc^gEqr>_?=lW8C|qwv2tBA+U1~ZICqP00 zn>l$DpCmQz7$0wpF!%0HhyfwBppt7wxLvDVzYgEqokGLm?A6-CvUzm$>rgkQe_my6 zG6l>N*N?xUw5-NXx`1qDRdXDpA=++Dwf!n5ndkHHVtSl^<_|6CcizY{Id0apEV?io z7rcY~WMgBc?{YXa)z|D}J1v#@M<6Qhmv?h>*@%M5xt^*K`BLV)RW@=%GxSbAgZi@? z=rwLj0KG$P(hJ>Ps8&=^gRD#k%V?QC3RJ9KBN}2nOt~`K=pOiW*u>BzyE%b-%r5tfMcbrHDu?zv zc)DHs8J zQA%lA3|SlmMOK^XBU|N@c;HHb@VXfHR;M0cgK8?`lhCu$rx+OPKpzb2WuYa=E|6-o zFpQ@Nu zy{2$M!u%KHPhAM@oS0#G!c?Qj*gor_kQ=zAHt^Eg^yEbjcsl#XNz=AY4!UVwbOTsp z5m-;ZmI*Pr0OWmnXLKL*cVf5d<<>`UjNI?AGoDxws@+0(obHq=TG&UI2z)g^D!iwS z$_H{*v4`o8TMpa(FMx4dEwA#{Tw5z$r$#+V4V->z4w+MZaznd;ajMG2x;hu6m@2Q= z_ijeK6My1TV%8e#NSpGEBj(T=j20sXkr{ZL3JTBA~IKcp7Za)KBj|v@P9MJ|