diff --git a/Part1/PROJ_WIN/Project3/Project3.vcxproj b/Part1/PROJ_WIN/Project3/Project3.vcxproj
index 20ddcbc..de4fe27 100644
--- a/Part1/PROJ_WIN/Project3/Project3.vcxproj
+++ b/Part1/PROJ_WIN/Project3/Project3.vcxproj
@@ -26,11 +26,11 @@
false
true
MultiByte
- v110
+ v100
-
+
@@ -46,7 +46,7 @@
Level3
Disabled
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include;C:/ProgramData/NVIDIA Corporation/CUDA Samples/v5.5/common/inc;../shared/glew/includes;../shared/freeglut/includes
+ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include;C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\inc;../shared/glew/includes;../shared/freeglut/includes
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
@@ -57,7 +57,7 @@
mainCRTStartup
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include;C:/ProgramData/NVIDIA Corporation/CUDA Samples/v5.5/common/inc;../shared/glew/includes;../shared/freeglut/includes
+ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include;C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\inc;../shared/glew/includes;../shared/freeglut/includes
$(ProjectDir)$(Platform)/$(Configuration)/%(Filename)%(Extension).obj
true
true
@@ -71,12 +71,19 @@
MaxSpeed
true
true
+ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include;C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\inc;../shared/glew/includes;../shared/freeglut/includes
true
true
true
+ ../shared/glew/lib;../shared/freeglut/lib;%(AdditionalLibraryDirectories)
+ cudart.lib; glew32.lib;glu32.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
+
+ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include;C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\inc;../shared/glew/includes;../shared/freeglut/includes
+ $(ProjectDir)$(Platform)/$(Configuration)/%(Filename)%(Extension).obj
+
@@ -105,6 +112,6 @@
-
+
\ No newline at end of file
diff --git a/Part1/PROJ_WIN/Project3/shaders/heightFS.glsl b/Part1/PROJ_WIN/Project3/shaders/heightFS.glsl
index e36d53e..300fdda 100644
--- a/Part1/PROJ_WIN/Project3/shaders/heightFS.glsl
+++ b/Part1/PROJ_WIN/Project3/shaders/heightFS.glsl
@@ -1,4 +1,10 @@
+varying vec2 v_Texcoords;
+varying float f_height;
+
void main(void)
{
- gl_FragColor = vec4(0.05,0.15,0.3,1.0);
-}
+ float shade = (1.0-2.0*sqrt(f_height));
+ float alpha = float(mod(v_Texcoords.x+0.025, 0.05) > 0.046 || mod(v_Texcoords.y+0.025, 0.05) > 0.046);
+ vec4 color = mix(vec4(0.05,0.15,0.3,1.0), vec4(0.05, 0.3, 0.4, 1.0), alpha);
+ gl_FragColor = shade*color;
+}
\ No newline at end of file
diff --git a/Part1/PROJ_WIN/Project3/shaders/heightVS.glsl b/Part1/PROJ_WIN/Project3/shaders/heightVS.glsl
index eda1b93..db82f90 100644
--- a/Part1/PROJ_WIN/Project3/shaders/heightVS.glsl
+++ b/Part1/PROJ_WIN/Project3/shaders/heightVS.glsl
@@ -1,9 +1,18 @@
uniform mat4 u_projMatrix;
+uniform sampler2D u_height;
+
attribute vec4 Position;
+attribute vec2 Texcoords;
+
+varying vec2 v_Texcoords;
+varying float f_height;
void main(void)
{
- vec4 pos = u_projMatrix * Position;
- pos.z += 0.01;
- gl_Position = pos;
-}
+ v_Texcoords = Texcoords;
+ vec4 pos = Position;
+ f_height = texture2D(u_height, Texcoords).w;
+ pos.z = -0.01-clamp(f_height,0.0,2.0);
+ pos = u_projMatrix * pos;
+ gl_Position = pos;
+}
\ No newline at end of file
diff --git a/Part1/PROJ_WIN/Project3/shaders/planetFS.glsl b/Part1/PROJ_WIN/Project3/shaders/planetFS.glsl
index e2c1350..d4333eb 100644
--- a/Part1/PROJ_WIN/Project3/shaders/planetFS.glsl
+++ b/Part1/PROJ_WIN/Project3/shaders/planetFS.glsl
@@ -1,4 +1,28 @@
-void main(void)
+#version 330
+
+in vec3 WorldCoord;
+in vec3 ToCam;
+in vec3 Up;
+in vec3 Right;
+in vec2 TexCoord;
+out vec4 FragColor;
+
+void main()
{
- gl_FragColor = vec4(1.0);
-}
+ vec2 coord = 2.01 * (TexCoord - vec2(0.5));
+ float r = length(coord);
+ if (r >= 1.0) { discard; }
+
+ float dist = length(WorldCoord);
+ if(dist <= 0.01)
+ {
+ FragColor = vec4(1.0);
+ return;
+ }
+
+ vec3 N = Right*-coord.x + Up*coord.y + ToCam*sqrt(1-r*r);
+ vec3 L = normalize(-WorldCoord);
+ float light = 0.1 + 0.9*clamp(dot(N,L),0.0, 1.0)*exp(-dist);
+ vec3 color = vec3(0.4, 0.1, 0.6);
+ FragColor = vec4(color*light,1.0);
+}
\ No newline at end of file
diff --git a/Part1/PROJ_WIN/Project3/shaders/planetGS.glsl b/Part1/PROJ_WIN/Project3/shaders/planetGS.glsl
index 88027d3..e45f28e 100644
--- a/Part1/PROJ_WIN/Project3/shaders/planetGS.glsl
+++ b/Part1/PROJ_WIN/Project3/shaders/planetGS.glsl
@@ -1,15 +1,49 @@
#version 330
uniform mat4 u_projMatrix;
+uniform vec3 u_cameraPos;
layout (points) in;
-layout (points) out;
-layout (max_vertices = 1) out;
+layout (triangle_strip) out;
+layout (max_vertices = 4) out;
+
+out vec3 WorldCoord;
+out vec3 ToCam;
+out vec3 Up;
+out vec3 Right;
+out vec2 TexCoord;
+
+const float scale = 0.03;
void main()
{
vec3 Position = gl_in[0].gl_Position.xyz;
- gl_Position = u_projMatrix * vec4(Position, 1.0);
+ WorldCoord = Position;
+
+ ToCam = normalize(u_cameraPos - Position);
+ Up = vec3(0.0, 0.0, 1.0);
+ Right = cross(ToCam, Up);
+ Up = cross(Right, ToCam);
+
+ vec3 Pos = Position + scale*Right - scale*Up;
+ gl_Position = u_projMatrix * vec4(Pos, 1.0);
+ TexCoord = vec2(0.0, 0.0);
+ EmitVertex();
+
+ Pos = Position + scale*Right + scale*Up;
+ gl_Position = u_projMatrix * vec4(Pos, 1.0);
+ TexCoord = vec2(0.0, 1.0);
EmitVertex();
+
+ Pos = Position - scale*Right - scale*Up;
+ gl_Position = u_projMatrix * vec4(Pos, 1.0);
+ TexCoord = vec2(1.0, 0.0);
+ EmitVertex();
+
+ Pos = Position - scale*Right + scale*Up;
+ gl_Position = u_projMatrix * vec4(Pos, 1.0);
+ TexCoord = vec2(1.0, 1.0);
+ EmitVertex();
+
EndPrimitive();
-}
+}
\ No newline at end of file
diff --git a/Part1/PROJ_WIN/shared/glut32.dll b/Part1/PROJ_WIN/shared/glut32.dll
new file mode 100644
index 0000000..106646f
Binary files /dev/null and b/Part1/PROJ_WIN/shared/glut32.dll differ
diff --git a/Part1/PROJ_WIN/src/kernel.cu.deps b/Part1/PROJ_WIN/src/kernel.cu.deps
index 35aaf16..b99b4bb 100644
--- a/Part1/PROJ_WIN/src/kernel.cu.deps
+++ b/Part1/PROJ_WIN/src/kernel.cu.deps
@@ -1,18 +1,18 @@
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_config.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h
c:\program files (x86)\microsoft visual studio 10.0\vc\include\codeanalysis\sourceannotations.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vadefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vadefs.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stddef.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stddef.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h
@@ -68,12 +68,12 @@ c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wtime.inl
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.inl
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wtime.inl
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.inl
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\math_functions.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h
@@ -82,16 +82,16 @@ c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdlib.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cmath
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\yvals.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\use_ansi.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdlib
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdlib.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cmath
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\yvals.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\use_ansi.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdlib
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_surface_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h
@@ -239,285 +239,286 @@ c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_launch_parameters.h
c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\swprintf.inl
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\swprintf.inl
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda.h
-c:\users\liam\project3-simulation\part1\src\glm/glm.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core/_fixes.hpp
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\climits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cfloat
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\float.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtwrn.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ymath.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wchar.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstddef
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstddef
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio
-c:\users\liam\project3-simulation\part1\src\glm\core/setup.hpp
-c:\users\liam\project3-simulation\part1\src\glm\./core/_detail.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\setup.hpp
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cassert
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\assert.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-c:\users\liam\project3-simulation\part1\src\glm\./core/_vectorize.hpp
-c:\users\liam\project3-simulation\part1\src\glm\./core/type.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_half.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_half.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\_detail.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_float.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_half.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\setup.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_int.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\setup.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\_detail.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_gentype.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_size.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_vec1.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_vec.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_gentype.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_float.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_int.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_size.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\_swizzle.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\_swizzle_func.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_vec1.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\type_vec2.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_vec.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_float.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_int.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_size.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\_swizzle.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_vec2.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\type_vec3.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_vec.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_float.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_int.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_size.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\_swizzle.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_vec3.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\type_vec4.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_vec.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_float.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_int.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_size.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\_swizzle.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_vec4.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat2x2.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_gentype.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat2x2.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat2x3.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat2x3.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat2x4.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat2x4.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat3x2.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat3x2.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat3x3.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat3x3.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat3x4.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat3x4.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat4x2.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat4x2.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat4x3.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat4x3.inl
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat4x4.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\type_mat4x4.inl
-c:\users\liam\project3-simulation\part1\src\glm\./core/func_trigonometric.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\func_trigonometric.inl
-c:\users\liam\project3-simulation\part1\src\glm\./core/func_exponential.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\func_exponential.inl
-c:\users\liam\project3-simulation\part1\src\glm\./core/func_common.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\_fixes.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\func_common.inl
-c:\users\liam\project3-simulation\part1\src\glm\./core/func_packing.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\func_packing.inl
-c:\users\liam\project3-simulation\part1\src\glm\./core/func_geometric.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\func_geometric.inl
-c:\users\liam\project3-simulation\part1\src\glm\./core/func_matrix.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\func_matrix.inl
-c:\users\liam\project3-simulation\part1\src\glm\./core/func_vector_relational.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\_detail.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\func_vector_relational.inl
-c:\users\liam\project3-simulation\part1\src\glm\./core/func_integer.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\func_integer.inl
-c:\users\liam\project3-simulation\part1\src\glm\./core/func_noise.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core\func_noise.inl
-c:\users\liam\project3-simulation\part1\src\glm\./core/_swizzle.hpp
-c:\users\liam\project3-simulation\part1\src\utilities.h
-c:\users\liam\project3-simulation\part1\src\glm/glm.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core/_fixes.hpp
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmemory
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\new
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\exception
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\eh.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\malloc.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\utility
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iosfwd
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdbg.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\type_traits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xtr1common
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\typeinfo
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\setjmp.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\immintrin.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wmmintrin.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\nmmintrin.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\smmintrin.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\tmmintrin.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\pmmintrin.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\emmintrin.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmmintrin.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mm3dnow.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\istream
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ios
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocnum
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\streambuf
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xiosbase
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdexcept
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstring
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ctype.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\locale.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xdebug
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\system_error
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cerrno
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\errno.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\share.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional
-c:\users\liam\project3-simulation\part1\src\cudaMat4.h
-c:\users\liam\project3-simulation\part1\src\glm/glm.hpp
-c:\users\liam\project3-simulation\part1\src\glm\core/_fixes.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm/glm.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core/_fixes.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\climits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cfloat
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\float.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtwrn.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ymath.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wchar.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstddef
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstddef
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core/setup.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/_detail.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\setup.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cassert
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\assert.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/_vectorize.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/type.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_half.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_half.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\_detail.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_float.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_half.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\setup.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_int.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\setup.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\_detail.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_gentype.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_size.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_vec1.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_vec.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_gentype.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_float.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_int.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_size.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\_swizzle.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\_swizzle_func.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_vec1.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_vec2.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_vec.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_float.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_int.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_size.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\_swizzle.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_vec2.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_vec3.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_vec.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_float.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_int.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_size.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\_swizzle.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_vec3.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_vec4.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_vec.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_float.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_int.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_size.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\_swizzle.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_vec4.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat2x2.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_gentype.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat2x2.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat2x3.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat2x3.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat2x4.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat2x4.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat3x2.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat3x2.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat3x3.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat3x3.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat3x4.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat3x4.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat4x2.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat4x2.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat4x3.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat4x3.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat4x4.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\type_mat4x4.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/func_trigonometric.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\func_trigonometric.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/func_exponential.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\func_exponential.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/func_common.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\_fixes.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\func_common.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/func_packing.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\func_packing.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/func_geometric.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\func_geometric.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/func_matrix.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\func_matrix.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/func_vector_relational.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\_detail.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\func_vector_relational.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/func_integer.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\func_integer.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/func_noise.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core\func_noise.inl
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\./core/_swizzle.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\utilities.h
+c:\users\hms\daltonb\project3-simulation\part1\src\glm/glm.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core/_fixes.hpp
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmemory
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\new
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\exception
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\eh.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\malloc.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\utility
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iosfwd
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdbg.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\type_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xtr1common
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\typeinfo
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\setjmp.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\immintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\nmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\smmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\tmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\pmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\emmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ammintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mm3dnow.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\istream
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ios
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocnum
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\streambuf
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xiosbase
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdexcept
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstring
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ctype.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\locale.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xdebug
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\system_error
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cerrno
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\errno.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\share.h
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional
+c:\users\hms\daltonb\project3-simulation\part1\src\cudaMat4.h
+c:\users\hms\daltonb\project3-simulation\part1\src\glm/glm.hpp
+c:\users\hms\daltonb\project3-simulation\part1\src\glm\core/_fixes.hpp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h
-c:\users\liam\project3-simulation\part1\src\kernel.h
+c:\users\hms\daltonb\project3-simulation\part1\src\kernel.h
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random.h
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config.h
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/config.h
@@ -534,7 +535,7 @@ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/co
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/hd_warning_disable.h
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/cstdint.h
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/discard_block_engine.h
-C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream
+c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/random_core_access.h
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/discard_block_engine.inl
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/linear_congruential_engine.h
diff --git a/Part1/src/glm/core/_detail.hpp b/Part1/src/glm/core/_detail.hpp
index e6b42c2..b842dea 100644
--- a/Part1/src/glm/core/_detail.hpp
+++ b/Part1/src/glm/core/_detail.hpp
@@ -1,7 +1,7 @@
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
-/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
@@ -444,15 +444,7 @@ namespace detail
# define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct
# define GLM_RESTRICT __declspec(restrict)
# define GLM_RESTRICT_VAR __restrict
-# define GLM_CONSTEXPR
-#elif(GLM_COMPILER & GLM_COMPILER_INTEL)
-# define GLM_DEPRECATED
-# define GLM_ALIGN(x) __declspec(align(x))
-# define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct
-# define GLM_RESTRICT
-# define GLM_RESTRICT_VAR __restrict
-# define GLM_CONSTEXPR
-#elif(((GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC)) && (GLM_COMPILER >= GLM_COMPILER_GCC31)) || (GLM_COMPILER & GLM_COMPILER_CLANG))
+#elif((GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC)) && (GLM_COMPILER >= GLM_COMPILER_GCC31))
# define GLM_DEPRECATED __attribute__((__deprecated__))
# define GLM_ALIGN(x) __attribute__((aligned(x)))
# define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x)))
@@ -465,18 +457,12 @@ namespace detail
# endif
# define GLM_RESTRICT __restrict__
# define GLM_RESTRICT_VAR __restrict__
-# if((GLM_COMPILER >= GLM_COMPILER_GCC47) && ((GLM_LANG & GLM_LANG_CXX0X) == GLM_LANG_CXX0X))
-# define GLM_CONSTEXPR constexpr
-# else
-# define GLM_CONSTEXPR
-# endif
#else
# define GLM_DEPRECATED
# define GLM_ALIGN
# define GLM_ALIGNED_STRUCT(x)
# define GLM_RESTRICT
# define GLM_RESTRICT_VAR
-# define GLM_CONSTEXPR
#endif//GLM_COMPILER
#endif//glm_core_detail
diff --git a/Part1/src/glm/core/_fixes.hpp b/Part1/src/glm/core/_fixes.hpp
index b4cec5f..1b4ddda 100644
--- a/Part1/src/glm/core/_fixes.hpp
+++ b/Part1/src/glm/core/_fixes.hpp
@@ -1,7 +1,7 @@
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
-/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
diff --git a/Part1/src/glm/core/_swizzle.hpp b/Part1/src/glm/core/_swizzle.hpp
index dc06944..61be1d6 100644
--- a/Part1/src/glm/core/_swizzle.hpp
+++ b/Part1/src/glm/core/_swizzle.hpp
@@ -1,7 +1,7 @@
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
-/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
@@ -53,130 +53,124 @@ namespace glm
namespace glm{
namespace detail
{
- // Internal class for implementing swizzle operators
- template
- struct _swizzle_base0
- {
- typedef T value_type;
-
- protected:
- GLM_FUNC_QUALIFIER value_type& elem (size_t i) { return (reinterpret_cast(_buffer))[i]; }
- GLM_FUNC_QUALIFIER const value_type& elem (size_t i) const { return (reinterpret_cast(_buffer))[i]; }
-
- // Use an opaque buffer to *ensure* the compiler doesn't call a constructor.
- // The size 1 buffer is assumed to aligned to the actual members so that the
- // elem()
- char _buffer[1];
- };
-
- template
- struct _swizzle_base1 : public _swizzle_base0
- {
- };
-
- template
- struct _swizzle_base1 : public _swizzle_base0
- {
- GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1)); }
- };
-
- template
- struct _swizzle_base1 : public _swizzle_base0
- {
- GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2)); }
- };
-
- template
- struct _swizzle_base1 : public _swizzle_base0
- {
- GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
- };
-
- // Internal class for implementing swizzle operators
- /*
- Template parameters:
-
- ValueType = type of scalar values (e.g. float, double)
- VecType = class the swizzle is applies to (e.g. tvec3)
- N = number of components in the vector (e.g. 3)
- E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec
-
- DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles
- containing duplicate elements so that they cannot be used as r-values).
- */
- template
- struct _swizzle_base2 : public _swizzle_base1
- {
+ // Internal class for implementing swizzle operators
+ template
+ struct _swizzle_base0
+ {
+ typedef T value_type;
+
+ protected:
+ value_type& elem (size_t i) { return (reinterpret_cast(_buffer))[i]; }
+ const value_type& elem (size_t i) const { return (reinterpret_cast(_buffer))[i]; }
+
+ // Use an opaque buffer to *ensure* the compiler doesn't call a constructor.
+ // The size 1 buffer is assumed to aligned to the actual members so that the
+ // elem()
+ char _buffer[1];
+ };
+
+ template
+ struct _swizzle_base1 : public _swizzle_base0
+ {
+ };
+
+ template
+ struct _swizzle_base1 : public _swizzle_base0
+ {
+ V operator ()() const { return V(this->elem(E0), this->elem(E1)); }
+ };
+
+ template
+ struct _swizzle_base1 : public _swizzle_base0
+ {
+ V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2)); }
+ };
+
+ template
+ struct _swizzle_base1 : public _swizzle_base0
+ {
+ V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
+ };
+
+ // Internal class for implementing swizzle operators
+ /*
+ Template parameters:
+
+ ValueType = type of scalar values (e.g. float, double)
+ VecType = class the swizzle is applies to (e.g. tvec3)
+ N = number of components in the vector (e.g. 3)
+ E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec
+
+ DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles
+ containing duplicate elements so that they cannot be used as r-values).
+ */
+ template
+ struct _swizzle_base2 : public _swizzle_base1
+ {
typedef VecType vec_type;
typedef ValueType value_type;
- GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const ValueType& t)
+ _swizzle_base2& operator= (const ValueType& t)
{
for (int i = 0; i < N; ++i)
(*this)[i] = t;
return *this;
}
- GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const VecType& that)
+ _swizzle_base2& operator= (const VecType& that)
{
struct op {
- GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e = t; }
+ void operator() (value_type& e, value_type& t) { e = t; }
};
_apply_op(that, op());
return *this;
}
- GLM_FUNC_QUALIFIER void operator -= (const VecType& that)
+ void operator -= (const VecType& that)
{
struct op {
- GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e -= t; }
+ void operator() (value_type& e, value_type& t) { e -= t; }
};
_apply_op(that, op());
}
- GLM_FUNC_QUALIFIER void operator += (const VecType& that)
+ void operator += (const VecType& that)
{
struct op {
- GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e += t; }
+ void operator() (value_type& e, value_type& t) { e += t; }
};
_apply_op(that, op());
}
- GLM_FUNC_QUALIFIER void operator *= (const VecType& that)
+ void operator *= (const VecType& that)
{
struct op {
- GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e *= t; }
+ void operator() (value_type& e, value_type& t) { e *= t; }
};
_apply_op(that, op());
}
- GLM_FUNC_QUALIFIER void operator /= (const VecType& that)
+ void operator /= (const VecType& that)
{
struct op {
- GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e /= t; }
+ void operator() (value_type& e, value_type& t) { e /= t; }
};
_apply_op(that, op());
}
- GLM_FUNC_QUALIFIER value_type& operator[] (size_t i)
+ value_type& operator[] (size_t i)
{
-#ifndef __CUDA_ARCH__
- static
-#endif
- const int offset_dst[4] = { E0, E1, E2, E3 };
+ static const int offset_dst[4] = { E0, E1, E2, E3 };
return this->elem(offset_dst[i]);
}
- GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const
+ value_type operator[] (size_t i) const
{
-#ifndef __CUDA_ARCH__
- static
-#endif
- const int offset_dst[4] = { E0, E1, E2, E3 };
+ static const int offset_dst[4] = { E0, E1, E2, E3 };
return this->elem(offset_dst[i]);
}
protected:
template
- GLM_FUNC_QUALIFIER void _apply_op(const VecType& that, T op)
+ void _apply_op(const VecType& that, T op)
{
// Make a copy of the data in this == &that.
// The copier should optimize out the copy in cases where the function is
@@ -187,7 +181,7 @@ namespace detail
for (int i = 0; i < N; ++i)
op( (*this)[i], t[i] );
}
- };
+ };
// Specialization for swizzles containing duplicate elements. These cannot be modified.
template
@@ -197,16 +191,13 @@ namespace detail
typedef ValueType value_type;
struct Stub {};
- GLM_FUNC_QUALIFIER _swizzle_base2& operator= (Stub const &) { return *this; }
+ _swizzle_base2& operator= (Stub const &) {}
- GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const
+ value_type operator[] (size_t i) const
{
-#ifndef __CUDA_ARCH__
- static
-#endif
- const int offset_dst[4] = { E0, E1, E2, E3 };
+ static const int offset_dst[4] = { E0, E1, E2, E3 };
return this->elem(offset_dst[i]);
- }
+ }
};
template
@@ -216,7 +207,7 @@ namespace detail
using base_type::operator=;
- GLM_FUNC_QUALIFIER operator VecType () const { return (*this)(); }
+ operator VecType () const { return (*this)(); }
};
//
@@ -232,17 +223,17 @@ namespace detail
//
#define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
_GLM_SWIZZLE_TEMPLATE2 \
- GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
+ V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
{ \
return a() OPERAND b(); \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const V& b) \
+ V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const V& b) \
{ \
return a() OPERAND b; \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER V operator OPERAND ( const V& a, const _GLM_SWIZZLE_TYPE1& b) \
+ V operator OPERAND ( const V& a, const _GLM_SWIZZLE_TYPE1& b) \
{ \
return a OPERAND b(); \
}
@@ -252,12 +243,12 @@ namespace detail
//
#define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \
+ V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \
{ \
return a() OPERAND b; \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER V operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \
+ V operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \
{ \
return a OPERAND b(); \
}
@@ -267,7 +258,7 @@ namespace detail
//
#define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a) \
+ typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a) \
{ \
return FUNCTION(a()); \
}
@@ -277,22 +268,22 @@ namespace detail
//
#define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \
_GLM_SWIZZLE_TEMPLATE2 \
- GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
+ typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \
{ \
return FUNCTION(a(), b()); \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b) \
+ typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b) \
{ \
return FUNCTION(a(), b()); \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename V& b) \
+ typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename V& b) \
{ \
return FUNCTION(a(), b); \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const _GLM_SWIZZLE_TYPE1& b) \
+ typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const _GLM_SWIZZLE_TYPE1& b) \
{ \
return FUNCTION(a, b()); \
}
@@ -302,22 +293,22 @@ namespace detail
//
#define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \
_GLM_SWIZZLE_TEMPLATE2 \
- GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b, const T& c) \
+ typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b, const T& c) \
{ \
return FUNCTION(a(), b(), c); \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \
+ typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \
{ \
return FUNCTION(a(), b(), c); \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\
+ typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\
{ \
return FUNCTION(a(), b, c); \
} \
_GLM_SWIZZLE_TEMPLATE1 \
- GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \
+ typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \
{ \
return FUNCTION(a, b(), c); \
}
@@ -331,32 +322,33 @@ namespace glm
{
_GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-)
_GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*)
+
_GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+)
_GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-)
_GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*)
_GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/)
}
- //
- // Swizzles are distinct types from the unswizzled type. The below macros will
- // provide template specializations for the swizzle types for the given functions
- // so that the compiler does not have any ambiguity to choosing how to handle
- // the function.
- //
- // The alternative is to use the operator()() when calling the function in order
- // to explicitly convert the swizzled type to the unswizzled type.
- //
-
- //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);
- //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);
- //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);
- //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);
- //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);
-
- //_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);
- //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);
- //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step);
- //_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);
+ //
+ // Swizzles are distinct types from the unswizzled type. The below macros will
+ // provide template specializations for the swizzle types for the given functions
+ // so that the compiler does not have any ambiguity to choosing how to handle
+ // the function.
+ //
+ // The alternative is to use the operator()() when calling the function in order
+ // to explicitly convert the swizzled type to the unswizzled type.
+ //
+
+ //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs);
+ //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos);
+ //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh);
+ //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all);
+ //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any);
+
+ //_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot);
+ //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross);
+ //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step);
+ //_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix);
}
#define _GLM_SWIZZLE2_2_MEMBERS(T,P,E0,E1) \
@@ -649,22 +641,6 @@ namespace glm
struct { glm::detail::swizzle<4,T,P,0,2,3,1> E0 ## E2 ## E3 ## E1; }; \
struct { glm::detail::swizzle<4,T,P,0,2,3,2> E0 ## E2 ## E3 ## E2; }; \
struct { glm::detail::swizzle<4,T,P,0,2,3,3> E0 ## E2 ## E3 ## E3; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,0,0> E0 ## E3 ## E0 ## E0; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,0,1> E0 ## E3 ## E0 ## E1; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,0,2> E0 ## E3 ## E0 ## E2; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,0,3> E0 ## E3 ## E0 ## E3; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,1,0> E0 ## E3 ## E1 ## E0; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,1,1> E0 ## E3 ## E1 ## E1; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,1,2> E0 ## E3 ## E1 ## E2; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,1,3> E0 ## E3 ## E1 ## E3; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,2,0> E0 ## E3 ## E2 ## E0; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,2,1> E0 ## E3 ## E2 ## E1; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,2,2> E0 ## E3 ## E2 ## E2; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,2,3> E0 ## E3 ## E2 ## E3; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,3,0> E0 ## E3 ## E3 ## E0; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,3,1> E0 ## E3 ## E3 ## E1; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,3,2> E0 ## E3 ## E3 ## E2; }; \
- struct { glm::detail::swizzle<4,T,P,0,3,3,3> E0 ## E3 ## E3 ## E3; }; \
struct { glm::detail::swizzle<4,T,P,1,0,0,0> E1 ## E0 ## E0 ## E0; }; \
struct { glm::detail::swizzle<4,T,P,1,0,0,1> E1 ## E0 ## E0 ## E1; }; \
struct { glm::detail::swizzle<4,T,P,1,0,0,2> E1 ## E0 ## E0 ## E2; }; \
diff --git a/Part1/src/glm/core/_swizzle_func.hpp b/Part1/src/glm/core/_swizzle_func.hpp
index be66784..255a3ec 100644
--- a/Part1/src/glm/core/_swizzle_func.hpp
+++ b/Part1/src/glm/core/_swizzle_func.hpp
@@ -1,7 +1,7 @@
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
-/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
diff --git a/Part1/src/glm/core/_vectorize.hpp b/Part1/src/glm/core/_vectorize.hpp
index 9984014..e69d809 100644
--- a/Part1/src/glm/core/_vectorize.hpp
+++ b/Part1/src/glm/core/_vectorize.hpp
@@ -1,7 +1,7 @@
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
-/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
@@ -27,37 +27,37 @@
///////////////////////////////////////////////////////////////////////////////////
#define VECTORIZE2_VEC(func) \
- template \
- GLM_FUNC_QUALIFIER detail::tvec2 func( \
+ template \
+ GLM_FUNC_QUALIFIER detail::tvec2 func( \
detail::tvec2 const & v) \
- { \
- return detail::tvec2( \
- func(v.x), \
- func(v.y)); \
- }
+ { \
+ return detail::tvec2( \
+ func(v.x), \
+ func(v.y)); \
+ }
#define VECTORIZE3_VEC(func) \
- template \
- GLM_FUNC_QUALIFIER detail::tvec3 func( \
+ template \
+ GLM_FUNC_QUALIFIER detail::tvec3 func( \
detail::tvec3 const & v) \
- { \
- return detail::tvec3( \
- func(v.x), \
- func(v.y), \
- func(v.z)); \
- }
+ { \
+ return detail::tvec3( \
+ func(v.x), \
+ func(v.y), \
+ func(v.z)); \
+ }
#define VECTORIZE4_VEC(func) \
- template \
- GLM_FUNC_QUALIFIER detail::tvec4 func( \
+ template \
+ GLM_FUNC_QUALIFIER detail::tvec4 func( \
detail::tvec4 const & v) \
- { \
- return detail::tvec4( \
- func(v.x), \
- func(v.y), \
- func(v.z), \
- func(v.w)); \
- }
+ { \
+ return detail::tvec4( \
+ func(v.x), \
+ func(v.y), \
+ func(v.z), \
+ func(v.w)); \
+ }
#define VECTORIZE_VEC(func) \
VECTORIZE2_VEC(func) \
@@ -65,46 +65,46 @@
VECTORIZE4_VEC(func)
#define VECTORIZE2_VEC_SCA(func) \
- template \
- GLM_FUNC_QUALIFIER detail::tvec2 func \
+ template \
+ GLM_FUNC_QUALIFIER detail::tvec2 func \
( \
detail::tvec2 const & x, \
typename detail::tvec2::value_type const & y \
) \
- { \
- return detail::tvec2( \
- func(x.x, y), \
- func(x.y, y)); \
- }
+ { \
+ return detail::tvec2( \
+ func(x.x, y), \
+ func(x.y, y)); \
+ }
#define VECTORIZE3_VEC_SCA(func) \
- template \
- GLM_FUNC_QUALIFIER detail::tvec3 func \
+ template \
+ GLM_FUNC_QUALIFIER detail::tvec3 func \
( \
detail::tvec3 const & x, \
typename detail::tvec3::value_type const & y \
) \
- { \
- return detail::tvec3( \
- func(x.x, y), \
- func(x.y, y), \
- func(x.z, y)); \
- }
+ { \
+ return detail::tvec3( \
+ func(x.x, y), \
+ func(x.y, y), \
+ func(x.z, y)); \
+ }
#define VECTORIZE4_VEC_SCA(func) \
- template \
- GLM_FUNC_QUALIFIER detail::tvec4 func \
+ template \
+ GLM_FUNC_QUALIFIER detail::tvec4 func \
( \
detail::tvec4 const & x, \
typename detail::tvec4::value_type const & y \
) \
- { \
- return detail::tvec4( \
- func(x.x, y), \
- func(x.y, y), \
- func(x.z, y), \
- func(x.w, y)); \
- }
+ { \
+ return detail::tvec4( \
+ func(x.x, y), \
+ func(x.y, y), \
+ func(x.z, y), \
+ func(x.w, y)); \
+ }
#define VECTORIZE_VEC_SCA(func) \
VECTORIZE2_VEC_SCA(func) \
@@ -112,46 +112,46 @@
VECTORIZE4_VEC_SCA(func)
#define VECTORIZE2_VEC_VEC(func) \
- template \
- GLM_FUNC_QUALIFIER detail::tvec2 func \
+ template \
+ GLM_FUNC_QUALIFIER detail::tvec2 func \
( \
detail::tvec2 const & x, \
detail::tvec2 const & y \
) \
- { \
- return detail::tvec2( \
- func(x.x, y.x), \
- func(x.y, y.y)); \
- }
+ { \
+ return detail::tvec2( \
+ func(x.x, y.x), \
+ func(x.y, y.y)); \
+ }
#define VECTORIZE3_VEC_VEC(func) \
- template \
- GLM_FUNC_QUALIFIER detail::tvec3 func \
+ template \
+ GLM_FUNC_QUALIFIER detail::tvec3 func \
( \
detail::tvec3 const & x, \
detail::tvec3 const & y \
) \
- { \
- return detail::tvec3( \
- func(x.x, y.x), \
- func(x.y, y.y), \
- func(x.z, y.z)); \
- }
+ { \
+ return detail::tvec3( \
+ func(x.x, y.x), \
+ func(x.y, y.y), \
+ func(x.z, y.z)); \
+ }
#define VECTORIZE4_VEC_VEC(func) \
- template \
- GLM_FUNC_QUALIFIER detail::tvec4 func \
+ template \
+ GLM_FUNC_QUALIFIER detail::tvec4 func \
( \
detail::tvec4 const & x, \
detail::tvec4 const & y \
) \
- { \
- return detail::tvec4( \
- func(x.x, y.x), \
- func(x.y, y.y), \
- func(x.z, y.z), \
- func(x.w, y.w)); \
- }
+ { \
+ return detail::tvec4( \
+ func(x.x, y.x), \
+ func(x.y, y.y), \
+ func(x.z, y.z), \
+ func(x.w, y.w)); \
+ }
#define VECTORIZE_VEC_VEC(func) \
VECTORIZE2_VEC_VEC(func) \
diff --git a/Part1/src/glm/core/dummy.cpp b/Part1/src/glm/core/dummy.cpp
index 38fcca0..443c072 100644
--- a/Part1/src/glm/core/dummy.cpp
+++ b/Part1/src/glm/core/dummy.cpp
@@ -1,7 +1,7 @@
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
-/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
@@ -31,6 +31,7 @@
#define GLM_MESSAGES
#include "../glm.hpp"
+#include "../ext.hpp"
//#error "GLM is a header only library"
diff --git a/Part1/src/glm/core/func_common.hpp b/Part1/src/glm/core/func_common.hpp
index fcf7eb7..3c26819 100644
--- a/Part1/src/glm/core/func_common.hpp
+++ b/Part1/src/glm/core/func_common.hpp
@@ -1,7 +1,7 @@
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
-/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
@@ -46,39 +46,39 @@ namespace glm
/// Returns x if x >= 0; otherwise, it returns -x.
///
/// @tparam genType floating-point or signed integer; scalar or vector types.
- ///
- /// @see GLSL abs man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
- template
- GLM_FUNC_DECL genType abs(genType const & x);
+ ///
+ /// @see GLSL abs man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ template
+ genType abs(genType const & x);
/// Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0.
///
/// @tparam genType Floating-point or signed integer; scalar or vector types.
///
- /// @see GLSL sign man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ /// @see GLSL sign man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType sign(genType const & x);
+ genType sign(genType const & x);
- /// Returns a value equal to the nearest integer that is less then or equal to x.
+ /// Returns a value equal to the nearest integer that is less then or equal to x.
///
/// @tparam genType Floating-point scalar or vector types.
- ///
- /// @see GLSL floor man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ ///
+ /// @see GLSL floor man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType floor(genType const & x);
+ genType floor(genType const & x);
/// Returns a value equal to the nearest integer to x
/// whose absolute value is not larger than the absolute value of x.
///
/// @tparam genType Floating-point scalar or vector types.
- ///
- /// @see GLSL trunc man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ ///
+ /// @see GLSL trunc man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType trunc(genType const & x);
+ genType trunc(genType const & x);
/// Returns a value equal to the nearest integer to x.
/// The fraction 0.5 will round in a direction chosen by the
@@ -87,52 +87,52 @@ namespace glm
/// same value as roundEven(x) for all values of x.
///
/// @tparam genType Floating-point scalar or vector types.
- ///
- /// @see GLSL round man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ ///
+ /// @see GLSL round man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType round(genType const & x);
+ genType round(genType const & x);
/// Returns a value equal to the nearest integer to x.
/// A fractional part of 0.5 will round toward the nearest even
/// integer. (Both 3.5 and 4.5 for x will return 4.0.)
///
/// @tparam genType Floating-point scalar or vector types.
- ///
- /// @see GLSL roundEven man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ ///
+ /// @see GLSL roundEven man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
/// @see New round to even technique
template
- GLM_FUNC_DECL genType roundEven(genType const & x);
+ genType roundEven(genType const & x);
/// Returns a value equal to the nearest integer
/// that is greater than or equal to x.
- ///
+ ///
/// @tparam genType Floating-point scalar or vector types.
///
- /// @see GLSL ceil man page
+ /// @see GLSL ceil man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
- template
- GLM_FUNC_DECL genType ceil(genType const & x);
+ template
+ genType ceil(genType const & x);
/// Return x - floor(x).
- ///
+ ///
/// @tparam genType Floating-point scalar or vector types.
///
- /// @see GLSL fract man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
- template
- GLM_FUNC_DECL genType fract(genType const & x);
+ /// @see GLSL fract man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ template
+ genType fract(genType const & x);
/// Modulus. Returns x - y * floor(x / y)
/// for each component in x using the floating point value y.
///
/// @tparam genType Floating-point scalar or vector types.
- ///
- /// @see GLSL mod man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
- template
- GLM_FUNC_DECL genType mod(
+ ///
+ /// @see GLSL mod man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ template
+ genType mod(
genType const & x,
genType const & y);
@@ -140,11 +140,11 @@ namespace glm
/// for each component in x using the floating point value y.
///
/// @tparam genType Floating-point scalar or vector types.
- ///
- /// @see GLSL mod man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
- template
- GLM_FUNC_DECL genType mod(
+ ///
+ /// @see GLSL mod man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ template
+ genType mod(
genType const & x,
typename genType::value_type const & y);
@@ -152,86 +152,86 @@ namespace glm
/// part (as a whole number floating point value). Both the
/// return value and the output parameter will have the same
/// sign as x.
- ///
+ ///
/// @tparam genType Floating-point scalar or vector types.
///
- /// @see GLSL modf man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ /// @see GLSL modf man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType modf(
+ genType modf(
genType const & x,
genType & i);
- /// Returns y if y < x; otherwise, it returns x.
+ /// Returns y if y < x; otherwise, it returns x.
///
/// @tparam genType Floating-point or integer; scalar or vector types.
- ///
- /// @see GLSL min man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ ///
+ /// @see GLSL min man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType min(
+ genType min(
genType const & x,
genType const & y);
template
- GLM_FUNC_DECL genType min(
+ genType min(
genType const & x,
typename genType::value_type const & y);
- /// Returns y if x < y; otherwise, it returns x.
+ /// Returns y if x < y; otherwise, it returns x.
///
/// @tparam genType Floating-point or integer; scalar or vector types.
- ///
- /// @see GLSL max man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ ///
+ /// @see GLSL max man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType max(
+ genType max(
genType const & x,
genType const & y);
template
- GLM_FUNC_DECL genType max(
+ genType max(
genType const & x,
typename genType::value_type const & y);
- /// Returns min(max(x, minVal), maxVal) for each component in x
+ /// Returns min(max(x, minVal), maxVal) for each component in x
/// using the floating-point values minVal and maxVal.
- ///
+ ///
/// @tparam genType Floating-point or integer; scalar or vector types.
///
- /// @see GLSL clamp man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ /// @see GLSL clamp man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType clamp(
+ genType clamp(
genType const & x,
genType const & minVal,
genType const & maxVal);
template
- GLM_FUNC_DECL genType clamp(
+ genType clamp(
genType const & x,
typename genType::value_type const & minVal,
typename genType::value_type const & maxVal);
- /// If genTypeU is a floating scalar or vector:
- /// Returns x * (1.0 - a) + y * a, i.e., the linear blend of
- /// x and y using the floating-point value a.
- /// The value for a is not restricted to the range [0, 1].
- ///
- /// If genTypeU is a boolean scalar or vector:
- /// Selects which vector each returned component comes
- /// from. For a component of that is false, the
- /// corresponding component of x is returned. For a
- /// component of a that is true, the corresponding
- /// component of y is returned. Components of x and y that
- /// are not selected are allowed to be invalid floating point
- /// values and will have no effect on the results. Thus, this
- /// provides different functionality than
- /// genType mix(genType x, genType y, genType(a))
- /// where a is a Boolean vector.
- ///
- /// @see GLSL mix man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ //! @return If genTypeU is a floating scalar or vector:
+ //! Returns x * (1.0 - a) + y * a, i.e., the linear blend of
+ //! x and y using the floating-point value a.
+ //! The value for a is not restricted to the range [0, 1].
+ //!
+ //! @return If genTypeU is a boolean scalar or vector:
+ //! Selects which vector each returned component comes
+ //! from. For a component of a that is false, the
+ //! corresponding component of x is returned. For a
+ //! component of a that is true, the corresponding
+ //! component of y is returned. Components of x and y that
+ //! are not selected are allowed to be invalid floating point
+ //! values and will have no effect on the results. Thus, this
+ //! provides different functionality than
+ //! genType mix(genType x, genType y, genType(a))
+ //! where a is a Boolean vector.
+ ///
+ /// @see GLSL mix man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
///
/// @param[in] x Value to interpolate.
/// @param[in] y Value to interpolate.
@@ -256,19 +256,19 @@ namespace glm
/// glm::vec4 u = glm::mix(g, h, r); // Interpolations can be perform per component with a vector for the last parameter.
/// @endcode
template
- GLM_FUNC_DECL genTypeT mix(genTypeT const & x, genTypeT const & y, genTypeU const & a);
+ genTypeT mix(genTypeT const & x, genTypeT const & y, genTypeU const & a);
//! Returns 0.0 if x < edge, otherwise it returns 1.0.
- //!
- /// @see GLSL step man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ //!
+ /// @see GLSL step man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType step(
+ genType step(
genType const & edge,
genType const & x);
template
- GLM_FUNC_DECL genType step(
+ genType step(
typename genType::value_type const & edge,
genType const & x);
@@ -278,22 +278,22 @@ namespace glm
/// you would want a threshold function with a smooth
/// transition. This is equivalent to:
/// genType t;
- /// t = clamp ((x - edge0) / (edge1 - edge0), 0, 1);
- /// return t * t * (3 - 2 * t);
+ /// t = clamp ((x – edge0) / (edge1 – edge0), 0, 1);
+ /// return t * t * (3 – 2 * t);
/// Results are undefined if edge0 >= edge1.
///
/// @tparam genType Floating-point scalar or vector types.
- ///
- /// @see GLSL smoothstep man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ ///
+ /// @see GLSL smoothstep man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType smoothstep(
+ genType smoothstep(
genType const & edge0,
genType const & edge1,
genType const & x);
template
- GLM_FUNC_DECL genType smoothstep(
+ genType smoothstep(
typename genType::value_type const & edge0,
typename genType::value_type const & edge1,
genType const & x);
@@ -303,28 +303,26 @@ namespace glm
/// floating point representations. Returns false otherwise,
/// including for implementations with no NaN
/// representations.
- ///
- /// /!\ When using compiler fast math, this function may fail.
- ///
+ ///
/// @tparam genType Floating-point scalar or vector types.
///
- /// @see GLSL isnan man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ /// @see GLSL isnan man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL typename genType::bool_type isnan(genType const & x);
+ typename genType::bool_type isnan(genType const & x);
/// Returns true if x holds a positive infinity or negative
/// infinity representation in the underlying implementation's
/// set of floating point representations. Returns false
/// otherwise, including for implementations with no infinity
/// representations.
- ///
+ ///
/// @tparam genType Floating-point scalar or vector types.
///
- /// @see GLSL isinf man page
+ /// @see GLSL isinf man page
/// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL typename genType::bool_type isinf(genType const & x);
+ typename genType::bool_type isinf(genType const & x);
/// Returns a signed integer value representing
/// the encoding of a floating-point value. The floatingpoint
@@ -332,11 +330,11 @@ namespace glm
///
/// @tparam genType Single-precision floating-point scalar or vector types.
/// @tparam genIType Signed integer scalar or vector types.
- ///
- /// @see GLSL floatBitsToInt man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ ///
+ /// @see GLSL floatBitsToInt man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genIType floatBitsToInt(genType const & value);
+ genIType floatBitsToInt(genType const & value);
/// Returns a unsigned integer value representing
/// the encoding of a floating-point value. The floatingpoint
@@ -344,52 +342,52 @@ namespace glm
///
/// @tparam genType Single-precision floating-point scalar or vector types.
/// @tparam genUType Unsigned integer scalar or vector types.
- ///
- /// @see GLSL floatBitsToUint man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ ///
+ /// @see GLSL floatBitsToUint man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genUType floatBitsToUint(genType const & value);
+ genUType floatBitsToUint(genType const & value);
/// Returns a floating-point value corresponding to a signed
/// integer encoding of a floating-point value.
/// If an inf or NaN is passed in, it will not signal, and the
/// resulting floating point value is unspecified. Otherwise,
/// the bit-level representation is preserved.
- ///
+ ///
/// @tparam genType Single-precision floating-point scalar or vector types.
/// @tparam genIType Signed integer scalar or vector types.
///
- /// @see GLSL intBitsToFloat man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ /// @see GLSL intBitsToFloat man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
///
/// @todo Clarify this declaration, we don't need to actually specify the return type
template
- GLM_FUNC_DECL genType intBitsToFloat(genIType const & value);
-
- /// Returns a floating-point value corresponding to a
- /// unsigned integer encoding of a floating-point value.
- /// If an inf or NaN is passed in, it will not signal, and the
- /// resulting floating point value is unspecified. Otherwise,
- /// the bit-level representation is preserved.
- ///
+ genType intBitsToFloat(genIType const & value);
+
+ /// Returns a floating-point value corresponding to a
+ /// unsigned integer encoding of a floating-point value.
+ /// If an inf or NaN is passed in, it will not signal, and the
+ /// resulting floating point value is unspecified. Otherwise,
+ /// the bit-level representation is preserved.
+ ///
/// @tparam genType Single-precision floating-point scalar or vector types.
/// @tparam genUType Unsigned integer scalar or vector types.
- ///
- /// @see GLSL uintBitsToFloat man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ ///
+ /// @see GLSL uintBitsToFloat man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
///
/// @todo Clarify this declaration, we don't need to actually specify the return type
- template
- GLM_FUNC_DECL genType uintBitsToFloat(genUType const & value);
-
+ template
+ genType uintBitsToFloat(genUType const & value);
+
/// Computes and returns a * b + c.
///
/// @tparam genType Floating-point scalar or vector types.
- ///
- /// @see GLSL fma man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ ///
+ /// @see GLSL fma man page
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType fma(genType const & a, genType const & b, genType const & c);
+ genType fma(genType const & a, genType const & b, genType const & c);
/// Splits x into a floating-point significand in the range
/// [0.5, 1.0) and an integral exponent of two, such that:
@@ -404,9 +402,9 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see GLSL frexp man page
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType frexp(genType const & x, genIType & exp);
+ genType frexp(genType const & x, genIType & exp);
/// Builds a floating-point number from x and the
/// corresponding integral exponent of two in exp, returning:
@@ -418,9 +416,9 @@ namespace glm
/// @tparam genType Floating-point scalar or vector types.
///
/// @see GLSL ldexp man page;
- /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
+ /// @see GLSL 4.20.8 specification, section 8.3 Common Functions
template
- GLM_FUNC_DECL genType ldexp(genType const & x, genIType const & exp);
+ genType ldexp(genType const & x, genIType const & exp);
/// @}
}//namespace glm
diff --git a/Part1/src/glm/core/func_common.inl b/Part1/src/glm/core/func_common.inl
index 1c0d9df..0e70745 100644
--- a/Part1/src/glm/core/func_common.inl
+++ b/Part1/src/glm/core/func_common.inl
@@ -1,7 +1,7 @@
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
-/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
+/// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
@@ -26,53 +26,55 @@
/// @author Christophe Riccio
///////////////////////////////////////////////////////////////////////////////////
+#include "_vectorize.hpp"
+
namespace glm{
namespace detail
{
- template
- struct Abs_
- {};
-
- template
- struct Abs_
- {
- GLM_FUNC_QUALIFIER static genFIType get(genFIType const & x)
- {
- GLM_STATIC_ASSERT(
- detail::type::is_float ||
- detail::type::is_int, "'abs' only accept floating-point and integer inputs");
- return x >= genFIType(0) ? x : -x;
+ template
+ struct Abs_
+ {};
+
+ template
+ struct Abs_
+ {
+ static genFIType get(genFIType const & x)
+ {
+ GLM_STATIC_ASSERT(
+ detail::type::is_float ||
+ detail::type::is_int, "'abs' only accept floating-point and integer inputs");
+ return x >= genFIType(0) ? x : -x;
// TODO, perf comp with: *(((int *) &x) + 1) &= 0x7fffffff;
- }
- };
-
- template
- struct Abs_
- {
- GLM_FUNC_QUALIFIER static genFIType get(genFIType const & x)
- {
- GLM_STATIC_ASSERT(
+ }
+ };
+
+ template
+ struct Abs_
+ {
+ static genFIType get(genFIType const & x)
+ {
+ GLM_STATIC_ASSERT(
detail::type::is_uint, "'abs' only accept floating-point and integer inputs");
- return x;
- }
- };
+ return x;
+ }
+ };
}//namespace detail
// abs
template
- GLM_FUNC_QUALIFIER genFIType abs
+ GLM_FUNC_QUALIFIER genFIType abs
(
genFIType const & x
)
- {
+ {
return detail::Abs_::is_signed>::get(x);
- }
+ }
VECTORIZE_VEC(abs)
- // sign
+ // sign
//Try something like based on x >> 31 to get the sign bit
- template
+ template
GLM_FUNC_QUALIFIER genFIType sign
(
genFIType const & x
@@ -81,74 +83,74 @@ namespace detail
GLM_STATIC_ASSERT(
detail::type::is_float ||
detail::type::is_int, "'sign' only accept signed inputs");
-
+
genFIType result;
if(x > genFIType(0))
- result = genFIType(1);
- else if(x < genFIType(0))
- result = genFIType(-1);
- else
- result = genFIType(0);
- return result;
+ result = genFIType(1);
+ else if(x < genFIType(0))
+ result = genFIType(-1);
+ else
+ result = genFIType(0);
+ return result;
}
VECTORIZE_VEC(sign)
- // floor
- template <>
+ // floor
+ template <>
GLM_FUNC_QUALIFIER detail::half floor(detail::half const & x)
- {
- return detail::half(::std::floor(float(x)));
- }
+ {
+ return detail::half(::std::floor(float(x)));
+ }
- template
- GLM_FUNC_QUALIFIER genType floor(genType const & x)
- {
+ template
+ GLM_FUNC_QUALIFIER genType floor(genType const & x)
+ {
GLM_STATIC_ASSERT(detail::type::is_float, "'floor' only accept floating-point inputs");
- return ::std::floor(x);
- }
+ return ::std::floor(x);
+ }
VECTORIZE_VEC(floor)
- // trunc
- template
- GLM_FUNC_QUALIFIER genType trunc(genType const & x)
- {
+ // trunc
+ template
+ GLM_FUNC_QUALIFIER genType trunc(genType const & x)
+ {
GLM_STATIC_ASSERT(detail::type::is_float, "'trunc' only accept floating-point inputs");
- return x < 0 ? -floor(-x) : floor(x);
- }
+ return x < 0 ? -floor(-x) : floor(x);
+ }
VECTORIZE_VEC(trunc)
- // round
- template
- GLM_FUNC_QUALIFIER genType round(genType const& x)
- {
+ // round
+ template
+ GLM_FUNC_QUALIFIER genType round(genType const& x)
+ {
GLM_STATIC_ASSERT(detail::type::is_float, "'round' only accept floating-point inputs");
if(x < 0)
return genType(int(x - genType(0.5)));
return genType(int(x + genType(0.5)));
- }
+ }
VECTORIZE_VEC(round)
/*
- // roundEven
- template
- GLM_FUNC_QUALIFIER genType roundEven(genType const& x)
- {
+ // roundEven
+ template
+ GLM_FUNC_QUALIFIER genType roundEven(genType const& x)
+ {
GLM_STATIC_ASSERT(detail::type::is_float, "'roundEven' only accept floating-point inputs");
return genType(int(x + genType(int(x) % 2)));
- }
+ }
*/
- // roundEven
- template
- GLM_FUNC_QUALIFIER genType roundEven(genType const & x)
- {
+ // roundEven
+ template
+ GLM_FUNC_QUALIFIER genType roundEven(genType const & x)
+ {
GLM_STATIC_ASSERT(detail::type::is_float, "'roundEven' only accept floating-point inputs");
int Integer = int(x);
@@ -179,328 +181,338 @@ namespace detail
VECTORIZE_VEC(roundEven)
- // ceil
- template
- GLM_FUNC_QUALIFIER genType ceil(genType const & x)
- {
+ // ceil
+ template
+ GLM_FUNC_QUALIFIER genType ceil(genType const & x)
+ {
GLM_STATIC_ASSERT(detail::type::is_float, "'ceil' only accept floating-point inputs");
- return ::std::ceil(x);
- }
+ return ::std::ceil(x);
+ }
VECTORIZE_VEC(ceil)
- // fract
- template
- GLM_FUNC_QUALIFIER genType fract
+ // fract
+ template
+ GLM_FUNC_QUALIFIER genType fract
(
genType const & x
)
- {
+ {
GLM_STATIC_ASSERT(detail::type::is_float, "'fract' only accept floating-point inputs");
- return x - ::std::floor(x);
- }
+ return x - ::std::floor(x);
+ }
VECTORIZE_VEC(fract)
- // mod
- template
- GLM_FUNC_QUALIFIER genType mod
+ // mod
+ template
+ GLM_FUNC_QUALIFIER genType mod
(
genType const & x,
genType const & y
)
- {
+ {
GLM_STATIC_ASSERT(detail::type::is_float, "'mod' only accept floating-point inputs");
- return x - y * floor(x / y);
- }
+ return x - y * floor(x / y);
+ }
VECTORIZE_VEC_SCA(mod)
VECTORIZE_VEC_VEC(mod)
- // modf
- template
- GLM_FUNC_QUALIFIER genType modf
+ // modf
+ template
+ GLM_FUNC_QUALIFIER genType modf
(
genType const & x,
genType & i
)
- {
+ {
GLM_STATIC_ASSERT(detail::type::is_float, "'modf' only accept floating-point inputs");
return std::modf(x, &i);
- }
+ }
- template
- GLM_FUNC_QUALIFIER detail::tvec2 modf
+ template
+ GLM_FUNC_QUALIFIER detail::tvec2 modf
(
detail::tvec2 const & x,
detail::tvec2 & i
)
- {
- return detail::tvec2(
- modf(x.x, i.x),
- modf(x.y, i.y));
- }
+ {
+ return detail::tvec2(
+ modf(x.x, i.x),
+ modf(x.y, i.y));
+ }
- template
- GLM_FUNC_QUALIFIER detail::tvec3 modf
+ template
+ GLM_FUNC_QUALIFIER detail::tvec3 modf
(
detail::tvec3 const & x,
detail::tvec3 & i
)
- {
- return detail::tvec3(
- modf(x.x, i.x),
- modf(x.y, i.y),
- modf(x.z, i.z));
- }
+ {
+ return detail::tvec3(
+ modf(x.x, i.x),
+ modf(x.y, i.y),
+ modf(x.z, i.z));
+ }
- template
- GLM_FUNC_QUALIFIER detail::tvec4 modf
+ template
+ GLM_FUNC_QUALIFIER detail::tvec4 modf
(
detail::tvec4 const & x,
detail::tvec4 & i
)
- {
- return detail::tvec4(
- modf(x.x, i.x),
- modf(x.y, i.y),
- modf(x.z, i.z),
- modf(x.w, i.w));
- }
+ {
+ return detail::tvec4(
+ modf(x.x, i.x),
+ modf(x.y, i.y),
+ modf(x.z, i.z),
+ modf(x.w, i.w));
+ }
//// Only valid if (INT_MIN <= x-y <= INT_MAX)
//// min(x,y)
//r = y + ((x - y) & ((x - y) >> (sizeof(int) *
- //CHAR_BIT - 1)));
+ //CHAR_BIT – 1)));
//// max(x,y)
//r = x - ((x - y) & ((x - y) >> (sizeof(int) *
//CHAR_BIT - 1)));
- // min
- template
- GLM_FUNC_QUALIFIER genType min
+ // min
+ template
+ GLM_FUNC_QUALIFIER genType min
(
genType const & x,
genType const & y
)
- {
+ {
GLM_STATIC_ASSERT(
detail::type::is_float ||
detail::type::is_int ||
detail::type::is_uint, "'min' only accept numbers");
- return x < y ? x : y;
- }
+ return x < y ? x : y;
+ }
VECTORIZE_VEC_SCA(min)
VECTORIZE_VEC_VEC(min)
- // max
- template
- GLM_FUNC_QUALIFIER genType max
+ // max
+ template
+ GLM_FUNC_QUALIFIER genType max
(
genType const & x,
genType const & y
)
- {
+ {
GLM_STATIC_ASSERT(
detail::type::is_float ||
detail::type::is_int ||
detail::type::is_uint, "'max' only accept numbers");
return x > y ? x : y;
- }
+ }
VECTORIZE_VEC_SCA(max)
VECTORIZE_VEC_VEC(max)
- // clamp
- template
- GLM_FUNC_QUALIFIER valType clamp
+ // clamp
+ template
+ GLM_FUNC_QUALIFIER valType clamp
(
valType const & x,
valType const & minVal,
valType const & maxVal
)
- {
+ {
GLM_STATIC_ASSERT(
detail::type::is_float ||
detail::type::is_int ||
detail::type::is_uint, "'clamp' only accept numbers");
- return min(maxVal, max(minVal, x));
- }
+ // Old implementation, less predictable branching
+ //if(x >= maxVal) return maxVal;
+ //if(x <= minVal) return minVal;
+ //return x;
+ return max(min(x, maxVal), minVal);
+ }
- template
- GLM_FUNC_QUALIFIER detail::tvec2 clamp
+ template
+ GLM_FUNC_QUALIFIER detail::tvec2 clamp
(
detail::tvec2 const & x,
typename detail::tvec2::value_type const & minVal,
typename detail::tvec2::value_type const & maxVal
)
- {
- return detail::tvec2(
- clamp(x.x, minVal, maxVal),
- clamp(x.y, minVal, maxVal));
- }
+ {
+ return detail::tvec2(
+ clamp(x.x, minVal, maxVal),
+ clamp(x.y, minVal, maxVal));
+ }
- template
- GLM_FUNC_QUALIFIER detail::tvec3 clamp
+ template
+ GLM_FUNC_QUALIFIER detail::tvec3 clamp
(
detail::tvec3 const & x,
typename detail::tvec3::value_type const & minVal,
typename detail::tvec3::value_type const & maxVal
)
- {
- return detail::tvec3(
- clamp(x.x, minVal, maxVal),
- clamp(x.y, minVal, maxVal),
- clamp(x.z, minVal, maxVal));
- }
+ {
+ return detail::tvec3(
+ clamp(x.x, minVal, maxVal),
+ clamp(x.y, minVal, maxVal),
+ clamp(x.z, minVal, maxVal));
+ }
- template
- GLM_FUNC_QUALIFIER detail::tvec4 clamp
+ template
+ GLM_FUNC_QUALIFIER detail::tvec4 clamp
(
detail::tvec4 const & x,
typename detail::tvec4