Merge branch '0.9.2' into 0.9.3

This commit is contained in:
Christophe Riccio 2011-05-16 14:06:40 +01:00
commit 3863db233b
11 changed files with 73 additions and 50 deletions

View File

@ -17,8 +17,9 @@
// Dependency: // Dependency:
#include "../glm.hpp" #include "../glm.hpp"
#include "../gtx/quaternion.hpp"
#include "../gtx/epsilon.hpp" #include "../gtx/epsilon.hpp"
#include "../gtx/quaternion.hpp"
#include "../gtx/rotate_vector.hpp"
#if(defined(GLM_MESSAGES) && !defined(glm_ext)) #if(defined(GLM_MESSAGES) && !defined(glm_ext))
# pragma message("GLM: GLM_GTX_vector_angle extension included") # pragma message("GLM: GLM_GTX_vector_angle extension included")
@ -59,11 +60,11 @@ namespace glm
//! Returns the orientation of a two vector base from a normal. //! Returns the orientation of a two vector base from a normal.
//! Parameters need to be normalized. //! Parameters need to be normalized.
//! From GLM_GTX_vector_angle extension. //! From GLM_GTX_vector_angle extension.
template <typename vecType> template <template<typename> class vecType, typename T>
typename vecType::value_type orientedAngleFromRef( typename vecType<T> orientedAngleFromRef(
vecType const & x, vecType<T> const & x,
vecType const & y, vecType<T> const & y,
detail::tvec3<typename vecType::value_type> const & ref); detail::tvec3<T> const & ref);
///@} ///@}
}//namespace vector_angle }//namespace vector_angle

View File

@ -1,6 +1,6 @@
function(glmCreateTestGTC NAME) function(glmCreateTestGTC NAME)
set(SAMPLE_NAME test-${NAME}) set(SAMPLE_NAME test-${NAME})
add_executable(${SAMPLE_NAME} ${NAME}.cpp ../test.hpp ../test.cpp) add_executable(${SAMPLE_NAME} ${NAME}.cpp)
add_test( add_test(
NAME ${SAMPLE_NAME} NAME ${SAMPLE_NAME}

View File

@ -1,5 +1,7 @@
glmCreateTestGTC(gtx-bit) glmCreateTestGTC(gtx_bit)
glmCreateTestGTC(gtx-noise) glmCreateTestGTC(gtx_noise)
glmCreateTestGTC(gtx-simd-vec4) glmCreateTestGTC(gtx_simd_vec4)
glmCreateTestGTC(gtx-simd-mat4) glmCreateTestGTC(gtx_simd_mat4)
glmCreateTestGTC(gtx-ulp) glmCreateTestGTC(gtx_ulp)
glmCreateTestGTC(gtx_vector_angle)

View File

@ -0,0 +1,58 @@
///////////////////////////////////////////////////////////////////////////////////////////////////
// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
///////////////////////////////////////////////////////////////////////////////////////////////////
// Created : 2011-05-15
// Updated : 2011-05-15
// Licence : This source is under MIT licence
// File : test/gtx/vector_angle.cpp
///////////////////////////////////////////////////////////////////////////////////////////////////
#include <glm/glm.hpp>
#include <glm/gtx/vector_angle.hpp>
#include <iostream>
#include <limits>
int test_vector_angle_calls()
{
int Error = 0;
float AngleA = glm::angle(glm::vec3(1, 0, 0), glm::vec3(0, 1, 0));
float AngleB = glm::orientedAngle(glm::vec2(1, 0), glm::normalize(glm::vec2(1, 1)));
float AngleC = glm::orientedAngle(glm::vec2(0, 1), glm::normalize(glm::vec2(1, 1)));
float AngleD = glm::orientedAngleFromRef(glm::vec3(1, 0, 0), glm::vec3(0, 1, 0), glm::vec3(0, 0, 1));
return Error;
}
int test_vector_angle_orientedAngle()
{
int Error = 0;
float AngleA = glm::orientedAngle(glm::vec2(1, 0), glm::normalize(glm::vec2(1, 1)));
Error += AngleA == 45.f ? 0 : 1;
float AngleB = glm::orientedAngle(glm::vec2(0, 1), glm::normalize(glm::vec2(1, 1)));
Error += AngleB == -45.f ? 0 : 1;
float AngleC = glm::orientedAngle(glm::vec3(1, 0, 0), glm::normalize(glm::vec3(1, 1, 0)));
Error += AngleC == 45.f ? 0 : 1;
float AngleD = glm::orientedAngle(glm::vec3(0, 1, 0), glm::normalize(glm::vec3(1, 1, 0)));
Error += AngleD == -45.f ? 0 : 1;
float AngleE = glm::orientedAngle(glm::vec4(1, 0, 0, 0), glm::normalize(glm::vec4(1, 1, 0, 0)));
Error += AngleE == 45.f ? 0 : 1;
float AngleF = glm::orientedAngle(glm::vec4(0, 1, 0, 0), glm::normalize(glm::vec4(1, 1, 0, 0)));
Error += AngleF == -45.f ? 0 : 1;
return Error;
}
int main()
{
int Error = 0;
Error += test_vector_angle_orientedAngle();
Error += test_vector_angle_calls();
return Error;
}

View File

View File

@ -1,38 +0,0 @@
#ifndef glm_test_included
#define glm_test_included
#include <string>
namespace glm{
namespace test
{
class test
{
enum result
{
PASSED,
FAILED,
ASSERT,
STATIC,
MAX
};
public:
test(std::string const & Name, std::size_t const & Count);
result & operator[](std::size_t const & Index);
result const & operator[](std::size_t const & Index) const;
static int get(result const Result) const;
static void log(test const & Test);
protected:
std::string Name;
std::vertor<result> Tests;
static test Result[MAX];
};
}//namespace test
}//namespace glm
#endif//glm_test_included