mirror of
https://github.com/g-truc/glm.git
synced 2024-11-27 02:34:35 +00:00
Merge branch '0.9.2' into 0.9.3
This commit is contained in:
commit
3863db233b
@ -17,8 +17,9 @@
|
||||
|
||||
// Dependency:
|
||||
#include "../glm.hpp"
|
||||
#include "../gtx/quaternion.hpp"
|
||||
#include "../gtx/epsilon.hpp"
|
||||
#include "../gtx/quaternion.hpp"
|
||||
#include "../gtx/rotate_vector.hpp"
|
||||
|
||||
#if(defined(GLM_MESSAGES) && !defined(glm_ext))
|
||||
# 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.
|
||||
//! Parameters need to be normalized.
|
||||
//! From GLM_GTX_vector_angle extension.
|
||||
template <typename vecType>
|
||||
typename vecType::value_type orientedAngleFromRef(
|
||||
vecType const & x,
|
||||
vecType const & y,
|
||||
detail::tvec3<typename vecType::value_type> const & ref);
|
||||
template <template<typename> class vecType, typename T>
|
||||
typename vecType<T> orientedAngleFromRef(
|
||||
vecType<T> const & x,
|
||||
vecType<T> const & y,
|
||||
detail::tvec3<T> const & ref);
|
||||
|
||||
///@}
|
||||
}//namespace vector_angle
|
||||
|
@ -1,6 +1,6 @@
|
||||
function(glmCreateTestGTC NAME)
|
||||
set(SAMPLE_NAME test-${NAME})
|
||||
add_executable(${SAMPLE_NAME} ${NAME}.cpp ../test.hpp ../test.cpp)
|
||||
add_executable(${SAMPLE_NAME} ${NAME}.cpp)
|
||||
|
||||
add_test(
|
||||
NAME ${SAMPLE_NAME}
|
||||
|
@ -1,5 +1,7 @@
|
||||
glmCreateTestGTC(gtx-bit)
|
||||
glmCreateTestGTC(gtx-noise)
|
||||
glmCreateTestGTC(gtx-simd-vec4)
|
||||
glmCreateTestGTC(gtx-simd-mat4)
|
||||
glmCreateTestGTC(gtx-ulp)
|
||||
glmCreateTestGTC(gtx_bit)
|
||||
glmCreateTestGTC(gtx_noise)
|
||||
glmCreateTestGTC(gtx_simd_vec4)
|
||||
glmCreateTestGTC(gtx_simd_mat4)
|
||||
glmCreateTestGTC(gtx_ulp)
|
||||
glmCreateTestGTC(gtx_vector_angle)
|
||||
|
||||
|
58
test/gtx/gtx_vector_angle.cpp
Normal file
58
test/gtx/gtx_vector_angle.cpp
Normal 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;
|
||||
}
|
||||
|
||||
|
@ -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
|
Loading…
Reference in New Issue
Block a user