mirror of
https://github.com/g-truc/glm.git
synced 2024-11-22 17:04:35 +00:00
Merge branch '0.9.0' into ext-tmpl
This commit is contained in:
commit
3d7539d2bb
@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html><head><title>OpenGL Mathematics : About</title><meta http-equiv="Content-Language" content="en" /><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" /><meta name="copyright" content="G-Truc Creation" /><link href="./common/style.css" rel="stylesheet" media="screen, print, embossed" type="text/css" /></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.zip/download">
|
||||
Download GLM 0.9.0.1</a></div></div><br /><div class="menu2"><a href="./index.html">News</a></div><div class="menu2"><a href="./about.html">About</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="./goodies.html">Goodies</a></div><br /><div class="menu2"><a href="./glm-manual.pdf">GLM Manual</a></div><div class="menu2"><a href="./html/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.00.8.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&Board=10&page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SF.net page</a></div><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math">Bug report</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">GIT HEAD snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.jpg" alt="G-Truc" /></a></div><div class="menu2"><a href="http://www.sourceforge.net"><img class="menu-img" src="./common/sourceforge.gif" alt="SourceForge" /></a></div><div class="menu2"><a href="http://www.opengl.org"><img class="menu-img" src="./common/opengl.jpg" alt="OpenGL" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM).<br />A C++ mathematics library for 3D graphics.<br /></div><br /><br /><div><div class="title-date"> </div><div class="title4"> </div><div><div class="paragraph">
|
||||
OpenGL Mathematics (GLM) is a C++ mathematics library for 3D software based on the OpenGL Shading Language (GLSL) specification.
|
||||
</div><br /><div class="paragraph">
|
||||
The goal of the project is to provide to 3D programmers math classes and functions that miss in C++ when we use to program with GLSL or any high level GPU language. With GLM, the idea is to have a library that works the same way that GLSL which imply a strict following of GLSL specification for the implementation.
|
||||
</div><br /><div class="paragraph">
|
||||
However, this project isn't limited by GLSL features. An extension system allows to extend GLSL capabilities. It allows GLM to be a great subtitute for some OpenGL 3 deprecated functions, to work following a clean programmable approach.
|
||||
</div><br /><div class="paragraph">
|
||||
GLM is release under <a href="./copying.txt">MIT license</a> and available for all version of GCC from version 3.4 and Visual Studio from version 8.0 as a platform independent library.
|
||||
</div><br /></div><div class="news-separator">_________________</div><br /></div><div class="email"><img src="./common/email.png" alt="email not available as text" /></div><div class="news-separator">_________________</div><br /><div class="title3">Copyright © 2005 - 2010 <a href="http://www.g-truc.net">G-Truc Creation</a></div></td></tr></table></body></html>
|
178
doc/code.html
178
doc/code.html
@ -1,178 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html><head><title>OpenGL Mathematics: Code</title><meta http-equiv="Content-Language" content="en" /><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" /><meta name="copyright" content="G-Truc Creation" /><link href="./common/style.css" rel="stylesheet" media="screen, print, embossed" type="text/css" /></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.zip/download">
|
||||
Download GLM 0.9.0.1</a></div></div><br /><div class="menu2"><a href="./index.html">News</a></div><div class="menu2"><a href="./about.html">About</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="./goodies.html">Goodies</a></div><br /><div class="menu2"><a href="./glm-manual.pdf">GLM Manual</a></div><div class="menu2"><a href="./html/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.00.8.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&Board=10&page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SF.net page</a></div><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math">Bug report</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">GIT HEAD snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.jpg" alt="G-Truc" /></a></div><div class="menu2"><a href="http://www.sourceforge.net"><img class="menu-img" src="./common/sourceforge.gif" alt="SourceForge" /></a></div><div class="menu2"><a href="http://www.opengl.org"><img class="menu-img" src="./common/opengl.jpg" alt="OpenGL" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM).<br />A C++ mathematics library for 3D graphics.<br /></div><br /><br /><span xmlns="http://www.w3.org/1999/xhtml" class="code-title">Compute a triangle normal:</span><ul xmlns="http://www.w3.org/1999/xhtml" class="code-list"><li class="code-line"><span class="code-line-content"><span class="keyword">#include </span><span class="string"><glm/glm.hpp></span></span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content"><span class="keyword">void </span> computeNormal(triangle & Triangle)
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
{
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">vec3 </span><span class="keyword">const </span> & a = Triangle.Position[0];
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">vec3 </span><span class="keyword">const </span> & b = Triangle.Position[1];
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">vec3 </span><span class="keyword">const </span> & c = Triangle.Position[2];
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
Triangle.Normal = glm::normalize(glm::cross(c - a, b - a));
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
}
|
||||
</span></li></ul><span xmlns="http://www.w3.org/1999/xhtml" class="code-title">Matrix transform:</span><ul xmlns="http://www.w3.org/1999/xhtml" class="code-list"><li class="code-line"><span class="code-line-content"><span class="comment">// glm::vec3, glm::vec4, glm::ivec4, glm::mat4</span></span></li><li class="code-line"><span class="code-line-content"><span class="keyword">#include </span><span class="string"><glm/glm.hpp> </span></span></li><li class="code-line"><span class="code-line-content"><span class="comment">// glm::perspective</span></span></li><li class="code-line"><span class="code-line-content"><span class="keyword">#include </span><span class="string"><glm/gtc/matrix_projection.hpp> </span></span></li><li class="code-line"><span class="code-line-content"><span class="comment">// glm::translate, glm::rotate, glm::scale</span></span></li><li class="code-line"><span class="code-line-content"><span class="keyword">#include </span><span class="string"><glm/gtc/matrix_transform.hpp> </span></span></li><li class="code-line"><span class="code-line-content"><span class="comment">// glm::value_ptr</span></span></li><li class="code-line"><span class="code-line-content"><span class="keyword">#include </span><span class="string"><glm/gtc/type_ptr.hpp> </span></span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content">
|
||||
{
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">mat4</span> Projection =
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.f);
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">mat4</span> ViewTranslate = glm::translate(
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
glm::<span class="userword">mat4</span>(1.0f),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
glm::<span class="userword">vec3</span>(0.0f, 0.0f, -Translate));
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">mat4</span> ViewRotateX = glm::rotate(
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
ViewTranslate,
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
Rotate.y, glm::<span class="userword">vec3</span>(-1.0f, 0.0f, 0.0f));
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">mat4</span> View = glm::rotate(
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
ViewRotateX,
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
Rotate.x, glm::<span class="userword">vec3</span>(0.0f, 1.0f, 0.0f));
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::mat4 Model = glm::scale(
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
glm::<span class="userword">mat4</span>(1.0f),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
glm::<span class="userword">vec3</span>(0.5f));
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">mat4</span> MVP = Projection * View * Model;
|
||||
</span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glUniformMatrix4fv(
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
LocationMVP, 1, GL_FALSE, glm::value_ptr(MVP));
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
}
|
||||
</span></li></ul><span xmlns="http://www.w3.org/1999/xhtml" class="code-title">Vector types:</span><ul xmlns="http://www.w3.org/1999/xhtml" class="code-list"><li class="code-line"><span class="code-line-content"><span class="keyword">#include </span><span class="string"><glm/glm.hpp></span></span></li><li class="code-line"><span class="code-line-content"><span class="keyword">#include </span><span class="string"><glm/gtx/type_precision.hpp></span></span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content">
|
||||
std::size_t <span class="keyword">const </span>VertexCount = 4;
|
||||
</span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content"><span class="comment">// Float quad geometry</span></span></li><li class="code-line"><span class="code-line-content">
|
||||
std::size_t <span class="keyword">const </span>PositionSizeF32 = VertexCount * <span class="keyword">sizeof</span>(glm::<span class="userword">vec2</span>);
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
glm::<span class="userword">vec2 </span><span class="keyword">const </span>PositionDataF32[VertexCount] =
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
{
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">vec2</span>(-1.0f,-1.0f),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">vec2</span>( 1.0f,-1.0f),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">vec2</span>( 1.0f, 1.0f),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">vec2</span>(-1.0f, 1.0f)
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
};
|
||||
</span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content"><span class="comment">// Half-float quad geometry</span></span></li><li class="code-line"><span class="code-line-content">
|
||||
std::size_t <span class="keyword">const </span>PositionSizeF16 = VertexCount * <span class="keyword">sizeof</span>(glm::<span class="userword">hvec2</span>);
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
glm::<span class="userword">hvec2 </span><span class="keyword">const </span>PositionDataF16[VertexCount] =
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
{
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">hvec2</span>(-1.0f, -1.0f),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">hvec2</span>( 1.0f, -1.0f),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">hvec2</span>( 1.0f, 1.0f),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">hvec2</span>(-1.0f, 1.0f)
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
};
|
||||
</span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content"><span class="comment">// 8 bits signed integer quad geometry</span></span></li><li class="code-line"><span class="code-line-content">
|
||||
std::size_t <span class="keyword">const </span>PositionSizeI8 = VertexCount * <span class="keyword">sizeof</span>(glm::<span class="userword">i8vec2</span>);
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
glm::<span class="userword">i8vec2 </span><span class="keyword">const </span> PositionDataI8[VertexCount] =
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
{
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">i8vec2</span>(-1,-1),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">i8vec2</span>( 1,-1),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">i8vec2</span>( 1, 1),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">i8vec2</span>(-1, 1)
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
};
|
||||
</span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content"><span class="comment">// 32 bits signed integer quad geometry</span></span></li><li class="code-line"><span class="code-line-content">
|
||||
std::size_t <span class="keyword">const </span>PositionSizeI32 = VertexCount * <span class="keyword">sizeof</span>(glm::<span class="userword">i32vec2</span>);
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
glm::<span class="userword">i32vec2 </span><span class="keyword">const </span>PositionDataI32[VertexCount] =
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
{
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">i32vec2 </span>(-1,-1),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">i32vec2 </span>( 1,-1),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">i32vec2 </span>( 1, 1),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">i32vec2 </span>(-1, 1)
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
};
|
||||
</span></li></ul><span xmlns="http://www.w3.org/1999/xhtml" class="code-title">Lighting:</span><ul xmlns="http://www.w3.org/1999/xhtml" class="code-list"><li class="code-line"><span class="code-line-content"><span class="keyword">#include </span><span class="string"><glm/glm.hpp></span></span></li><li class="code-line"><span class="code-line-content"><span class="keyword">#include </span><span class="string"><glm/gtx/random.hpp></span></span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content">
|
||||
glm::<span class="userword">vec3 </span> lighting
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
(
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
intersection<span class="keyword"> const </span>& Intersection,
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
material<span class="keyword"> const </span>& Material,
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
light<span class="keyword"> const </span>& Light,
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">vec3 </span>const & View
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
)
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
{
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">vec3 </span> Color = glm::<span class="userword">vec3</span>(0.0f);
|
||||
</span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
glm::<span class="userword">vec3 </span>LightVertor = glm::normalize(
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
Light.position() - Intersection.globalPosition() +
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:96px">
|
||||
glm::vecRand3(0.0f, Light.inaccuracy());
|
||||
</span></li><li class="code-line"><span class="code-line-content" /></li><li class="code-line"><span class="code-line-content" style="padding-left:32px"><span class="keyword">if</span>(!shadow(
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
Intersection.globalPosition(),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
Light.position(),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
LightVertor))
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:32px">
|
||||
{
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px"><span class="keyword">float</span> Diffuse = glm::dot(Intersection.normal(), LightVector);
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px" /></li><li class="code-line"><span class="code-line-content" style="padding-left:64px"><span class="keyword">if</span>(Diffuse <= 0.0f)
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:96px"><span class="keyword">return</span> Color;
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px"><span class="keyword">if</span>(Material.isDiffuse())
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:96px">
|
||||
Color += Light.color() * Material.diffuse() * Diffuse;
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px" /></li><li class="code-line"><span class="code-line-content" style="padding-left:64px"><span class="keyword">if</span>(Material.isSpecular())
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
{
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:96px">
|
||||
glm::<span class="userword">vec3 </span>Reflect = glm::reflect(
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:128px">
|
||||
glm::normalize(-LightVector),
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:128px">
|
||||
glm::normalize(Intersection.normal()));
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:96px"><span class="keyword">float</span> Dot = glm::dot(Reflect, View);
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:96px"><span class="keyword">float</span> Base = Dot > 0.0f ? Dot : 0.0f;
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:96px"><span class="keyword">float</span> Specular = glm::pow(Base, Material.exponent());
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:96px">
|
||||
Color += Material.specular() * Specular;
|
||||
</span></li><li class="code-line"><span class="code-line-content" style="padding-left:64px">
|
||||
}
|
||||
</span></li><li class="code-line"><span class="code-line-content">
|
||||
}
|
||||
</span></li></ul><div class="title3">Copyright © 2005 - 2010 <a href="http://www.g-truc.net">G-Truc Creation</a></div></td></tr></table></body></html>
|
@ -1,100 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html><head><title>OpenGL Mathematics : Downloads</title><meta http-equiv="Content-Language" content="en" /><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" /><meta name="copyright" content="G-Truc Creation" /><link href="./common/style.css" rel="stylesheet" media="screen, print, embossed" type="text/css" /></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.zip/download">
|
||||
Download GLM 0.9.0.1</a></div></div><br /><div class="menu2"><a href="./index.html">News</a></div><div class="menu2"><a href="./about.html">About</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="./goodies.html">Goodies</a></div><br /><div class="menu2"><a href="./glm-manual.pdf">GLM Manual</a></div><div class="menu2"><a href="./html/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.00.8.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&Board=10&page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SF.net page</a></div><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math">Bug report</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">GIT HEAD snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.jpg" alt="G-Truc" /></a></div><div class="menu2"><a href="http://www.sourceforge.net"><img class="menu-img" src="./common/sourceforge.gif" alt="SourceForge" /></a></div><div class="menu2"><a href="http://www.opengl.org"><img class="menu-img" src="./common/opengl.jpg" alt="OpenGL" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM).<br />A C++ mathematics library for 3D graphics.<br /></div><br /><br /><div><div class="title4">Current release</div></div><div class="issue-content">21/06/2010:
|
||||
<a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.zip/download">GLM 0.9.0.1</a>
|
||||
(714 KB)
|
||||
</div><div class="news-separator">_________________</div><br /><div><div class="title4">GLM - zip files</div><div class="issue-content">21/06/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.zip/download">GLM 0.9.0.1</a> (714 KB)
|
||||
</div><div class="issue-content">25/05/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.zip/download">GLM 0.9.0.0</a> (1.1 MB)
|
||||
</div><div class="issue-content">30/04/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.B.2/glm-0.9.B.2.zip/download">GLM 0.9.B.2</a> (1.1 MB)
|
||||
</div><div class="issue-content">03/04/2010: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.B.1/glm-0.9.B.1.zip/download">GLM 0.9.B.1</a> (964 KB)
|
||||
</div><div class="issue-content">20/02/2010: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.2/glm-0.9.A.2.zip/download">GLM 0.9.A.2</a> (1.3 KB)
|
||||
</div><div class="issue-content">09/02/2010: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.1/glm-0.9.A.1.zip/download">GLM 0.9.A.1</a> (952 KB)
|
||||
</div><div class="issue-content">25/01/2010: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.4/glm-0.8.4.4.zip/download">GLM 0.8.4.4</a> (1.1 MB)
|
||||
</div><div class="issue-content">14/11/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.3/glm-0.8.4.3.zip/download">GLM 0.8.4.3</a> (1.1 MB)
|
||||
</div><div class="issue-content">19/10/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.2/glm-0.8.4.2.zip/download">GLM 0.8.4.2</a> (1.1 MB)
|
||||
</div><div class="issue-content">03/10/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.1/glm-0.8.4.1.zip/download">GLM 0.8.4.1</a> (1.1 MB)
|
||||
</div><div class="issue-content">16/09/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.0/glm-0.8.4.0.zip/download">GLM 0.8.4.0</a> (1.1 MB)
|
||||
</div><div class="issue-content">11/08/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.5/glm-0.8.3.5.zip/download">GLM 0.8.3.5</a> (971 KB)
|
||||
</div><div class="issue-content">10/08/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.4/glm-0.8.3.4.zip/download">GLM 0.8.3.4</a> (971 KB)
|
||||
</div><div class="issue-content">25/06/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.3/glm-0.8.3.3.zip/download">GLM 0.8.3.3</a> (971 KB)
|
||||
</div><div class="issue-content">04/06/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.2/glm-0.8.3.2.zip/download">GLM 0.8.3.2</a> (971 KB)
|
||||
</div><div class="issue-content">21/05/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.1/glm-0.8.3.1.zip/download">GLM 0.8.3.1</a> (945 KB)
|
||||
</div><div class="issue-content">06/05/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.0/glm-0.8.3.0.zip/download">GLM 0.8.3.0</a> (896 KB)
|
||||
</div><div class="issue-content">01/04/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.3/glm-0.8.2.3.zip/download">GLM 0.8.2.3</a> (961 KB)
|
||||
</div><div class="issue-content">24/02/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.2/glm-0.8.2.2.zip/download">GLM 0.8.2.2</a> (961 KB)
|
||||
</div><div class="issue-content">13/02/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.1/glm-0.8.2.1.zip/download">GLM 0.8.2.1</a> (963 KB)
|
||||
</div><div class="issue-content">21/01/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.0/glm-0.8.2.0.zip/download">GLM 0.8.2.0</a> (963 KB)
|
||||
</div><div class="issue-content">30/10/2008: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.1.0/glm-0.8.1.0.zip/download">GLM 0.8.1.0</a> (938 KB)
|
||||
</div><div class="issue-content">23/10/2008: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.0.0/glm-0.8.0.0.zip/download">GLM 0.8.0.0</a> (936 KB)
|
||||
</div><div class="issue-content">08/08/2008: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.7.6.0/glm-0.7.6.0.zip/download">GLM 0.7.6.0</a> (907 KB)
|
||||
</div><div class="issue-content">05/07/2008: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.7.5.0/glm-0.7.5.0.zip/download">GLM 0.7.5.0</a> (852 KB)
|
||||
</div><div class="issue-content">06/01/2008: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.7.4.0/glm-0.7.4.0.zip/download">GLM 0.7.4.0</a> (859 KB)
|
||||
</div><div class="issue-content">05/24/2008: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.7.3.0/glm-0.7.3.0.zip/download">GLM 0.7.3.0</a> (1.8 MB)
|
||||
</div><div class="issue-content">04/27/2008: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.7.2.0/glm-0.7.2.0.zip/download">GLM 0.7.2.0</a> (1.8 MB)
|
||||
</div><div class="issue-content">03/24/2008: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.7.1.0/glm-0.7.1.0.zip/download">GLM 0.7.1.0</a> (1.8 MB)
|
||||
</div><div class="issue-content">03/22/2008: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.7.0.0/glm-0.7.0.0.zip/download">GLM 0.7.0.0</a> (1.8 MB)
|
||||
</div><div class="issue-content">12/10/2007: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.6.4.0/glm-0.6.4.0.zip/download">GLM 0.6.4.0</a> (1.8 MB)
|
||||
</div><div class="issue-content">11/05/2007: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.6.3.0/glm-0.6.3.0.zip/download">GLM 0.6.3.0</a> (1.8 MB)
|
||||
</div><div class="issue-content">10/08/2007: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.6.2.0/glm-0.6.2.0.zip/download">GLM 0.6.2.0</a> (1.8 MB)
|
||||
</div><div class="issue-content">10/07/2007: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.6.1.0/glm-0.6.1.0.zip/download">GLM 0.6.1.0</a> (1.8 MB)
|
||||
</div><div class="issue-content">09/16/2007: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.6.0.0/glm-0.6.0.0.zip/download">GLM 0.6.0.0</a> (1.8 MB)
|
||||
</div><div class="issue-content">02/19/2007: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.1.zip?download">GLM 0.5.1.0</a> (2.3 MB)
|
||||
</div><div class="issue-content">01/06/2007: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.0.zip?download">GLM 0.5.0.0</a> (2.4 MB)
|
||||
</div><div class="issue-content">05/22/2006: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.1.zip?download">GLM 0.4.1.0</a> (1.6 MB)
|
||||
</div><div class="issue-content">05/17/2006: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.0.zip?download">GLM 0.4.0.0</a> (905 KB)
|
||||
</div><div class="issue-content">04/22/2006: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.2.zip?download">GLM 0.3.2.0</a> (955 KB)
|
||||
</div><div class="issue-content">03/28/2006: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.1.zip?download">GLM 0.3.1.0</a> (963 KB)
|
||||
</div><div class="issue-content">02/19/2006: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.zip?download">GLM 0.3.0.0</a> (945 KB)
|
||||
</div><div class="issue-content">05/05/2005: <a href="http://prdownloads.sourceforge.net/glf/glm-0.2.zip?download">GLM 0.2.0.0</a> (194 KB)
|
||||
</div><div class="issue-content">02/21/2005: <a href="http://prdownloads.sourceforge.net/glf/glm-0.1-ur.zip?download">GLM 0.1.0.0</a> (29.2 KB)
|
||||
</div></div><div class="news-separator">_________________</div><br /><div><div class="title4">GLM - 7z files</div><div class="issue-content">21/06/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.7z/download">GLM 0.9.0.1</a> (556 KB)
|
||||
</div><div class="issue-content">25/05/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.7z/download">GLM 0.9.0.0</a> (526 KB)
|
||||
</div><div class="issue-content">30/04/2010: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.B.2/glm-0.9.B.2.7z/download">GLM 0.9.B.2</a> (555 KB)
|
||||
</div><div class="issue-content">03/04/2010: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.B.1/glm-0.9.B.1.7z/download">GLM 0.9.B.1</a> (414 KB)
|
||||
</div><div class="issue-content">20/02/2010: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.2/glm-0.9.A.2.7z/download">GLM 0.9.A.2</a> (726 KB)
|
||||
</div><div class="issue-content">09/02/2010: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.1/glm-0.9.A.1.7z/download">GLM 0.9.A.1</a> (391 KB)
|
||||
</div><div class="issue-content">25/01/2010: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.4/glm-0.8.4.4.7z/download">GLM 0.8.4.4</a> (479 KB)
|
||||
</div><div class="issue-content">14/11/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.3/glm-0.8.4.3.7z/download">GLM 0.8.4.3</a> (443 KB)
|
||||
</div><div class="issue-content">19/10/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.2/glm-0.8.4.2.7z/download">GLM 0.8.4.2</a> (443 KB)
|
||||
</div><div class="issue-content">03/10/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.1/glm-0.8.4.1.7z/download">GLM 0.8.4.1</a> (443 KB)
|
||||
</div><div class="issue-content">16/09/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.0/glm-0.8.4.0.7z/download">GLM 0.8.4.0</a> (439 KB)
|
||||
</div><div class="issue-content">11/08/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.5/glm-0.8.3.5.7z/download">GLM 0.8.3.5</a> (405 KB)
|
||||
</div><div class="issue-content">10/08/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.4/glm-0.8.3.4.7z/download">GLM 0.8.3.4</a> (405 KB)
|
||||
</div><div class="issue-content">25/06/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.3/glm-0.8.3.3.7z/download">GLM 0.8.3.3</a> (405 KB)
|
||||
</div><div class="issue-content">04/06/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.2/glm-0.8.3.2.7z/download">GLM 0.8.3.2</a> (405 KB)
|
||||
</div><div class="issue-content">21/05/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.1/glm-0.8.3.1.7z/download">GLM 0.8.3.1</a> (399 KB)
|
||||
</div><div class="issue-content">06/05/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.3.0/glm-0.8.3.0.7z/download">GLM 0.8.3.0</a> (359 KB)
|
||||
</div><div class="issue-content">01/04/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.3/glm-0.8.2.3.7z/download">GLM 0.8.2.3</a> (378 KB)
|
||||
</div><div class="issue-content">24/02/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.2/glm-0.8.2.2.7z/download">GLM 0.8.2.2</a> (378 KB)
|
||||
</div><div class="issue-content">13/02/2009: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.2.1/glm-0.8.2.1.7z/download">GLM 0.8.2.1</a> (381 KB)
|
||||
</div><div class="issue-content">21/01/2009: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.7z?download">GLM 0.8.2.0</a> (381 KB)
|
||||
</div><div class="issue-content">30/10/2008: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.1.7z?download">GLM 0.8.1.0</a> (372 KB)
|
||||
</div><div class="issue-content">23/10/2008: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0.7z?download">GLM 0.8.0.0</a> (370 KB)
|
||||
</div><div class="issue-content">08/08/2008: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.6.7z?download">GLM 0.7.6.0</a> (387 KB)
|
||||
</div><div class="issue-content">05/07/2008: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.5.7z?download">GLM 0.7.5.0</a> (366 KB)
|
||||
</div><div class="issue-content">06/01/2008: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.4.7z?download">GLM 0.7.4.0</a> (372 KB)
|
||||
</div><div class="issue-content">05/24/2008: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.3.7z?download">GLM 0.7.3.0</a> (657 KB)
|
||||
</div><div class="issue-content">04/27/2008: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.2.7z?download">GLM 0.7.2.0</a> (646 KB)
|
||||
</div><div class="issue-content">03/24/2008: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.1.7z?download">GLM 0.7.1.0</a> (635 KB)
|
||||
</div><div class="issue-content">03/22/2008: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.0.7z?download">GLM 0.7.0.0</a> (635 KB)
|
||||
</div><div class="issue-content">12/10/2007: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.4.7z?download">GLM 0.6.4.0</a> (612 KB)
|
||||
</div><div class="issue-content">11/05/2007: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.3.7z?download">GLM 0.6.3.0</a> (633 KB)
|
||||
</div><div class="issue-content">10/08/2007: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.2.7z?download">GLM 0.6.2.0</a> (645 KB)
|
||||
</div><div class="issue-content">10/07/2007: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.1.7z?download">GLM 0.6.1.0</a> (645 KB)
|
||||
</div><div class="issue-content">09/16/2007: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.0.7z?download">GLM 0.6.0.0</a> (646 KB)
|
||||
</div><div class="issue-content">02/19/2007: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.1.7z?download">GLM 0.5.1.0</a> (807 KB)
|
||||
</div><div class="issue-content">01/06/2007: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.0.7z?download">GLM 0.5.0.0</a> (862 KB)
|
||||
</div><div class="issue-content">05/22/2006: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.1.7z?download">GLM 0.4.1.0</a> (533 KB)
|
||||
</div><div class="issue-content">05/17/2006: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.0.7z?download">GLM 0.4.0.0</a> (262 KB)
|
||||
</div></div><div class="news-separator">_________________</div><br /><div><div class="title4">Raytrace</div><div class="issue-content">16-09-2007: <a href="http://prdownloads.sourceforge.net/glf/raytrace-v1.0.exe?download">Raytrace v1.0 (exe)</a> (766 KB)
|
||||
</div><div class="issue-content">16-09-2007: <a href="http://prdownloads.sourceforge.net/glf/raytrace-v1.0.zip?download">Raytrace v1.0 (zip)</a> (1.4 MB)
|
||||
</div><div class="issue-content">06-01-2007: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b3.0.exe?download">Raytrace b3.0 (exe)</a> (751 KB)
|
||||
</div><div class="issue-content">06-01-2007: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b3.0.zip?download">Raytrace b3.0 (zip)</a> (1.1 MB)
|
||||
</div><div class="issue-content">19-02-2006: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b2.0.exe?download">Raytrace b2.0 (exe)</a> (1.0 MB)
|
||||
</div><div class="issue-content">19-02-2006: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b2.0.zip?download">Raytrace b2.0 (zip)</a> (1.4 MB)
|
||||
</div><div class="issue-content">05-05-2005: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b1.0.zip?download">Raytrace b1.0 (zip)</a> (1.3 MB)
|
||||
</div><div class="issue-content">05-05-2005: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b1.0.7z?download">Raytrace b1.0 (7z )</a> (808 KB)
|
||||
</div></div><div class="news-separator">_________________</div><br /><div><div class="title4">Humus's Framework</div><div class="issue-content">22-10-2008: <a href="http://prdownloads.sourceforge.net/glf/AmbientApertureLighting.zip?download">AmbientApertureLighting (zip)</a> (2.38 MB)
|
||||
</div></div><div class="news-separator">_________________</div><br /><div><div class="title4">Philip Rideout's Catmull-Clark Subdivision</div><div class="issue-content">24-01-2007: <a href="http://prdownloads.sourceforge.net/glf/CatmullClark.zip?download">CatmullClark (zip)</a> (605 KB)
|
||||
</div></div><div class="news-separator">_________________</div><br /><div class="email"><img src="./common/email.png" alt="email not available as text" /></div><div class="news-separator">_________________</div><br /><div class="title3">Copyright © 2005 - 2010 <a href="http://www.g-truc.net">G-Truc Creation</a></div></td></tr></table></body></html>
|
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html><head><title>OpenGL Mathematics: Goodies</title><meta http-equiv="Content-Language" content="en" /><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" /><meta name="copyright" content="G-Truc Creation" /><link href="./common/style.css" rel="stylesheet" media="screen, print, embossed" type="text/css" /></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.zip/download">
|
||||
Download GLM 0.9.0.1</a></div></div><br /><div class="menu2"><a href="./index.html">News</a></div><div class="menu2"><a href="./about.html">About</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="./goodies.html">Goodies</a></div><br /><div class="menu2"><a href="./glm-manual.pdf">GLM Manual</a></div><div class="menu2"><a href="./html/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.00.8.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&Board=10&page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SF.net page</a></div><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math">Bug report</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">GIT HEAD snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.jpg" alt="G-Truc" /></a></div><div class="menu2"><a href="http://www.sourceforge.net"><img class="menu-img" src="./common/sourceforge.gif" alt="SourceForge" /></a></div><div class="menu2"><a href="http://www.opengl.org"><img class="menu-img" src="./common/opengl.jpg" alt="OpenGL" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM).<br />A C++ mathematics library for 3D graphics.<br /></div><br /><br /><div><div class="title-date">16/10/2008</div><div class="title4">GLM Logo</div><div><table style="width:100%;"><tr style="width:100%;"><td><div class="paragraph" /><br />Download: <a href="./goodies/logo2560x1600.png">2560x1600</a><br />Download: <a href="./goodies/logo1920x1200.png">1920x1200</a><br />Download: <a href="./goodies/logo1600x1000.png">1600x1000</a><br />Download: <a href="./goodies/logo1280x0800.png">1280x0800</a><br />Download: <a href="./goodies/logo1024x0640.png">1024x0640</a><br /></td><td style="text-align:right;"><a ref="goodies/logo.png"><img src="image/logo-mini.png" alt=" " /></a></td></tr></table></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">16/10/2008</div><div class="title4">GLM Font</div><div><table style="width:100%;"><tr style="width:100%;"><td><div class="paragraph" /><br />Download: <a href="./goodies/tenby-five.otf">Font (.otf)</a><br /></td><td style="text-align:right;"><a ref="goodies/font.png"><img src="image/font-mini.png" alt=" " /></a></td></tr></table></div><div class="news-separator">_________________</div><br /></div><div class="email"><img src="./common/email.png" alt="email not available as text" /></div><div class="news-separator">_________________</div><br /><div class="title3">Copyright © 2005 - 2010 <a href="http://www.g-truc.net">G-Truc Creation</a></div></td></tr></table></body></html>
|
202
doc/index.html
202
doc/index.html
@ -1,202 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html><head><title>OpenGL Mathematics: News</title><meta http-equiv="Content-Language" content="en" /><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" /><meta name="copyright" content="G-Truc Creation" /><link href="./common/style.css" rel="stylesheet" media="screen, print, embossed" type="text/css" /></head><body><table><tr><td class="menu"><div class="menu1"><br /><div><a href="./goodies/logo1920x1200.png"><img class="menu-img" src="./common/logo.png" alt="GLM Logo" /></a></div><br /><div><a class="menu" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.zip/download">
|
||||
Download GLM 0.9.0.1</a></div></div><br /><div class="menu2"><a href="./index.html">News</a></div><div class="menu2"><a href="./about.html">About</a></div><div class="menu2"><a href="./download.html">Downloads</a></div><div class="menu2"><a href="./goodies.html">Goodies</a></div><br /><div class="menu2"><a href="./glm-manual.pdf">GLM Manual</a></div><div class="menu2"><a href="./html/index.html">GLM API</a></div><div class="menu2"><a href="./code.html">Code samples</a></div><div class="menu2"><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.00.8.clean.pdf">GLSL Specification</a></div><div class="menu2"><a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&Board=10&page=1">OpenGL.org Toolkits forum</a></div><br /><div class="menu2"><a href="https://sourceforge.net/projects/ogl-math/">SF.net page</a></div><div class="menu2"><a href="https://sourceforge.net/apps/trac/ogl-math">Bug report</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=summary">Browse Git repository</a></div><div class="menu2"><a href="http://ogl-math.git.sourceforge.net/git/gitweb.cgi?p=ogl-math/ogl-math;a=snapshot;h=HEAD;sf=tgz">GIT HEAD snapshot</a></div><br /><br /><div class="menu2"><a href="http://www.g-truc.net"><img class="menu-img" src="./common/g-truc.jpg" alt="G-Truc" /></a></div><div class="menu2"><a href="http://www.sourceforge.net"><img class="menu-img" src="./common/sourceforge.gif" alt="SourceForge" /></a></div><div class="menu2"><a href="http://www.opengl.org"><img class="menu-img" src="./common/opengl.jpg" alt="OpenGL" /></a></div><br /></td><td class="page"><div class="title1"><img src="./common/title.png" alt="OpenGL Mathematics" /></div><div class="title3">GLSL + Optional features = OpenGL Mathematics (GLM).<br />A C++ mathematics library for 3D graphics.<br /></div><br /><br /><div><div class="title-date">21/06/2010</div><div class="title4">GLM 0.9.0.1 released</div><div><div class="paragraph">
|
||||
This revision only fixes few extensions bugs.
|
||||
</div><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.zip/download">GLM 0.9.0.1 (zip, 714 KB)</a><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.7z/download">GLM 0.9.0.1 (7z, 556 KB)</a><br />Link: <a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">25/05/2010</div><div class="title4">GLM 0.9.0.0 released</div><div><div class="paragraph">
|
||||
GLM 0.9.0.0 is finally available! It brings various API changes from GLM 0.8.4.X branch which makes it not backward compatible.
|
||||
GLM is now compatible with Objective C++ to be used for MacOS X and iPhone projects.
|
||||
</div><br /><div class="paragraph">
|
||||
To continue making GLM a better library, 2 mailing lists have been created for users and developers.
|
||||
</div><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.zip/download">GLM 0.9.0.0 (zip, 1.0 MB)</a><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.7z/download">GLM 0.9.0.0 (7z, 514 KB)</a><br />Mailing list: <a href="https://lists.sourceforge.net/lists/listinfo/ogl-math-users">Register to GLM mailing list for users</a><br />Mailing list: <a href="https://lists.sourceforge.net/lists/listinfo/ogl-math-devel">Register to GLM mailing list for developers</a><br />Link: <a href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">30/04/2010</div><div class="title4">GLM 0.9 Beta 2 released</div><div><div class="paragraph">
|
||||
GLM 0.9 Beta 2 is available and should be the last development release of GLM 0.9.
|
||||
</div><br /><div class="paragraph">
|
||||
The code has been moved from a SVN to Git repository which branching efficiency allowed to remove all the experimental code from this release.
|
||||
</div><br /><div class="paragraph">
|
||||
Various bug fixes and manual updates have been done too.
|
||||
</div><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.B.2/glm-0.9.B.2.zip/download">GLM 0.9.B.2 (zip, 1.07 MB)</a><br />Download: <a href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.B.2/glm-0.9.B.2.7z/download">GLM 0.9.B.2 (7z, 555 KB)</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">03/04/2010</div><div class="title4">GLM 0.9 Beta 1 released</div><div><div class="paragraph">
|
||||
A new development version of GLM 0.9 is available.
|
||||
</div><br /><div class="paragraph">
|
||||
This version is based on GLSL 4.0 and supports the new common and integer functions.
|
||||
Also a long and frequently asked feature has been implemented: inplicit conversions.
|
||||
However, the rules defining implicit conversions by GLSL 4.0 are quite weaked and can't really be apply in C++.
|
||||
</div><br /><div class="paragraph">
|
||||
Reaching the beta status, this new features close the feature list of GLM 0.9.
|
||||
Further development releases may happen before the final release.
|
||||
</div><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.B.1/glm-0.9.B.1.zip/download">GLM 0.9.B.1 (zip, 964 KB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.B.1/glm-0.9.B.1.7z/download">GLM 0.9.B.1 (7z, 414 KB)</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">20/02/2010</div><div class="title4">GLM 0.9 Alpha 2 released</div><div><div class="paragraph">
|
||||
This update fixes some problem of Alpha 1 but also brings some improvements in case of errors when using GLM to provide more relevant messages.
|
||||
</div><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.2/glm-0.9.A.2.zip/download">GLM 0.9.A.2 (zip, 1.3 MB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.2/glm-0.9.A.2.7z/download">GLM 0.9.A.2 (7z, 726 KB)</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">09/02/2010</div><div class="title4">GLM 0.9 Alpha 1 released</div><div><div class="paragraph">
|
||||
First step until a major release for GLM with this first alpha of GLM 0.9.
|
||||
</div><br /><div class="paragraph">
|
||||
This version brings a large internal redesign to improve the library reliability and optimized some parts.
|
||||
It removed the deprecated features and API which implies that GLM 0.9 isn't backward compatible.
|
||||
</div><br /><div class="paragraph">
|
||||
For most users the build issues when upgrading to GLM 0.9 should be reduced especially if they follow the deprecation policy.
|
||||
</div><br /><div class="paragraph">
|
||||
This release is still UNSTABLE and not recommanded for commertial products.
|
||||
</div><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.1/glm-0.9.A.1.zip/download">GLM 0.9.A.1 (zip, 950 KB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.9.A.1/glm-0.9.A.1.7z/download">GLM 0.9.A.1 (7z, 391 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">25/01/2010</div><div class="title4">GLM 0.8.4.4 released</div><div><div class="paragraph">
|
||||
This update just removes some warnings
|
||||
</div><br /><div class="paragraph">
|
||||
By the way, if you have questions about GLM, a good place for those is the <a href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=postlist&Board=10&page=1">OpenGL.org Toolkits forum</a>.
|
||||
</div><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.4/glm-0.8.4.4.zip/download">GLM 0.8.4.4 (zip, 1.1 MB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.4/glm-0.8.4.4.7z/download">GLM 0.8.4.4 (7z, 479 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">16/11/2009</div><div class="title4">GLM 0.8.4.3 released</div><div><div class="paragraph">
|
||||
This version fixed half scalars and half vectors arithmetics.
|
||||
This is a really slow practice that should be avoid.
|
||||
Half floating point value should be use only to store GPU data.
|
||||
GPUs have native support for half values, not x86 CPUs.
|
||||
</div><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.3/glm-0.8.4.3.zip/download">GLM 0.8.4.3 (zip, 1.1 MB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.3/glm-0.8.4.3.7z/download">GLM 0.8.4.3 (7z, 463 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">19/10/2009</div><div class="title4">GLM 0.8.4.2 released</div><div><div class="paragraph">
|
||||
This version is a really minor updates, fixing single issue with half float types.
|
||||
</div><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.2/glm-0.8.4.2.zip/download">GLM 0.8.4.2 (zip, 1.1 MB)</a><br />Download: <a href="https://sourceforge.net/projects/glf/files/glm/glm-0.8.4.2/glm-0.8.4.2.7z/download">GLM 0.8.4.2 (7z, 443 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">05/10/2009</div><div class="title4">GLM 0.8.4.1 released</div><div><div class="paragraph">
|
||||
This version fixes few bugs and provides an major update of the manual thanks to Damian Trebilco.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.1.zip?download">GLM 0.8.4.1 (zip, 1.1 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.1.7z?download">GLM 0.8.4.1 (7z, 443 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">16/09/2009</div><div class="title4">GLM 0.8.4.0 released</div><div><div class="paragraph">
|
||||
This new version mainly adds support for Visual Studio 2010 and GCC 4.4. It also provides various code optimization, bug fixes and an extension.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.0.zip?download">GLM 0.8.4.0 (zip, 1.1 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.4.0.7z?download">GLM 0.8.4.0 (7z, 439 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">11/08/2009</div><div class="title4">GLM 0.8.3.5 released</div><div><div class="paragraph">
|
||||
Fixed extension bugs introduced by core update.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.5.zip?download">GLM 0.8.3.5 (zip, 971 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.5.7z?download">GLM 0.8.3.5 (7z, 405 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">10/08/2009</div><div class="title4">GLM 0.8.3.4 released</div><div><div class="paragraph">
|
||||
Fixed varius bugs. Move determinant fonction to core following GLSL 1.5 specification.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.4.zip?download">GLM 0.8.3.4 (zip, 971 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.4.7z?download">GLM 0.8.3.4 (7z, 405 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">25/06/2009</div><div class="title4">GLM 0.8.3.3 released</div><div><div class="paragraph">
|
||||
Fixed varius bugs.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.3.zip?download">GLM 0.8.3.3 (zip, 971 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.3.7z?download">GLM 0.8.3.3 (7z, 405 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">04/06/2009</div><div class="title4">GLM 0.8.3.2 released</div><div><div class="paragraph">
|
||||
Add GLM_GTC_quaternion and GLM_GTC_type_precision extensions both subset of GLM_GTX_quaternion and GLM_GTX_number_precision
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.2.zip?download">GLM 0.8.3.2 (zip, 971 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.2.7z?download">GLM 0.8.3.2 (7z, 405 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">21/05/2009</div><div class="title4">GLM 0.8.3.1 released</div><div><div class="paragraph">
|
||||
The old way to use extensions have been fixed and GLM_GTX_bit extension gets updated with more functions to manipulate bit fields.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.1.zip?download">GLM 0.8.3.1 (zip, 954 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.1.7z?download">GLM 0.8.3.1 (7z, 402 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">06/05/2009</div><div class="title4">GLM 0.8.3.0 released</div><div><div class="paragraph">
|
||||
This version brings to main changed: Stable extensions and a new extension system.
|
||||
</div><br /><div class="paragraph">
|
||||
The first stable GLM extensions are: GLM_GTC_double_float and GLM_GTC_half_float for higher and lower vectors and matrices floating point precision. GLM_GTC_matrix_operation provides determinant and inverse matrix calculation. GLM_GTC_matrix_transform allows to build scale, rotate and translate matrices and GLM_GTC_matrix_projection provides varius functions to build projection matrices. Few stable extensions yet but the number is going to grow with the next release!
|
||||
</div><br /><div class="paragraph">
|
||||
Both GLM 0.8.2.x extensions use method are deprecated (but still working) and replace by a new one. If you wnat to use GLM_GTC_half_float just include "glm/gtc/half_float.hpp" and it is going to be included in GLM namespace.
|
||||
</div><br /><div class="paragraph">
|
||||
Finally, quite some file have been renamed, using "hpp" instead of ".h". Old file have been deprecated but are still available so that GLM 0.8.3.0 is fully compatible with GLM 0.8.2.x.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.0.zip?download">GLM 0.8.3.0 (zip, 896 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.3.0.7z?download">GLM 0.8.3.0 (7z, 359 KB)</a><br />Link: <a href="./code.html">Code samples page</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">01/04/2009</div><div class="title4">GLM 0.8.2.3 released</div><div>Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.3.zip?download">GLM 0.8.2.3 (zip, 963 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.3.7z?download">GLM 0.8.2.3 (7z, 381 KB)</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">13/02/2009</div><div class="title4">GLM 0.8.2.1 released</div><div><div class="paragraph">
|
||||
A new release is available and inogurate a patch number. The goal of this patch number is to release faster fixes from bug reports.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.1.zip?download">GLM 0.8.2.1 (zip, 963 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.1.7z?download">GLM 0.8.2.1 (7z, 381 KB)</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">21/01/2009</div><div class="title4">GLM 0.8.2 released</div><div><div class="paragraph">
|
||||
This release only fixes bugs. Left sided swizzle operators, quaternion operators, vectors access operators for the main onces.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.zip?download">GLM 0.8.2 (zip, 963 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.2.7z?download">GLM 0.8.2 (7z, 381 KB)</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">19/11/2008</div><div class="title4">GLM current developments</div><div><div class="paragraph">
|
||||
Some artifacts have been added to the tracker to give a picture of what you could expect for the next releases.
|
||||
</div><br /><div class="paragraph">
|
||||
If you need something else you can add some artifacts to the tracker. Any comment on added entries is welcome.
|
||||
</div><br /><div class="paragraph">
|
||||
Furthermore, no more release of GLM 0.7.x will be done. Please upgrade to GLM 0.8.1.
|
||||
</div><br /><div class="paragraph">
|
||||
Finally, a pack of programmable oriented OpenGL samples using GLM is under development and planed to be release in December.
|
||||
</div><br />Link: <a href="https://sourceforge.net/tracker2/?group_id=129808&atid=1126032">Tracker</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">30/10/2008</div><div class="title4">GLM 0.8.1 released</div><div><div class="paragraph">
|
||||
GLM 0.8.1 is released. This new version mainly fixes 64 bit integers with GCC and various bugs.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.1.zip?download">GLM 0.8.1 (zip, 938 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.1.7z?download">GLM 0.8.1 (7z, 372 KB)</a><br />Link: <a href="./glm-manual.pdf">GLM 0.8.1 Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">23/10/2008</div><div class="title4">GLM 0.8.0 final released</div><div><div class="paragraph">
|
||||
GLM 0.8.0 is released. This new version is now based on GLSL 1.30 specification which provided new functions and precision qualifiers.
|
||||
</div><br /><div class="paragraph">
|
||||
Beyond this, lot of changes have been done to make GLM easier to use, easier to develop, more reliable, more conform to C++ ISO98 standard and GLSL specifications.
|
||||
</div><br /><div class="paragraph">
|
||||
It involves that GLM 0.8.x is not backward compatible with GLM 0.7.x... However, an application port from GLM 0.7.x to GLM 0.8.x isn't a huge work and actually for some, it won’t be work at all.
|
||||
</div><br /><div class="paragraph">
|
||||
On GLM core side, based on GLSL features, vector types can't be automatically cast to pointer anymore for code safety purposes. Vector constructors require a single scalar parameter of the exact number of components.
|
||||
</div><br /><div class="paragraph">
|
||||
On GLM extension side, the mechanism to use them has changed. The old [__]***GTX way doesn't exist anymore. Have a look on the manual for more information.
|
||||
</div><br /><div class="paragraph">
|
||||
Have a look on the manual and the changelog for more information. Don't forget to send your <a href="./about.html">feedback</a> and enjoy!
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0.zip?download">GLM 0.8.0 (zip, 936 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0.7z?download">GLM 0.8.0 (7z, 370 KB)</a><br />Link: <a href="./glm-manual.pdf">GLM 0.8.0 Manual</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1682.0.html">Post a comment</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">22/10/2008</div><div class="title4">A Humus demo to feature GLM 0.8.0</div><div><div class="paragraph">
|
||||
Ambient aperture lighting <a href="http://www.humus.name">Humus</a> demo have been updated to use GLM as math library.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/AmbientApertureLighting.zip?download">Updated demo + all sources (zip, 2.38 MB)</a><br />Download: <a href="http://www.humus.name/3D/AmbientApertureLighting.zip">Original demo (zip, 1.40 MB)</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1681.0.html">Post a comment</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">18/10/2008</div><div class="title4">Webside updated</div><div><div class="paragraph">
|
||||
As you can see the website get a little update to prepare GLM 0.8.0 final release.
|
||||
</div><br /><div class="paragraph">
|
||||
GLM 0.8.0 final should be release during the week.
|
||||
</div><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">10/10/2008</div><div class="title4">GLM 0.8.0 beta 3 released</div><div><div class="paragraph">
|
||||
This release fixes some bugs and add few features though extensions. The development is now based on <a href="http://www.cmake.org">CMake</a> to make easier cross platform tests and project management.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta3.zip?download">GLM 0.8.0 Beta 3 (zip, 819 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta3.7z?download">GLM 0.8.0 Beta 3 (7z, 345 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1639.0.html">Post a comment</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">04/10/2008</div><div class="title4">GLM 0.8.0 beta 2 released</div><div><div class="paragraph">
|
||||
This release mainly improves half float vectors support. By default the low precission vectors are based on float numbers not on half numbers
|
||||
</div><br /><div class="paragraph">
|
||||
It also provides new setup options. GLM_USE_ONLY_XYZW to disable multiple names to access to a single vector component. GLM_USE_ANONYMOUS_UNION to allow multiple component names on half vectors with Visual C++.
|
||||
</div><br /><div class="paragraph">
|
||||
Various bugs and updates of extensions have been done too. Final release is coming...
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta2.zip?download">GLM 0.8.0 Beta 2 (zip, 798 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta2.7z?download">GLM 0.8.0 Beta 2 (7z, 327 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1639.0.html">Post a comment</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">26/09/2008</div><div class="title4">GLM 0.8.0 beta 1 released</div><div><div class="paragraph">
|
||||
GLM have been updated to support GLSL 1.30. API documentation had significant improvements to make easier finding of GLSL functions and types.
|
||||
</div><br /><div class="paragraph">
|
||||
GLM 0.8.x is NOT backward compatible with GLM 0.7.x. Upgrade to GLM 0.8.x could involve build errors for the following cases: A lot of improvements have been made to increase the conformance with GLSL specification. Lot of GLSL 1.30 features were already exposed in extensions that have been deleted. The extension syntaxe based on ARB convension is no long used.
|
||||
</div><br /><div class="paragraph">
|
||||
Due to the number of changes GLM 0.8.0 is release as beta first. The final release is schedule for october.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta1.zip?download">GLM 0.8.0 Beta 1 (zip, 786 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.8.0-beta1.7z?download">GLM 0.8.0 Beta 1 (7z, 321 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="http://www.ozone3d.net/smf/index.php/topic,1639.0.html">Post a comment</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">08/08/2008</div><div class="title4">GLM 0.7.6 released</div><div><div class="paragraph">
|
||||
GLM 0.7.6 provides a better C++ conformance so that you can build GLM with –pedantic G++ parameter or without Visual Studio extensions. To make GLM more reliable, BOOST_STATIC_ASSERT are used according developer wishes.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.6.zip?download">GLM 0.7.6 (zip, 907 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.6.7z?download">GLM 0.7.6 (7z, 387 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">05/07/2008</div><div class="title4">GLM 0.7.5 released</div><div><div class="paragraph">
|
||||
GLM 0.7.5 is available and introduces a new build messsage system to get information of GLM build configuration with Visual Studio. This mechanism is documented in section 6 of GLM manual. Also, GLM can be built with GCC pedantic options.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.5.zip?download">GLM 0.7.5 (zip, 852 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.5.7z?download">GLM 0.7.5 (7z, 366 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">01/06/2008</div><div class="title4">GLM 0.7.4 released</div><div><div class="paragraph">
|
||||
GLM 0.7.4 introduces a new system to manage external dependencies.
|
||||
</div><br /><div class="paragraph">
|
||||
It allows developing extension using external dependencies like GLEW, Boost, etc. without making required those dependencies for GLM programmer that doesn't need those external dependent extensions.
|
||||
</div><br /><div class="paragraph">
|
||||
The mechanism is described into the updated manual.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.4.zip?download">GLM 0.7.4 (zip, 859 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.4.7z?download">GLM 0.7.4 (7z, 372 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br />Link: <a href="./glm-manual.pdf">Manual</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">24/05/2008</div><div class="title4">GLM 0.7.3 released</div><div><div class="paragraph">
|
||||
GLM 0.7.3 is released. This version fixes few bugs and add few extensions
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.3.zip?download">GLM 0.7.3 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.3.7z?download">GLM 0.7.3 (7z, 635 KB)</a><br />Link: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">27/04/2008</div><div class="title4">GLM 0.7.2 released</div><div><div class="paragraph">
|
||||
GLM 0.7.2 is released. The documentation have been completed again and several issues handle with precompiler options.
|
||||
</div><br /><div class="paragraph">
|
||||
#define GLM_SWIZZLE GLM_SWIZZLE_FUNC allows to use swizzle operators with internal functions. For example, glm::vec3(1, 2, 3).zyx is replaced by glm::vec3(1, 2, 3)._zyx() with this option.
|
||||
</div><br /><div class="paragraph">
|
||||
#define GLM_FORCE_NO_HALF allows to include all extensions (#include "glm/glmext.h") without any support of half-precision floating-point numbers.
|
||||
</div><br /><div class="paragraph">
|
||||
#define GLM_AUTO_CAST GLM_DISABLE allows to disable automatic cast (eg: glLoadMatrixf(glm::mat4(1.0))) which could involve unfortunate issues in some cases.
|
||||
</div><br /><div class="paragraph">
|
||||
More information on these topic are available in GLM manual section 5 "Known issues".
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.2.zip?download">GLM 0.7.2 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.2.7z?download">GLM 0.7.2 (7z, 635 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">24/03/2008</div><div class="title4">GLM 0.7.1 released</div><div><div class="paragraph">
|
||||
GLM 0.7.1 is available under MIT license. It fixes bugs with GCC.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.1.zip?download">GLM 0.7.1 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.1.7z?download">GLM 0.7.1 (7z, 635 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">22/03/2008</div><div class="title4">GLM 0.7.0 released</div><div><div class="paragraph">
|
||||
GLM 0.7.0 is available under MIT license. LGPL lisence have been discard due to an issue of use for console development. This release contains a lot better documentation based on Doxygen. Lot of bugs have been fixed and the documentation completed. Thanks to all people that has contributed thought bug reports and ideas to make this version a lot better!
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.0.zip?download">GLM 0.7.0 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.7.0.7z?download">GLM 0.7.0 (7z, 635 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">10/12/2007</div><div class="title4">GLM 0.6.4 released</div><div><div class="paragraph">
|
||||
GLM 0.6.4 is available and fixes some swizzle operator issues.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.4.zip?download">GLM 0.6.4 (zip, 1.7 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.4.7z?download">GLM 0.6.4 (7z, 612 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">05/11/2007</div><div class="title4">GLM 0.6.3 released</div><div><div class="paragraph">
|
||||
GLM 0.6.3 fixes accesses of matrices and a 3DSMax SDK conflict.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.3.zip?download">GLM 0.6.3 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.3.7z?download">GLM 0.6.3 (7z, 633 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">08/10/2007</div><div class="title4">GLM 0.6.2 released</div><div><div class="paragraph">
|
||||
GLM 0.6.2 fixes an error on an extension.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.2.zip?download">GLM 0.6.2 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.2.7z?download">GLM 0.6.2 (7z, 632 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">07/10/2007</div><div class="title4">GLM 0.6.1 released</div><div><div class="paragraph">
|
||||
GLM 0.6.1 is a minor update that fix an issue on extension namespace and add two more extensions.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.1.zip?download">GLM 0.6.1 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.1.7z?download">GLM 0.6.1 (7z, 632 KB)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">16/09/2007</div><div class="title4">GLM 0.6.0 released</div><div><div class="paragraph">
|
||||
GLM 0.6.0 is available. For this release, work focus on extensions. A new mecanisum allows to integrate GLM extensions as it is actually done for GLSL extension by vendors. Lot of new extensions have been added.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.0.zip?download">GLM 0.6.0 (zip, 1.8 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.6.0.7z?download">GLM 0.6.0 (7z, 666 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-v1.0.exe?download">Raytracer v1.0 (exe)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-v1.0.zip?download">Raytracer v1.0 (zip)</a><br />Download: <a href="./changelog.html">Full changelog</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">19/02/2007</div><div class="title4">GLM 0.5.1 released</div><div><div class="paragraph">
|
||||
This release fixes some issues with swizzle operators.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.1.zip?download">GLM 0.5.1 (zip, 2.3 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.1.7z?download">GLM 0.5.1 (7z, 789 KB)</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">26/01/2007</div><div class="title4">Cattmull Clark subdivision sample</div><div><div class="paragraph">
|
||||
A new sample is available. It's an update of Philip Rideout's Catmull Clark subdivision program that uses GLM. Released with pleasant permission of <a href="http://prideout.net">Philip Rideout</a>.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/CatmullClark.zip?download">CatmullClark sample (zip, 605 KB)</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">06/01/2007</div><div class="title4">GLM 0.5.0 released</div><div><div class="paragraph">
|
||||
This release include GLSL 1.2 new feature in the core implementation. Also, it includes swizzle read and write operators and a custom options system to setup GLM.
|
||||
</div><br /><div class="paragraph">
|
||||
It includes some new extensions to extend GLSL features but they remain experimental. The next release should provide the first stable extensions.
|
||||
</div><br /><div class="paragraph">
|
||||
The GLM 0.5.0 packages contain some basic samples and some documentation. The ray tracer sample has been updated to GLM 0.5.0. Except for specific cases, especially with extensions, GLM 0.5 is backward compatible.
|
||||
</div><br /><div class="paragraph">
|
||||
Now, GLM development is taking advantages of <a href="http://www.sf.net">SourceForge.net</a> services: a <a href="https://sourceforge.net/tracker/?group_id=129808&atid=901445">bug tracker system</a> and the development source code is publicly available on <a href="https://svn.sourceforge.net/svnroot/glf">SF.net SVN server</a>.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.0.zip?download">GLM 0.5.0 (zip, 2.4 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.5.0.7z?download">GLM 0.5.0 (7z, 843 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b3.0.exe?download">Raytracer b3.0 (exe, 751 KB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b3.0.zip?download">Raytracer b3.0 (zip, 1.1 MB)</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">22/05/2006</div><div class="title4">GLM 0.4.1 released</div><div><div class="paragraph">
|
||||
A GLM update is available. It simply includes some examples for a sweet start with GLM.
|
||||
</div><br /><div class="paragraph">
|
||||
The examples show how to use GLM with OpenGL intermediate mode and OpenGL vertex arrays. Also, they show how to use GLM extensions to replace GLU and OpenGL function witch could slightly increase performances by decreasing the number of OpenGL states changes.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.1.zip?download">GLM 0.4.1 (zip, 1.6 MB)</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.1.7z?download">GLM 0.4.1 (7z, 521 KB)</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">17/05/2006</div><div class="title4">GLM 0.4.0 released</div><div><div class="paragraph">
|
||||
This release introduces first GLSL 1.2 features as planed. Also, various new extensions have been added and updated. Finally, it's not anymore required to include windows.h before glm.h when windows.h is required.
|
||||
</div><br /><div class="paragraph">
|
||||
The number of features of GLM, including extensions, start to really increase the compilation time. That's why it's recommended to use precompiled headers.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.4.0.zip?download">GLM 0.4.0</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">23/04/2006</div><div class="title4">Roadmap for the years</div><div><div class="paragraph">
|
||||
Version 0.4 will complete matrices and vectors operators and will add GLSL 1.2 features. First, conversions simplifications will be integrated. Then, 4 per 3 matrices and outer product will be available from extensions. The transpose function is already available from extension.
|
||||
</div><br /><div class="paragraph">
|
||||
Version 0.5 will integrate GLSL 1.2 features to GLM core.
|
||||
</div><br /><div class="paragraph">
|
||||
Version 0.6 will add swizzle operators in reading and writing. (eg: vec3 v1(1.0, 2.0, 3.0); vec3 v2 = v1.xxx; v1.zyx = v;).
|
||||
</div><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">22/04/2006</div><div class="title4">GLM 0.3.2 released</div><div><div class="paragraph">
|
||||
This release corrects two main bugs. First, a bug of the imat4 and mat4 division operators and other correct the vectors components access from texture coordinate way.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.2.zip?download">GLM 0.3.2</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">28/03/2006</div><div class="title4">GLM 0.3.1 released</div><div><div class="paragraph">
|
||||
This update adds GCC 4.0 support for MacOS X and Linux and GCC 4.1 under Linux. Also, its provides some optimisations.
|
||||
</div><br /><div class="paragraph">
|
||||
Further release will prodive GLSL 1.2 compliances.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.1.zip?download">GLM 0.3.1</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">19/02/2006</div><div class="title4">GLM 0.3 released</div><div><div class="paragraph">
|
||||
A new release of GLM is now available. It improves GLSL data type conversion and construction compliance. Also, It's adds extensions like some to manage double-precision and half-precision float numbers. Finally a Doxygen documentation has been added.
|
||||
</div><br /><div class="paragraph">
|
||||
This new release have been tested under Visual C++ 7.1, Visual C++ 8.0, GCC 3.2.3 et GCC 3.4.2.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.3.zip?download">GLM 0.3</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/raytrace-b2.0.zip?download">Raytrace</a><br />Documentation: <a href="../html/index.html">Online documentation</a><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">06/05/2005</div><div class="title4">GLM 0.2 released</div><div><div class="paragraph">
|
||||
A new release of GLM is now available. A few bugs have been fixed, the portability of GLSL into C++ has been improved, and new experimental extensions have been implemented, enhancing GLSL features.
|
||||
</div><br /><div class="paragraph">
|
||||
Project now supports quaternions, adds new features to handle colors, vectors and matrices. For example, GLM allows base colors changing, vector projected operations, and 2D/3D transforms.
|
||||
</div><br /><div class="paragraph">
|
||||
To demo the features of this new version, a sample program is included. It is a simple Ray Tracer supporting reflected and refracted rays, three lights types (point, directionnal and spot), two objects types (sphere, plan), using all of the GLM possibilities.
|
||||
</div><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">04/05/2005</div><div class="title4">English pages</div><div><div class="paragraph">
|
||||
The english section of this site is now available.
|
||||
</div><br /></div><div class="news-separator">_________________</div><br /></div><div><div class="title-date">21/02/2005</div><div class="title4">GLM 0.1 is available</div><div><div class="paragraph">
|
||||
This is the first public availability of GLM. This library supports part of GLSL specifications : All vectors and matrices types, and all the operators and associated functions.
|
||||
</div><br /><div class="paragraph">
|
||||
For now, there isn't detailed documentation, but you can freely have a look on GLSL specifications. Consider any incoherence with GLM as an error. Keep in mind the library is included in the namespace "glm".
|
||||
</div><br /><div class="paragraph">
|
||||
This project is multi platform and was successfully tested under Visual C++ 7.1, MinGW 3.4 and GCC 3.4.
|
||||
</div><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.1-ur.zip?download">GLM 0.1 User Release</a><br />Download: <a href="http://prdownloads.sourceforge.net/glf/glm-0.1-uc.zip?download">GLM 0.1 Contributor Release</a><br />Documentation: <a href="http://oss.sgi.com/projects/ogl-sample/registry/ARB/GLSLangSpec.Full.1.10.59.pdf">GLSL 1.10.59 specifications</a><br /></div><div class="news-separator">_________________</div><br /></div><div class="title3">Copyright © 2005 - 2010 <a href="http://www.g-truc.net">G-Truc Creation</a></div></td></tr></table></body></html>
|
@ -3,8 +3,10 @@
|
||||
<glm copyright="Copyright © 2005 - 2010 ">
|
||||
<downloads>
|
||||
<section name="GLM - zip files">
|
||||
<download name="GLM 0.9.0.3" date="26/08/2010" size="809 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.3/glm-0.9.0.3.zip/download"/>
|
||||
<download name="GLM 0.9.0.2" date="08/07/2010" size="809 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.2/glm-0.9.0.2.zip/download"/>
|
||||
<download name="GLM 0.9.0.5" date="01/11/2010" size="2.2 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.5/glm-0.9.0.5.zip/download"/>
|
||||
<download name="GLM 0.9.0.4" date="04/10/2010" size="1.5 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.4/glm-0.9.0.4.zip/download"/>
|
||||
<download name="GLM 0.9.0.3" date="26/08/2010" size="1.5 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.3/glm-0.9.0.3.zip/download"/>
|
||||
<download name="GLM 0.9.0.2" date="08/07/2010" size="809 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.2/glm-0.9.0.2.zip/download"/>
|
||||
<download name="GLM 0.9.0.1" date="21/06/2010" size="727 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.zip/download"/>
|
||||
<download name="GLM 0.9.0.0" date="25/05/2010" size="1.0 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.zip/download"/>
|
||||
<download name="GLM 0.9.B.2" date="30/04/2010" size="1.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.B.2/glm-0.9.B.2.zip/download"/>
|
||||
@ -51,7 +53,9 @@
|
||||
<download name="GLM 0.1.0.0" date="02/21/2005" size="29.2 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.1-ur.zip?download"/>
|
||||
</section>
|
||||
<section name="GLM - 7z files">
|
||||
<download name="GLM 0.9.0.3" date="26/08/2010" size="651 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.3/glm-0.9.0.3.7z/download"/>
|
||||
<download name="GLM 0.9.0.5" date="01/11/2010" size="1.6 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.5/glm-0.9.0.5.7z/download"/>
|
||||
<download name="GLM 0.9.0.4" date="04/10/2010" size="1.5 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.4/glm-0.9.0.4.7z/download"/>
|
||||
<download name="GLM 0.9.0.3" date="26/08/2010" size="684 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.3/glm-0.9.0.3.7z/download"/>
|
||||
<download name="GLM 0.9.0.2" date="08/07/2010" size="651 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.2/glm-0.9.0.2.7z/download"/>
|
||||
<download name="GLM 0.9.0.1" date="21/06/2010" size="569 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.7z/download"/>
|
||||
<download name="GLM 0.9.0.0" date="25/05/2010" size="514 KB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.7z/download"/>
|
||||
@ -1529,21 +1533,44 @@
|
||||
</changelog>
|
||||
|
||||
<page_news>
|
||||
|
||||
|
||||
<news index="0056" date="01/11/2010" title="GLM 0.9.0.5 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
|
||||
<paragraph>
|
||||
GLM 0.9.0.5 fixes the usual set of bugs, some allowing a better <link href="http://clang.llvm.org/cxx_status.html">Clang</link> support.
|
||||
</paragraph>
|
||||
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.5/glm-0.9.0.5.zip/download">GLM 0.9.0.5 (zip, 2.2 MB)</source>
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.5/glm-0.9.0.5.7z/download">GLM 0.9.0.5 (7z, 1.6 MB)</source>
|
||||
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
|
||||
</news>
|
||||
|
||||
<news index="0055" date="04/10/2010" title="GLM 0.9.0.4 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
|
||||
<paragraph>
|
||||
GLM 0.9.0.4 revision mainly fixes bugs.
|
||||
It also contains a contribution by Arnaud Masserann, a autoexp.dat file to make GLM looks nicer in Visual Studio debugger.
|
||||
To take advantage of this file, edit ${VISUALSTUDIO_DIRECTORY}/common7/packages/debugger/autoexp.dat file and add the content of the file util/autoexp.txt
|
||||
included in GLM 0.9.0.4.
|
||||
</paragraph>
|
||||
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.4/glm-0.9.0.4.zip/download">GLM 0.9.0.4 (zip, 1.5 MB)</source>
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.4/glm-0.9.0.4.7z/download">GLM 0.9.0.4 (7z, 1.2 MB)</source>
|
||||
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
|
||||
</news>
|
||||
|
||||
<news index="0054" date="26/08/2010" title="GLM 0.9.0.3 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
|
||||
<paragraph>
|
||||
GLM 0.9.0.3 fixes major issues on non-squared matrices.
|
||||
</paragraph>
|
||||
</paragraph>
|
||||
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.3/glm-0.9.0.3.zip/download">GLM 0.9.0.3 (zip, 809 KB)</source>
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.3/glm-0.9.0.3.7z/download">GLM 0.9.0.3 (7z, 651 KB)</source>
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.3/glm-0.9.0.3.zip/download">GLM 0.9.0.3 (zip, 1.2 MB)</source>
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.3/glm-0.9.0.3.7z/download">GLM 0.9.0.3 (7z, 684 KB)</source>
|
||||
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
|
||||
</news>
|
||||
|
||||
|
||||
<news index="0053" date="08/07/2010" title="GLM 0.9.0.2 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
|
||||
<paragraph>
|
||||
Second update of GLM 0.9.0 with more bug fixes.
|
||||
It also contains a new extension called GLM_GTX_int_10_10_10_2 to use GLM with OpenGL and
|
||||
It also contains a new extension called GLM_GTX_int_10_10_10_2 to use GLM with OpenGL and
|
||||
<link href="http://www.opengl.org/registry/specs/ARB/vertex_type_2_10_10_10_rev.txt">GL_ARB_vertex_type_2_10_10_10_rev</link>.
|
||||
</paragraph>
|
||||
|
||||
@ -1551,7 +1578,7 @@
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.2/glm-0.9.0.2.7z/download">GLM 0.9.0.2 (7z, 651 KB)</source>
|
||||
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
|
||||
</news>
|
||||
|
||||
|
||||
<news index="0052" date="21/06/2010" title="GLM 0.9.0.1 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
|
||||
<paragraph>
|
||||
This revision only fixes few extensions bugs.
|
||||
@ -1559,26 +1586,26 @@
|
||||
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.zip/download">GLM 0.9.0.1 (zip, 714 KB)</source>
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.1/glm-0.9.0.1.7z/download">GLM 0.9.0.1 (7z, 556 KB)</source>
|
||||
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
|
||||
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
|
||||
</news>
|
||||
|
||||
<news index="0051" date="25/05/2010" title="GLM 0.9.0.0 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
|
||||
<paragraph>
|
||||
GLM 0.9.0.0 is finally available! It brings various API changes from GLM 0.8.4.X branch which makes it not backward compatible.
|
||||
GLM is now compatible with Objective C++ to be used for MacOS X and iPhone projects.
|
||||
</paragraph>
|
||||
<paragraph>
|
||||
To continue making GLM a better library, 2 mailing lists have been created for users and developers.
|
||||
</paragraph>
|
||||
<paragraph>
|
||||
GLM 0.9.0.0 is finally available! It brings various API changes from GLM 0.8.4.X branch which makes it not backward compatible.
|
||||
GLM is now compatible with Objective C++ to be used for MacOS X and iPhone projects.
|
||||
</paragraph>
|
||||
<paragraph>
|
||||
To continue making GLM a better library, 2 mailing lists have been created for users and developers.
|
||||
</paragraph>
|
||||
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.zip/download">GLM 0.9.0.0 (zip, 1.0 MB)</source>
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.7z/download">GLM 0.9.0.0 (7z, 514 KB)</source>
|
||||
<source type="Mailing list" href="https://lists.sourceforge.net/lists/listinfo/ogl-math-users">Register to GLM mailing list for users</source>
|
||||
<source type="Mailing list" href="https://lists.sourceforge.net/lists/listinfo/ogl-math-devel">Register to GLM mailing list for developers</source>
|
||||
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
|
||||
</news>
|
||||
|
||||
<news index="0050" date="30/04/2010" title="GLM 0.9 Beta 2 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.zip/download">GLM 0.9.0.0 (zip, 1.0 MB)</source>
|
||||
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.0.0/glm-0.9.0.0.7z/download">GLM 0.9.0.0 (7z, 514 KB)</source>
|
||||
<source type="Mailing list" href="https://lists.sourceforge.net/lists/listinfo/ogl-math-users">Register to GLM mailing list for users</source>
|
||||
<source type="Mailing list" href="https://lists.sourceforge.net/lists/listinfo/ogl-math-devel">Register to GLM mailing list for developers</source>
|
||||
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
|
||||
</news>
|
||||
|
||||
<news index="0050" date="30/04/2010" title="GLM 0.9 Beta 2 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
|
||||
<paragraph>
|
||||
GLM 0.9 Beta 2 is available and should be the last development release of GLM 0.9.
|
||||
</paragraph>
|
||||
|
@ -11,48 +11,78 @@ int main()
|
||||
glm::mat2x3 m(1.0f);
|
||||
glm::vec2 u(1.0f);
|
||||
glm::vec3 v(1.0f);
|
||||
float x = 1.0f;
|
||||
glm::vec3 a = m * u;
|
||||
glm::vec2 b = v * m;
|
||||
glm::mat2x3 n = x / m;
|
||||
glm::mat2x3 o = m / x;
|
||||
glm::mat2x3 p = x * m;
|
||||
glm::mat2x3 q = m * x;
|
||||
}
|
||||
|
||||
{
|
||||
glm::mat2x4 m(1.0f);
|
||||
glm::vec2 u(1.0f);
|
||||
glm::vec4 v(1.0f);
|
||||
float x = 1.0f;
|
||||
glm::vec4 a = m * u;
|
||||
glm::vec2 b = v * m;
|
||||
glm::mat2x4 n = x / m;
|
||||
glm::mat2x4 o = m / x;
|
||||
glm::mat2x4 p = x * m;
|
||||
glm::mat2x4 q = m * x;
|
||||
}
|
||||
|
||||
{
|
||||
glm::mat3x2 m(1.0f);
|
||||
glm::vec3 u(1.0f);
|
||||
glm::vec2 v(1.0f);
|
||||
float x = 1.0f;
|
||||
glm::vec2 a = m * u;
|
||||
glm::vec3 b = v * m;
|
||||
glm::mat3x2 n = x / m;
|
||||
glm::mat3x2 o = m / x;
|
||||
glm::mat3x2 p = x * m;
|
||||
glm::mat3x2 q = m * x;
|
||||
}
|
||||
|
||||
{
|
||||
glm::mat3x4 m(1.0f);
|
||||
glm::vec3 u(1.0f);
|
||||
glm::vec4 v(1.0f);
|
||||
float x = 1.0f;
|
||||
glm::vec4 a = m * u;
|
||||
glm::vec3 b = v * m;
|
||||
glm::mat3x4 n = x / m;
|
||||
glm::mat3x4 o = m / x;
|
||||
glm::mat3x4 p = x * m;
|
||||
glm::mat3x4 q = m * x;
|
||||
}
|
||||
|
||||
{
|
||||
glm::mat4x2 m(1.0f);
|
||||
glm::vec4 u(1.0f);
|
||||
glm::vec2 v(1.0f);
|
||||
float x = 1.0f;
|
||||
glm::vec2 a = m * u;
|
||||
glm::vec4 b = v * m;
|
||||
glm::mat4x2 n = x / m;
|
||||
glm::mat4x2 o = m / x;
|
||||
glm::mat4x2 p = x * m;
|
||||
glm::mat4x2 q = m * x;
|
||||
}
|
||||
|
||||
{
|
||||
glm::mat4x3 m(1.0f);
|
||||
glm::vec4 u(1.0f);
|
||||
glm::vec3 v(1.0f);
|
||||
float x = 1.0f;
|
||||
glm::vec3 a = m * u;
|
||||
glm::vec4 b = v * m;
|
||||
glm::mat4x3 n = x / m;
|
||||
glm::mat4x3 o = m / x;
|
||||
glm::mat4x3 p = x * m;
|
||||
glm::mat4x3 q = m * x;
|
||||
}
|
||||
|
||||
//{
|
||||
|
@ -146,8 +146,8 @@ namespace glm
|
||||
detail::highp_uint_t ValueX64 = x;
|
||||
detail::highp_uint_t ValueY64 = y;
|
||||
detail::highp_uint_t Value64 = ValueX64 * ValueY64;
|
||||
msb = *(genUType*)&(Value64 & ((detail::highp_uint_t(1) << detail::highp_uint_t(32)) - detail::highp_uint_t(1)));
|
||||
lsb = *(genUType*)&(Value64 >> detail::highp_uint_t(32));
|
||||
msb = *(genUType*)&genUType(Value64 & ((detail::highp_uint_t(1) << detail::highp_uint_t(32)) - detail::highp_uint_t(1)));
|
||||
lsb = *(genUType*)&genUType(Value64 >> detail::highp_uint_t(32));
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
@ -208,8 +208,8 @@ namespace glm
|
||||
detail::highp_int_t ValueX64 = x;
|
||||
detail::highp_int_t ValueY64 = y;
|
||||
detail::highp_int_t Value64 = ValueX64 * ValueY64;
|
||||
msb = *(genIType*)&(Value64 & ((detail::highp_uint_t(1) << detail::highp_uint_t(32)) - detail::highp_uint_t(1)));
|
||||
lsb = *(genIType*)&(Value64 >> detail::highp_uint_t(32));
|
||||
msb = *(genIType*)&genIType(Value64 & ((detail::highp_uint_t(1) << detail::highp_uint_t(32)) - detail::highp_uint_t(1)));
|
||||
lsb = *(genIType*)&genIType(Value64 >> detail::highp_uint_t(32));
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
@ -160,13 +160,13 @@ namespace glm
|
||||
tmat2x2<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
typename tmat2x2<T>::row_type operator* (
|
||||
typename tmat2x2<T>::col_type operator* (
|
||||
tmat2x2<T> const & m,
|
||||
typename tmat2x2<T>::col_type const & s);
|
||||
typename tmat2x2<T>::row_type const & v);
|
||||
|
||||
template <typename T>
|
||||
typename tmat2x2<T>::col_type operator* (
|
||||
typename tmat2x2<T>::row_type,
|
||||
typename tmat2x2<T>::row_type operator* (
|
||||
typename tmat2x2<T>::col_type const & v,
|
||||
tmat2x2<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
@ -185,13 +185,13 @@ namespace glm
|
||||
tmat2x2<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
typename tmat2x2<T>::row_type operator/ (
|
||||
typename tmat2x2<T>::col_type operator/ (
|
||||
tmat2x2<T> const & m,
|
||||
typename tmat2x2<T>::col_type const & v);
|
||||
typename tmat2x2<T>::row_type const & v);
|
||||
|
||||
template <typename T>
|
||||
typename tmat2x2<T>::col_type operator/ (
|
||||
typename tmat2x2<T>::row_type & v,
|
||||
typename tmat2x2<T>::row_type operator/ (
|
||||
typename tmat2x2<T>::col_type const & v,
|
||||
tmat2x2<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
|
@ -449,10 +449,10 @@ namespace detail
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename tmat2x2<T>::row_type operator*
|
||||
inline typename tmat2x2<T>::col_type operator*
|
||||
(
|
||||
tmat2x2<T> const & m,
|
||||
typename tmat2x2<T>::col_type const & v
|
||||
typename tmat2x2<T>::row_type const & v
|
||||
)
|
||||
{
|
||||
return detail::tvec2<T>(
|
||||
@ -461,9 +461,9 @@ namespace detail
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename tmat2x2<T>::col_type operator*
|
||||
inline typename tmat2x2<T>::row_type operator*
|
||||
(
|
||||
typename tmat2x2<T>::row_type const & v,
|
||||
typename tmat2x2<T>::col_type const & v,
|
||||
tmat2x2<T> const & m
|
||||
)
|
||||
{
|
||||
@ -511,19 +511,19 @@ namespace detail
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename tmat2x2<T>::row_type operator/
|
||||
inline typename tmat2x2<T>::col_type operator/
|
||||
(
|
||||
tmat2x2<T> const & m,
|
||||
typename tmat2x2<T>::col_type & v
|
||||
typename tmat2x2<T>::row_type & v
|
||||
)
|
||||
{
|
||||
return m._inverse() * v;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename tmat2x2<T>::col_type operator/
|
||||
inline typename tmat2x2<T>::row_type operator/
|
||||
(
|
||||
typename tmat2x2<T>::row_type const & v,
|
||||
typename tmat2x2<T>::col_type const & v,
|
||||
tmat2x2<T> const & m
|
||||
)
|
||||
{
|
||||
|
@ -35,7 +35,7 @@ namespace glm
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//!< \brief Template for 2 * 3 matrix of floating-point numbers.
|
||||
//!< \brief Template for 2 columns and 3 rows matrix of floating-point numbers.
|
||||
template <typename T>
|
||||
struct tmat2x3
|
||||
{
|
||||
@ -142,13 +142,13 @@ namespace glm
|
||||
tmat2x3<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
typename tmat2x3<T>::row_type operator* (
|
||||
typename tmat2x3<T>::col_type operator* (
|
||||
tmat2x3<T> const & m,
|
||||
typename tmat2x3<T>::col_type const & v);
|
||||
typename tmat2x3<T>::row_type const & v);
|
||||
|
||||
template <typename T>
|
||||
typename tmat2x3<T>::col_type operator* (
|
||||
typename tmat2x3<T>::row_type const & v,
|
||||
typename tmat2x3<T>::row_type operator* (
|
||||
typename tmat2x3<T>::col_type const & v,
|
||||
tmat2x3<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
@ -157,12 +157,12 @@ namespace glm
|
||||
tmat3x2<T> const & m2);
|
||||
|
||||
template <typename T>
|
||||
tmat3x2<T> operator/ (
|
||||
tmat2x3<T> operator/ (
|
||||
tmat2x3<T> const & m,
|
||||
typename tmat2x3<T>::value_type const & s);
|
||||
|
||||
template <typename T>
|
||||
tmat3x2<T> operator/ (
|
||||
tmat2x3<T> operator/ (
|
||||
typename tmat2x3<T>::value_type const & s,
|
||||
tmat2x3<T> const & m);
|
||||
|
||||
|
@ -463,8 +463,7 @@ namespace detail
|
||||
{
|
||||
return tmat2x3<T>(
|
||||
m[0] / s,
|
||||
m[1] / s,
|
||||
m[2] / s);
|
||||
m[1] / s);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
@ -476,8 +475,7 @@ namespace detail
|
||||
{
|
||||
return tmat2x3<T>(
|
||||
s / m[0],
|
||||
s / m[1],
|
||||
s / m[2]);
|
||||
s / m[1]);
|
||||
}
|
||||
|
||||
// Unary constant operators
|
||||
|
@ -35,7 +35,7 @@ namespace glm
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//!< \brief Template for 2 * 4 matrix of floating-point numbers.
|
||||
//!< \brief Template for 2 columns and 4 rows matrix of floating-point numbers.
|
||||
template <typename T>
|
||||
struct tmat2x4
|
||||
{
|
||||
@ -142,13 +142,13 @@ namespace glm
|
||||
tmat2x4<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
typename tmat2x4<T>::row_type operator* (
|
||||
typename tmat2x4<T>::col_type operator* (
|
||||
tmat2x4<T> const & m,
|
||||
typename tmat2x4<T>::col_type const & v);
|
||||
typename tmat2x4<T>::row_type const & v);
|
||||
|
||||
template <typename T>
|
||||
typename tmat2x4<T>::col_type operator* (
|
||||
typename tmat2x4<T>::row_type const & v,
|
||||
typename tmat2x4<T>::row_type operator* (
|
||||
typename tmat2x4<T>::col_type const & v,
|
||||
tmat2x4<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
|
@ -400,6 +400,12 @@ namespace detail
|
||||
m[1] * s);
|
||||
}
|
||||
|
||||
// X
|
||||
// X
|
||||
// X X
|
||||
// X X
|
||||
// X X
|
||||
// X X
|
||||
template <typename T>
|
||||
inline typename tmat2x4<T>::col_type operator*
|
||||
(
|
||||
@ -414,7 +420,12 @@ namespace detail
|
||||
m[0][3] * v.x + m[1][3] * v.y);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
// X X
|
||||
// X X
|
||||
// X X
|
||||
// X X
|
||||
// X X X X
|
||||
template <typename T>
|
||||
inline typename tmat2x4<T>::row_type operator*
|
||||
(
|
||||
typename tmat2x4<T>::col_type const & v,
|
||||
@ -480,9 +491,7 @@ namespace detail
|
||||
{
|
||||
return tmat2x4<T>(
|
||||
m[0] / s,
|
||||
m[1] / s,
|
||||
m[2] / s,
|
||||
m[3] / s);
|
||||
m[1] / s);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
@ -494,9 +503,7 @@ namespace detail
|
||||
{
|
||||
return tmat2x4<T>(
|
||||
s / m[0],
|
||||
s / m[1],
|
||||
s / m[2],
|
||||
s / m[3]);
|
||||
s / m[1]);
|
||||
}
|
||||
|
||||
// Unary constant operators
|
||||
|
@ -35,7 +35,7 @@ namespace glm
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//!< \brief Template for 3 * 2 matrix of floating-point numbers.
|
||||
//!< \brief Template for 3 columns and 2 rows matrix of floating-point numbers.
|
||||
template <typename T>
|
||||
struct tmat3x2
|
||||
{
|
||||
@ -144,13 +144,13 @@ namespace glm
|
||||
tmat3x2<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
typename tmat3x2<T>::row_type operator* (
|
||||
typename tmat3x2<T>::col_type operator* (
|
||||
tmat3x2<T> const & m,
|
||||
typename tmat3x2<T>::col_type const & v);
|
||||
typename tmat3x2<T>::row_type const & v);
|
||||
|
||||
template <typename T>
|
||||
typename tmat3x2<T>::col_type operator* (
|
||||
typename tmat3x2<T>::row_type const & v,
|
||||
typename tmat3x2<T>::row_type operator* (
|
||||
typename tmat3x2<T>::col_type const & v,
|
||||
tmat3x2<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
|
@ -491,8 +491,7 @@ namespace detail
|
||||
return tmat3x2<T>(
|
||||
m[0] / s,
|
||||
m[1] / s,
|
||||
m[2] / s,
|
||||
m[3] / s);
|
||||
m[2] / s);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
@ -505,8 +504,7 @@ namespace detail
|
||||
return tmat3x2<T>(
|
||||
s / m[0],
|
||||
s / m[1],
|
||||
s / m[2],
|
||||
s / m[3]);
|
||||
s / m[2]);
|
||||
}
|
||||
|
||||
// Unary constant operators
|
||||
|
@ -159,13 +159,13 @@ namespace glm
|
||||
tmat3x3<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
typename tmat3x3<T>::row_type operator* (
|
||||
typename tmat3x3<T>::col_type operator* (
|
||||
tmat3x3<T> const & m,
|
||||
typename tmat3x3<T>::col_type const & v);
|
||||
typename tmat3x3<T>::row_type const & v);
|
||||
|
||||
template <typename T>
|
||||
typename tmat3x3<T>::col_type operator* (
|
||||
typename tmat3x3<T>::row_type const & v,
|
||||
typename tmat3x3<T>::row_type operator* (
|
||||
typename tmat3x3<T>::col_type const & v,
|
||||
tmat3x3<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
@ -184,13 +184,13 @@ namespace glm
|
||||
tmat3x3<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
typename tmat3x3<T>::row_type operator/ (
|
||||
typename tmat3x3<T>::col_type operator/ (
|
||||
tmat3x3<T> const & m,
|
||||
typename tmat3x3<T>::col_type const & v);
|
||||
typename tmat3x3<T>::row_type const & v);
|
||||
|
||||
template <typename T>
|
||||
typename tmat3x3<T>::col_type operator/ (
|
||||
typename tmat3x3<T>::row_type const & v,
|
||||
typename tmat3x3<T>::row_type operator/ (
|
||||
typename tmat3x3<T>::col_type const & v,
|
||||
tmat3x3<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
|
@ -505,26 +505,26 @@ namespace detail
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename tmat3x3<T>::row_type operator*
|
||||
inline typename tmat3x3<T>::col_type operator*
|
||||
(
|
||||
tmat3x3<T> const & m,
|
||||
typename tmat3x3<T>::col_type const & v
|
||||
typename tmat3x3<T>::row_type const & v
|
||||
)
|
||||
{
|
||||
return typename tmat3x3<T>::row_type(
|
||||
return typename tmat3x3<T>::col_type(
|
||||
m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z,
|
||||
m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z,
|
||||
m[0][2] * v.x + m[1][2] * v.y + m[2][2] * v.z);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename tmat3x3<T>::col_type operator*
|
||||
inline typename tmat3x3<T>::row_type operator*
|
||||
(
|
||||
typename tmat3x3<T>::row_type const & v,
|
||||
typename tmat3x3<T>::col_type const & v,
|
||||
tmat3x3<T> const & m
|
||||
)
|
||||
{
|
||||
return typename tmat3x3<T>::col_type(
|
||||
return typename tmat3x3<T>::row_type(
|
||||
m[0][0] * v.x + m[0][1] * v.y + m[0][2] * v.z,
|
||||
m[1][0] * v.x + m[1][1] * v.y + m[1][2] * v.z,
|
||||
m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z);
|
||||
@ -598,19 +598,19 @@ namespace detail
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename tmat3x3<T>::row_type operator/
|
||||
inline typename tmat3x3<T>::col_type operator/
|
||||
(
|
||||
tmat3x3<T> const & m,
|
||||
typename tmat3x3<T>::col_type const & v
|
||||
typename tmat3x3<T>::row_type const & v
|
||||
)
|
||||
{
|
||||
return m._inverse() * v;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename tmat3x3<T>::col_type operator/
|
||||
inline typename tmat3x3<T>::row_type operator/
|
||||
(
|
||||
typename tmat3x3<T>::row_type const & v,
|
||||
typename tmat3x3<T>::col_type const & v,
|
||||
tmat3x3<T> const & m
|
||||
)
|
||||
{
|
||||
|
@ -35,7 +35,7 @@ namespace glm
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//!< \brief Template for 3 * 4 matrix of floating-point numbers.
|
||||
//!< \brief Template for 3 columns and 4 rows matrix of floating-point numbers.
|
||||
template <typename T>
|
||||
struct tmat3x4
|
||||
{
|
||||
@ -144,13 +144,13 @@ namespace glm
|
||||
tmat3x4<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
typename tmat3x4<T>::row_type operator* (
|
||||
typename tmat3x4<T>::col_type operator* (
|
||||
tmat3x4<T> const & m,
|
||||
typename tmat3x4<T>::col_type const & v);
|
||||
typename tmat3x4<T>::row_type const & v);
|
||||
|
||||
template <typename T>
|
||||
typename tmat3x4<T>::col_type operator* (
|
||||
typename tmat3x4<T>::row_type const & v,
|
||||
typename tmat3x4<T>::row_type operator* (
|
||||
typename tmat3x4<T>::col_type const & v,
|
||||
tmat3x4<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
|
@ -146,13 +146,13 @@ namespace glm
|
||||
tmat4x2<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
typename tmat4x2<T>::row_type operator* (
|
||||
typename tmat4x2<T>::col_type operator* (
|
||||
tmat4x2<T> const & m,
|
||||
typename tmat4x2<T>::col_type const & v);
|
||||
typename tmat4x2<T>::row_type const & v);
|
||||
|
||||
template <typename T>
|
||||
typename tmat4x2<T>::col_type operator* (
|
||||
typename tmat4x2<T>::row_type const & v,
|
||||
typename tmat4x2<T>::row_type operator* (
|
||||
typename tmat4x2<T>::col_type const & v,
|
||||
tmat4x2<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
|
@ -35,7 +35,7 @@ namespace glm
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//!< \brief Template for 4 * 3 matrix of floating-point numbers.
|
||||
//!< \brief Template for 4 columns and 3 rows matrix of floating-point numbers.
|
||||
template <typename T>
|
||||
struct tmat4x3
|
||||
{
|
||||
@ -146,13 +146,13 @@ namespace glm
|
||||
tmat4x3<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
typename tmat4x3<T>::row_type operator* (
|
||||
typename tmat4x3<T>::col_type operator* (
|
||||
tmat4x3<T> const & m,
|
||||
typename tmat4x3<T>::col_type const & v);
|
||||
typename tmat4x3<T>::row_type const & v);
|
||||
|
||||
template <typename T>
|
||||
typename tmat4x3<T>::col_type operator* (
|
||||
typename tmat4x3<T>::row_type const & v,
|
||||
typename tmat4x3<T>::row_type operator* (
|
||||
typename tmat4x3<T>::col_type const & v,
|
||||
tmat4x3<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
|
@ -161,13 +161,13 @@ namespace glm
|
||||
tmat4x4<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
typename tmat4x4<T>::row_type operator* (
|
||||
typename tmat4x4<T>::col_type operator* (
|
||||
tmat4x4<T> const & m,
|
||||
typename tmat4x4<T>::col_type const & v);
|
||||
typename tmat4x4<T>::row_type const & v);
|
||||
|
||||
template <typename T>
|
||||
typename tmat4x4<T>::col_type operator* (
|
||||
typename tmat4x4<T>::row_type const & v,
|
||||
typename tmat4x4<T>::row_type operator* (
|
||||
typename tmat4x4<T>::col_type const & v,
|
||||
tmat4x4<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
@ -186,13 +186,13 @@ namespace glm
|
||||
tmat4x4<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
typename tmat4x4<T>::row_type operator/ (
|
||||
typename tmat4x4<T>::col_type operator/ (
|
||||
tmat4x4<T> const & m,
|
||||
typename tmat4x4<T>::col_type const & v);
|
||||
typename tmat4x4<T>::row_type const & v);
|
||||
|
||||
template <typename T>
|
||||
typename tmat4x4<T>::col_type operator/ (
|
||||
typename tmat4x4<T>::row_type & v,
|
||||
typename tmat4x4<T>::row_type operator/ (
|
||||
typename tmat4x4<T>::col_type & v,
|
||||
tmat4x4<T> const & m);
|
||||
|
||||
template <typename T>
|
||||
|
@ -435,10 +435,11 @@ namespace detail
|
||||
- (this->value[0][0] * SubFactor14 - this->value[0][1] * SubFactor16 + this->value[0][3] * SubFactor18),
|
||||
+ (this->value[0][0] * SubFactor15 - this->value[0][1] * SubFactor17 + this->value[0][2] * SubFactor18));
|
||||
|
||||
value_type Determinant = this->value[0][0] * Inverse[0][0]
|
||||
+ this->value[0][1] * Inverse[1][0]
|
||||
+ this->value[0][2] * Inverse[2][0]
|
||||
+ this->value[0][3] * Inverse[3][0];
|
||||
value_type Determinant =
|
||||
+ this->value[0][0] * Inverse[0][0]
|
||||
+ this->value[0][1] * Inverse[1][0]
|
||||
+ this->value[0][2] * Inverse[2][0]
|
||||
+ this->value[0][3] * Inverse[3][0];
|
||||
|
||||
Inverse /= Determinant;
|
||||
return Inverse;
|
||||
@ -558,13 +559,13 @@ namespace detail
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename tmat4x4<T>::row_type operator*
|
||||
inline typename tmat4x4<T>::col_type operator*
|
||||
(
|
||||
tmat4x4<T> const & m,
|
||||
typename tmat4x4<T>::col_type const & v
|
||||
typename tmat4x4<T>::row_type const & v
|
||||
)
|
||||
{
|
||||
return typename tmat4x4<T>::row_type(
|
||||
return typename tmat4x4<T>::col_type(
|
||||
m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z + m[3][0] * v.w,
|
||||
m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z + m[3][1] * v.w,
|
||||
m[0][2] * v.x + m[1][2] * v.y + m[2][2] * v.z + m[3][2] * v.w,
|
||||
@ -572,13 +573,13 @@ namespace detail
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename tmat4x4<T>::col_type operator*
|
||||
inline typename tmat4x4<T>::row_type operator*
|
||||
(
|
||||
typename tmat4x4<T>::row_type const & v,
|
||||
typename tmat4x4<T>::col_type const & v,
|
||||
tmat4x4<T> const & m
|
||||
)
|
||||
{
|
||||
return typename tmat4x4<T>::col_type(
|
||||
return typename tmat4x4<T>::row_type(
|
||||
m[0][0] * v.x + m[0][1] * v.y + m[0][2] * v.z + m[0][3] * v.w,
|
||||
m[1][0] * v.x + m[1][1] * v.y + m[1][2] * v.z + m[1][3] * v.w,
|
||||
m[2][0] * v.x + m[2][1] * v.y + m[2][2] * v.z + m[2][3] * v.w,
|
||||
@ -639,19 +640,19 @@ namespace detail
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename tmat4x4<T>::row_type operator/
|
||||
inline typename tmat4x4<T>::col_type operator/
|
||||
(
|
||||
tmat4x4<T> const & m,
|
||||
typename tmat4x4<T>::col_type const & v
|
||||
typename tmat4x4<T>::row_type const & v
|
||||
)
|
||||
{
|
||||
return m._inverse() * v;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename tmat4x4<T>::col_type operator/
|
||||
inline typename tmat4x4<T>::row_type operator/
|
||||
(
|
||||
typename tmat4x4<T>::row_type const & v,
|
||||
typename tmat4x4<T>::col_type const & v,
|
||||
tmat4x4<T> const & m
|
||||
)
|
||||
{
|
||||
|
0
glm/gtc/gl_replacement.hpp
Normal file
0
glm/gtc/gl_replacement.hpp
Normal file
0
glm/gtc/gl_replacement.inl
Normal file
0
glm/gtc/gl_replacement.inl
Normal file
0
glm/gtc/glu_replacement.hpp
Normal file
0
glm/gtc/glu_replacement.hpp
Normal file
0
glm/gtc/glu_replacement.inl
Normal file
0
glm/gtc/glu_replacement.inl
Normal file
@ -38,8 +38,11 @@ namespace glm
|
||||
//! Component wise extraction of bit fields.
|
||||
//! genType and genIType could be a scalar or a vector.
|
||||
//! From GLM_GTX_bit extension.
|
||||
template <typename genType, typename genIType>
|
||||
genIType extractField(genType const & v, genIType const & first, genIType const & count);
|
||||
template <typename genIUType, typename sizeType>
|
||||
genIUType extractField(
|
||||
genIUType const & v,
|
||||
sizeType const & first,
|
||||
sizeType const & count);
|
||||
|
||||
//! Find the lowest bit set to 1 in a integer variable.
|
||||
//! From GLM_GTX_bit extension.
|
||||
|
130
glm/gtx/bit.inl
130
glm/gtx/bit.inl
@ -92,141 +92,147 @@ inline genIType extractField
|
||||
)
|
||||
{
|
||||
assert(first + count < sizeof(double));
|
||||
return (detail::uif64(value).i << first) >> ((sizeof(double) << 3) - count);
|
||||
return (detail::uif64(value).i << first) >> ((sizeof(double) << genIType(3)) - count);
|
||||
}
|
||||
|
||||
template <typename genType, typename genIType>
|
||||
inline genIType extractField
|
||||
template <typename genIUType, typename sizeType>
|
||||
inline genIUType extractField
|
||||
(
|
||||
genType const & value,
|
||||
genIType const & first,
|
||||
genIType const & count
|
||||
genIUType const & Value,
|
||||
sizeType const & First,
|
||||
sizeType const & Count
|
||||
)
|
||||
{
|
||||
assert(first + count < sizeof(genType));
|
||||
return (value << first) >> ((sizeof(genType) << 3) - count);
|
||||
sizeType GenSize = sizeof(genIUType) << 3;
|
||||
|
||||
assert(First + Count <= GenSize);
|
||||
|
||||
genIUType ShiftLeft = Count ? Value << (GenSize - (Count + First)) : 0;
|
||||
genIUType ShiftBack = ShiftLeft >> genIUType(GenSize - Count);
|
||||
|
||||
return ShiftBack;
|
||||
}
|
||||
|
||||
template <typename valType, typename valIType>
|
||||
inline detail::tvec2<valIType> extractField
|
||||
template <typename genIUType, typename sizeType>
|
||||
inline detail::tvec2<genIUType> extractField
|
||||
(
|
||||
detail::tvec2<valType> const & value,
|
||||
valIType const & first,
|
||||
valIType const & count
|
||||
detail::tvec2<genIUType> const & value,
|
||||
sizeType const & first,
|
||||
sizeType const & count
|
||||
)
|
||||
{
|
||||
return detail::tvec2<valIType>(
|
||||
return detail::tvec2<genIUType>(
|
||||
extractField(value[0], first, count),
|
||||
extractField(value[1], first, count));
|
||||
}
|
||||
|
||||
template <typename valType, typename valIType>
|
||||
inline detail::tvec3<valIType> extractField
|
||||
template <typename genIUType, typename sizeType>
|
||||
inline detail::tvec3<genIUType> extractField
|
||||
(
|
||||
detail::tvec3<valType> const & value,
|
||||
valIType const & first,
|
||||
valIType const & count
|
||||
detail::tvec3<genIUType> const & value,
|
||||
sizeType const & first,
|
||||
sizeType const & count
|
||||
)
|
||||
{
|
||||
return detail::tvec3<valIType>(
|
||||
return detail::tvec3<genIUType>(
|
||||
extractField(value[0], first, count),
|
||||
extractField(value[1], first, count),
|
||||
extractField(value[2], first, count));
|
||||
}
|
||||
|
||||
template <typename valType, typename valIType>
|
||||
inline detail::tvec4<valIType> extractField
|
||||
template <typename genIUType, typename sizeType>
|
||||
inline detail::tvec4<genIUType> extractField
|
||||
(
|
||||
detail::tvec4<valType> const & value,
|
||||
valIType const & first,
|
||||
valIType const & count
|
||||
detail::tvec4<genIUType> const & value,
|
||||
sizeType const & first,
|
||||
sizeType const & count
|
||||
)
|
||||
{
|
||||
return detail::tvec4<valIType>(
|
||||
return detail::tvec4<genIUType>(
|
||||
extractField(value[0], first, count),
|
||||
extractField(value[1], first, count),
|
||||
extractField(value[2], first, count),
|
||||
extractField(value[3], first, count));
|
||||
}
|
||||
|
||||
template <typename valType, typename valIType>
|
||||
inline detail::tvec2<valIType> extractField
|
||||
template <typename genIUType, typename sizeType>
|
||||
inline detail::tvec2<genIUType> extractField
|
||||
(
|
||||
detail::tvec2<valType> const & value,
|
||||
detail::tvec2<valIType> const & first,
|
||||
detail::tvec2<valIType> const & count
|
||||
detail::tvec2<genIUType> const & value,
|
||||
detail::tvec2<sizeType> const & first,
|
||||
detail::tvec2<sizeType> const & count
|
||||
)
|
||||
{
|
||||
return detail::tvec2<valIType>(
|
||||
return detail::tvec2<genIUType>(
|
||||
extractField(value[0], first[0], count[0]),
|
||||
extractField(value[1], first[1], count[1]));
|
||||
}
|
||||
|
||||
template <typename valType, typename valIType>
|
||||
inline detail::tvec3<valIType> extractField
|
||||
template <typename genIUType, typename sizeType>
|
||||
inline detail::tvec3<genIUType> extractField
|
||||
(
|
||||
detail::tvec3<valType> const & value,
|
||||
detail::tvec3<valIType> const & first,
|
||||
detail::tvec3<valIType> const & count
|
||||
detail::tvec3<genIUType> const & value,
|
||||
detail::tvec3<sizeType> const & first,
|
||||
detail::tvec3<sizeType> const & count
|
||||
)
|
||||
{
|
||||
return detail::tvec3<valIType>(
|
||||
return detail::tvec3<genIUType>(
|
||||
extractField(value[0], first[0], count[0]),
|
||||
extractField(value[1], first[1], count[1]),
|
||||
extractField(value[2], first[2], count[2]));
|
||||
}
|
||||
|
||||
template <typename valType, typename valIType>
|
||||
inline detail::tvec4<valIType> extractField
|
||||
template <typename genIUType, typename sizeType>
|
||||
inline detail::tvec4<genIUType> extractField
|
||||
(
|
||||
detail::tvec4<valType> const & value,
|
||||
detail::tvec4<valIType> const & first,
|
||||
detail::tvec4<valIType> const & count
|
||||
detail::tvec4<genIUType> const & value,
|
||||
detail::tvec4<sizeType> const & first,
|
||||
detail::tvec4<sizeType> const & count
|
||||
)
|
||||
{
|
||||
return detail::tvec4<valIType>(
|
||||
return detail::tvec4<genIUType>(
|
||||
extractField(value[0], first[0], count[0]),
|
||||
extractField(value[1], first[1], count[1]),
|
||||
extractField(value[2], first[2], count[2]),
|
||||
extractField(value[3], first[3], count[3]));
|
||||
}
|
||||
|
||||
template <typename valType, typename valIType>
|
||||
inline detail::tvec2<valIType> extractField
|
||||
template <typename genIUType, typename sizeType>
|
||||
inline detail::tvec2<genIUType> extractField
|
||||
(
|
||||
valType const & value,
|
||||
detail::tvec2<valIType> const & first,
|
||||
detail::tvec2<valIType> const & count
|
||||
genIUType const & value,
|
||||
detail::tvec2<sizeType> const & first,
|
||||
detail::tvec2<sizeType> const & count
|
||||
)
|
||||
{
|
||||
return detail::tvec2<valIType>(
|
||||
return detail::tvec2<genIUType>(
|
||||
extractField(value, first[0], count[0]),
|
||||
extractField(value, first[1], count[1]));
|
||||
}
|
||||
|
||||
template <typename valType, typename valIType>
|
||||
inline detail::tvec3<valIType> extractField
|
||||
template <typename genIUType, typename sizeType>
|
||||
inline detail::tvec3<genIUType> extractField
|
||||
(
|
||||
valType const & value,
|
||||
detail::tvec3<valIType> const & first,
|
||||
detail::tvec3<valIType> const & count
|
||||
genIUType const & value,
|
||||
detail::tvec3<sizeType> const & first,
|
||||
detail::tvec3<sizeType> const & count
|
||||
)
|
||||
{
|
||||
return detail::tvec3<valIType>(
|
||||
return detail::tvec3<genIUType>(
|
||||
extractField(value, first[0], count[0]),
|
||||
extractField(value, first[1], count[1]),
|
||||
extractField(value, first[2], count[2]));
|
||||
}
|
||||
|
||||
template <typename valType, typename valIType>
|
||||
inline detail::tvec4<valIType> extractField
|
||||
template <typename genIUType, typename sizeType>
|
||||
inline detail::tvec4<genIUType> extractField
|
||||
(
|
||||
valType const & value,
|
||||
detail::tvec4<valIType> const & first,
|
||||
detail::tvec4<valIType> const & count
|
||||
genIUType const & value,
|
||||
detail::tvec4<sizeType> const & first,
|
||||
detail::tvec4<sizeType> const & count
|
||||
)
|
||||
{
|
||||
return detail::tvec4<valIType>(
|
||||
return detail::tvec4<genIUType>(
|
||||
extractField(value, first[0], count[0]),
|
||||
extractField(value, first[1], count[1]),
|
||||
extractField(value, first[2], count[2]),
|
||||
|
@ -11,7 +11,7 @@ namespace glm{
|
||||
namespace gtx{
|
||||
namespace int_10_10_10_2
|
||||
{
|
||||
dword uint10_10_10_2_cast(glm::vec4 const & v)
|
||||
inline dword uint10_10_10_2_cast(glm::vec4 const & v)
|
||||
{
|
||||
return dword(uint(v.x * 2047.f) << 0 | uint(v.y * 2047.f) << 10 | uint(v.z * 2047.f) << 20 | uint(v.w * 3.f) << 30);
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
#define GLM_VERSION_MAJOR 0
|
||||
#define GLM_VERSION_MINOR 9
|
||||
#define GLM_VERSION_PATCH 0
|
||||
#define GLM_VERSION_REVISION 3
|
||||
#define GLM_VERSION_REVISION 4
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Common values
|
||||
|
12
readme.txt
12
readme.txt
@ -4,6 +4,18 @@ G-Truc Creation
|
||||
www.g-truc.net
|
||||
glm@g-truc.net
|
||||
|
||||
=============================
|
||||
GLM 0.9.0.5: 2010-11-01
|
||||
-----------------------------
|
||||
- Improved Clang support
|
||||
- Fixed bugs
|
||||
|
||||
=============================
|
||||
GLM 0.9.0.4: 2010-10-04
|
||||
-----------------------------
|
||||
- Added autoexp for GLM
|
||||
- Fixed bugs
|
||||
|
||||
=============================
|
||||
GLM 0.9.0.3: 2010-08-26
|
||||
-----------------------------
|
||||
|
28
util/autoexp.txt
Normal file
28
util/autoexp.txt
Normal file
@ -0,0 +1,28 @@
|
||||
[Visualizer]
|
||||
|
||||
glm::detail::tvec2<*>{
|
||||
preview (
|
||||
#(#($c.x,$c.y))
|
||||
)
|
||||
children (
|
||||
#([x]: $c.x,[y]: $c.y)
|
||||
)
|
||||
}
|
||||
|
||||
glm::detail::tvec3<*>{
|
||||
preview (
|
||||
#($e.x,$e.y,$e.z)
|
||||
)
|
||||
children (
|
||||
#([x]: $e.x,[y]: $e.y,[z]: $e.z)
|
||||
)
|
||||
}
|
||||
|
||||
glm::detail::tvec4<*>{
|
||||
preview (
|
||||
#($c.x,$c.y,$c.z,$c.w)
|
||||
)
|
||||
children (
|
||||
#([x]: $e.x,[y]: $e.y,[z]: $e.z, #([w]: $e.w))
|
||||
)
|
||||
}
|
3896
util/autoexp.vc2010.dat
Normal file
3896
util/autoexp.vc2010.dat
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user