Changeset 451 for trunk/nv/stl/math.hh
- Timestamp:
- 07/30/15 19:47:02 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nv/stl/math.hh
r417 r451 11 11 12 12 #include <nv/common.hh> 13 14 #if NV_COMPILER == NV_GNUC 15 #pragma GCC system_header 16 #elif NV_COMPILER == NV_CLANG 17 #pragma clang system_header 18 #endif 19 20 #include <glm/glm.hpp> 21 #include <glm/gtc/matrix_transform.hpp> 22 #include <glm/gtc/type_ptr.hpp> 23 #include <glm/gtc/quaternion.hpp> 24 #include <glm/gtx/vector_angle.hpp> 25 26 namespace nv 27 { 28 #if 0 29 template < typename T > using tvec2 = ::glm::detail::tvec2<T, glm::precision::highp>; 30 template < typename T > using tvec3 = ::glm::detail::tvec3<T, glm::precision::highp>; 31 template < typename T > using tvec4 = ::glm::detail::tvec4<T, glm::precision::highp>; 32 template < typename T > using tmat2 = ::glm::detail::tmat2x2<T, glm::precision::highp>; 33 template < typename T > using tmat3 = ::glm::detail::tmat3x3<T, glm::precision::highp>; 34 template < typename T > using tmat4 = ::glm::detail::tmat4x4<T, glm::precision::highp>; 35 template < typename T > using tquat = ::glm::detail::tmat4x4<T, glm::precision::highp>; 36 #else 37 template < typename T > using tvec2 = ::glm::tvec2<T>; 38 template < typename T > using tvec3 = ::glm::tvec3<T>; 39 template < typename T > using tvec4 = ::glm::tvec4<T>; 40 template < typename T > using tmat2 = ::glm::tmat2x2<T>; 41 template < typename T > using tmat3 = ::glm::tmat3x3<T>; 42 template < typename T > using tmat4 = ::glm::tmat4x4<T>; 43 template < typename T > using tquat = ::glm::tmat4x4<T>; 44 #endif 45 46 using ::glm::mat3_cast; 47 using ::glm::mat4_cast; 48 using ::glm::quat_cast; 49 using ::glm::make_vec2; 50 using ::glm::make_vec3; 51 using ::glm::make_vec4; 52 using ::glm::make_mat2; 53 using ::glm::make_mat3; 54 using ::glm::make_mat4; 55 56 typedef tvec2<sint8> i8vec2; 57 typedef tvec3<sint8> i8vec3; 58 typedef tvec4<sint8> i8vec4; 59 60 typedef tvec2<sint16> i16vec2; 61 typedef tvec3<sint16> i16vec3; 62 typedef tvec4<sint16> i16vec4; 63 64 typedef tvec2<uint8> u8vec2; 65 typedef tvec3<uint8> u8vec3; 66 typedef tvec4<uint8> u8vec4; 67 68 typedef tvec2< float > vec2; 69 typedef tvec3< float > vec3; 70 typedef tvec4< float > vec4; 71 72 typedef tvec2< int > ivec2; 73 typedef tvec3< int > ivec3; 74 typedef tvec4< int > ivec4; 75 76 typedef tmat2< float > mat2; 77 typedef tmat3< float > mat3; 78 typedef tmat4< float > mat4; 79 80 typedef glm::quat quat; 13 #include <nv/stl/math/common.hh> 14 #include <nv/stl/math/constants.hh> 15 #include <nv/stl/math/matrix_transform.hh> 16 #include <nv/stl/math/cast.hh> 17 18 namespace nv { 81 19 82 20 template <typename T> … … 89 27 90 28 template <typename T> 91 struct datatype_traits< tvec2<T> >92 { 93 typedef tvec2<T> type;29 struct datatype_traits< math::tvec2<T> > 30 { 31 typedef math::tvec2<T> type; 94 32 typedef typename type::value_type base_type; 95 33 static const size_t size = 2; … … 97 35 98 36 template <typename T> 99 struct datatype_traits< tvec3<T> >100 { 101 typedef tvec3<T> type;37 struct datatype_traits< math::tvec3<T> > 38 { 39 typedef math::tvec3<T> type; 102 40 typedef typename type::value_type base_type; 103 41 static const size_t size = 3; … … 105 43 106 44 template <typename T> 107 struct datatype_traits< tvec4<T> >108 { 109 typedef tvec4<T> type;45 struct datatype_traits< math::tvec4<T> > 46 { 47 typedef math::tvec4<T> type; 110 48 typedef typename type::value_type base_type; 111 49 static const size_t size = 4; … … 282 220 283 221 template <typename T> 284 tvec3<T> normalize_safe(285 const tvec3<T>& x,286 const tvec3<T>& def = vec3()222 math::tvec3<T> normalize_safe( 223 const math::tvec3<T>& x, 224 const math::tvec3<T>& def = vec3() 287 225 ) 288 226 { 289 typename tvec3<T>::value_type sqr = x.x * x.x + x.y * x.y + x.z * x.z;227 typename math::tvec3<T>::value_type sqr = x.x * x.x + x.y * x.y + x.z * x.z; 290 228 return ( sqr > 0 ? x * glm::inversesqrt(sqr) : def ); 291 229 }
Note: See TracChangeset
for help on using the changeset viewer.