mirror of
https://github.com/g-truc/glm.git
synced 2024-11-23 09:14:34 +00:00
Merge branch '0.9.2' into 0.9.3
This commit is contained in:
commit
3863db233b
@ -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
|
||||||
|
@ -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}
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
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