Changeset 397
- Timestamp:
- 06/12/15 19:27:20 (10 years ago)
- Location:
- trunk
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nv/base/capi.hh
r396 r397 31 31 NV_NOALIAS NV_RESTRICT void * __cdecl malloc( size_t ); 32 32 NV_NOALIAS NV_RESTRICT void * __cdecl realloc( void * _Memory, size_t _NewSize ); 33 NV_NOALIAS NV_RESTRICT void * __cdecl _aligned_malloc( size_t _Size, size_t _Alignment ); 34 NV_NOALIAS void __cdecl _aligned_free( void* _Block ); 35 // NV_NOALIAS NV_RESTRICT void * __cdecl _aligned_realloc( void* _Block, size_t _Size, size_t _Alignment ); 33 36 void * __cdecl memcpy( void * _Dst, const void * _Src, size_t _Size ); 34 37 void * __cdecl memmove( void * _Dst, const void * _Src, size_t _Size ); … … 49 52 extern void * __cdecl malloc( nv::size_t ); 50 53 extern void * __cdecl realloc( void * , nv::size_t ); 54 extern void * __cdecl aligned_alloc( nv::size_t, nv::size_t ); 51 55 extern void * __cdecl memcpy( void * , const void * , nv::size_t ); 52 56 extern void * __cdecl memmove( void * , const void * , nv::size_t ); … … 75 79 if ( p ) NV_CAPI_CALL( free )( p ); 76 80 } 81 82 inline void* nvaligned_malloc( size_t size, size_t alignment ) 83 { 84 #if NV_COMPILER == NV_MSVC 85 return NV_CAPI_CALL( _aligned_malloc )( size, alignment ); 86 #else 87 return NV_CAPI_CALL( aligned_alloc )( size, alignment ); 88 #endif 89 } 90 inline void nvaligned_free( void* p ) 91 { 92 #if NV_COMPILER == NV_MSVC 93 if ( p ) NV_CAPI_CALL( _aligned_free )( p ); 94 #else 95 if ( p ) NV_CAPI_CALL( free )( p ); 96 #endif 97 } 98 77 99 78 100 inline void* nvmemcpy( void *dest, const void *src, size_t count ) -
trunk/nv/base/common.hh
r396 r397 174 174 #define NV_TEMPLATE_FAIL(T,message) static_assert( NV_TYPE_FAIL(T), message ); 175 175 176 #ifdef min 177 #undef min 178 #endif 179 #ifdef max 180 #undef max 181 #endif 182 #ifdef isnan 183 #undef isnan 184 #endif 185 #ifdef isinf 186 #undef isinf 187 #endif 188 #ifdef log2 189 #undef log2 190 #endif 191 176 192 namespace nv 177 193 { -
trunk/nv/core/random.hh
r395 r397 35 35 36 36 template < typename T > 37 glm::detail::tvec2<T> range( glm::detail::tvec2<T> min, glm::detail::tvec2<T> max )37 tvec2<T> range( tvec2<T> min, tvec2<T> max ) 38 38 { 39 return glm::detail::tvec2<T>(39 return tvec2<T>( 40 40 range_impl( min.x, max.x, is_floating_point<T>() ), 41 41 range_impl( min.y, max.y, is_floating_point<T>() ) … … 44 44 45 45 template < typename T > 46 glm::detail::tvec3<T> range( glm::detail::tvec3<T> min, glm::detail::tvec3<T> max )46 tvec3<T> range( tvec3<T> min, tvec3<T> max ) 47 47 { 48 return glm::detail::tvec3<T>(48 return tvec3<T>( 49 49 range_impl( min.x, max.x, is_floating_point<T>() ), 50 50 range_impl( min.y, max.y, is_floating_point<T>() ), … … 54 54 55 55 template < typename T > 56 glm::detail::tvec4<T> range( glm::detail::tvec4<T> min, glm::detail::tvec4<T> max )56 tvec4<T> range( tvec4<T> min, tvec4<T> max ) 57 57 { 58 return glm::detail::tvec4<T>(58 return tvec4<T>( 59 59 range_impl( min.x, max.x, is_floating_point<T>() ), 60 60 range_impl( min.y, max.y, is_floating_point<T>() ), -
trunk/nv/core/transform.hh
r395 r397 25 25 void set_position( const vec3& a_position ) { m_position = a_position; } 26 26 void set_orientation( const quat& a_orientation ) { m_orientation = a_orientation; } 27 void set_orientation( const vec3& axis, float angle)28 { 29 m_orientation = glm::angleAxis( angle, axis );30 }27 void set_orientation( float radians, const vec3& axis ) 28 { // use glm::radians if degrees! 29 m_orientation = glm::angleAxis( radians, axis ); 30 } 31 31 32 32 const vec3& get_position() const { return m_position; } … … 42 42 m_position += absolute; 43 43 } 44 void rotate( const vec3& axis, f32 angle )45 { 46 quat temp( angle, axis );47 m_orientation = temp * m_orientation;48 }44 // void rotate( const vec3& axis, f32 angle ) 45 // { // use glm::radians if degrees! 46 // quat temp( angle, axis ); 47 // m_orientation = temp * m_orientation; 48 // } 49 49 void set( const mat4& from ) 50 50 { -
trunk/nv/interface/camera.hh
r395 r397 33 33 void set_perspective( f32 fov, f32 aspect, f32 near, f32 far ) 34 34 { 35 m_projection = glm::perspective( fov, aspect, near, far );35 m_projection = glm::perspective( glm::radians( fov ), aspect, near, far ); 36 36 } 37 37 void set_ortho( f32 left, f32 right, f32 bottom, f32 top, f32 near = -1.0f, f32 far = 1.0f ) -
trunk/nv/lua/lua_glm.hh
r395 r397 60 60 61 61 template< typename T > 62 struct pass_traits< glm::detail::tvec2<T> >62 struct pass_traits< tvec2<T> > 63 63 { 64 typedef glm::detail::tvec2<T> value_type;64 typedef tvec2<T> value_type; 65 65 static void push( lua_State *L, const value_type& p ) { detail::push_vec< value_type >( L, p ); } 66 66 static value_type to( lua_State *L, int index ) { return detail::to_vec< value_type >( L, index ); } … … 69 69 70 70 template< typename T > 71 struct pass_traits< glm::detail::tvec3<T> >71 struct pass_traits< tvec3<T> > 72 72 { 73 typedef glm::detail::tvec3<T> value_type;73 typedef tvec3<T> value_type; 74 74 static void push( lua_State *L, const value_type& p ) { detail::push_vec< value_type >( L, p ); } 75 75 static value_type to( lua_State *L, int index ) { return detail::to_vec< value_type >( L, index ); } … … 78 78 79 79 template< typename T > 80 struct pass_traits< glm::detail::tvec4<T> >80 struct pass_traits< tvec4<T> > 81 81 { 82 typedef glm::detail::tvec4<T> value_type;82 typedef tvec4<T> value_type; 83 83 static void push( lua_State *L, const value_type& p ) { detail::push_vec< value_type >( L, p ); } 84 84 static value_type to( lua_State *L, int index ) { return detail::to_vec< value_type >( L, index ); } -
trunk/nv/stl/math.hh
r395 r397 4 4 // This file is part of Nova libraries. 5 5 // For conditions of distribution and use, see copying.txt file in root folder. 6 // 7 // TODO: https://github.com/cinder/Cinder/commit/56fd3996be207ccca8063bc81648e199930c909d 6 8 7 9 #ifndef NV_STL_MATH_HH … … 18 20 #include <glm/glm.hpp> 19 21 #include <glm/gtc/matrix_transform.hpp> 20 #include <glm/gtc/matrix_access.hpp>21 22 #include <glm/gtc/type_ptr.hpp> 22 23 #include <glm/gtc/quaternion.hpp> 23 #include <glm/gtx/rotate_vector.hpp>24 24 #include <glm/gtx/vector_angle.hpp> 25 25 26 26 namespace nv 27 27 { 28 29 typedef glm::detail::tvec2<sint8> i8vec2; 30 typedef glm::detail::tvec3<sint8> i8vec3; 31 typedef glm::detail::tvec4<sint8> i8vec4; 32 33 typedef glm::detail::tvec2<sint16> i16vec2; 34 typedef glm::detail::tvec3<sint16> i16vec3; 35 typedef glm::detail::tvec4<sint16> i16vec4; 36 37 typedef glm::detail::tvec2<uint8> u8vec2; 38 typedef glm::detail::tvec3<uint8> u8vec3; 39 typedef glm::detail::tvec4<uint8> u8vec4; 40 41 typedef glm::vec2 vec2; 42 typedef glm::vec3 vec3; 43 typedef glm::vec4 vec4; 44 45 typedef glm::ivec2 ivec2; 46 typedef glm::ivec3 ivec3; 47 typedef glm::ivec4 ivec4; 48 49 typedef glm::mat2 mat2; 50 typedef glm::mat3 mat3; 51 typedef glm::mat4 mat4; 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 typedef tvec2<sint8> i8vec2; 47 typedef tvec3<sint8> i8vec3; 48 typedef tvec4<sint8> i8vec4; 49 50 typedef tvec2<sint16> i16vec2; 51 typedef tvec3<sint16> i16vec3; 52 typedef tvec4<sint16> i16vec4; 53 54 typedef tvec2<uint8> u8vec2; 55 typedef tvec3<uint8> u8vec3; 56 typedef tvec4<uint8> u8vec4; 57 58 typedef tvec2< float > vec2; 59 typedef tvec3< float > vec3; 60 typedef tvec4< float > vec4; 61 62 typedef tvec2< int > ivec2; 63 typedef tvec3< int > ivec3; 64 typedef tvec4< int > ivec4; 65 66 typedef tmat2< float > mat2; 67 typedef tmat3< float > mat3; 68 typedef tmat4< float > mat4; 52 69 53 70 typedef glm::quat quat; … … 62 79 63 80 template <typename T> 64 struct datatype_traits< glm::detail::tvec2<T> >65 { 66 typedef glm::detail::tvec2<T> type;81 struct datatype_traits< tvec2<T> > 82 { 83 typedef tvec2<T> type; 67 84 typedef typename type::value_type base_type; 68 85 static const size_t size = 2; … … 70 87 71 88 template <typename T> 72 struct datatype_traits< glm::detail::tvec3<T> >73 { 74 typedef glm::detail::tvec3<T> type;89 struct datatype_traits< tvec3<T> > 90 { 91 typedef tvec3<T> type; 75 92 typedef typename type::value_type base_type; 76 93 static const size_t size = 3; … … 78 95 79 96 template <typename T> 80 struct datatype_traits< glm::detail::tvec4<T> >81 { 82 typedef glm::detail::tvec4<T> type;97 struct datatype_traits< tvec4<T> > 98 { 99 typedef tvec4<T> type; 83 100 typedef typename type::value_type base_type; 84 101 static const size_t size = 4; … … 255 272 256 273 template <typename T> 257 glm::detail::tvec3<T> normalize_safe(258 const glm::detail::tvec3<T>& x,259 const glm::detail::tvec3<T>& def = vec3()274 tvec3<T> normalize_safe( 275 const tvec3<T>& x, 276 const tvec3<T>& def = vec3() 260 277 ) 261 278 { 262 typename glm::detail::tvec3<T>::value_type sqr = x.x * x.x + x.y * x.y + x.z * x.z;279 typename tvec3<T>::value_type sqr = x.x * x.x + x.y * x.y + x.z * x.z; 263 280 return ( sqr > 0 ? x * glm::inversesqrt(sqr) : def ); 264 281 } -
trunk/nv/stl/range.hh
r395 r397 66 66 template < typename T > 67 67 class range2d_iterator_base 68 : public forward_iterator_base< glm::detail::tvec2<T> >69 { 70 public: 71 typedef forward_iterator_base< glm::detail::tvec2<T> > base_class;72 73 range2d_iterator_base( glm::detail::tvec2<T> value, T min, T max )74 : forward_iterator_base< glm::detail::tvec2<T> >( value ), m_min(min), m_max(max) {}68 : public forward_iterator_base< tvec2<T> > 69 { 70 public: 71 typedef forward_iterator_base< tvec2<T> > base_class; 72 73 range2d_iterator_base( tvec2<T> value, T min, T max ) 74 : forward_iterator_base< tvec2<T> >( value ), m_min(min), m_max(max) {} 75 75 range2d_iterator_base& operator++ () 76 76 { -
trunk/nv/stl/rtti_types.hh
r395 r397 16 16 #include <nv/common.hh> 17 17 #include <nv/stl/math.hh> 18 #include <nv/stl/rtti_support.hh>19 18 20 19 NV_RTTI_DECLARE( void ) -
trunk/src/lua/lua_glm.cc
r395 r397 56 56 static inline T unit() { return T( 1, 1, 1 ); } 57 57 static inline T construct( lua_State* L, int index ) { 58 typedef glm::detail::tvec2<typename T::value_type> vec2;58 typedef nv::tvec2<typename T::value_type> vec2; 59 59 if ( lua_type( L, index ) == LUA_TUSERDATA ) 60 60 { … … 77 77 static inline T unit() { return T( 1, 1, 1, 1 ); } 78 78 static inline T construct( lua_State* L, int index ) { 79 typedef glm::detail::tvec2<typename T::value_type> vec2;80 typedef glm::detail::tvec3<typename T::value_type> vec3;79 typedef nv::tvec2<typename T::value_type> vec2; 80 typedef nv::tvec3<typename T::value_type> vec3; 81 81 if ( lua_type( L, index ) == LUA_TUSERDATA ) 82 82 { … … 214 214 { 215 215 T v = to_vec<T>( L, 1 ); 216 for ( size_t i = 0; i < v.length(); ++i )216 for ( int i = 0; i < v.length(); ++i ) 217 217 { 218 218 lua_pushnumber( L, v[i] ); … … 242 242 { 243 243 switch (len) { 244 case 2 : push_vec( L, glm::detail::tvec2<typename T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]] ) ); return 1;245 case 3 : push_vec( L, glm::detail::tvec3<typename T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]], (*v)[nlua_swizzel_lookup[key[2]]] ) ); return 1;246 case 4 : push_vec( L, glm::detail::tvec4<typename T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]], (*v)[nlua_swizzel_lookup[key[2]]], (*v)[nlua_swizzel_lookup[key[3]]] ) ); return 1;244 case 2 : push_vec( L, nv::tvec2<typename T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]] ) ); return 1; 245 case 3 : push_vec( L, nv::tvec3<typename T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]], (*v)[nlua_swizzel_lookup[key[2]]] ) ); return 1; 246 case 4 : push_vec( L, nv::tvec4<typename T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]], (*v)[nlua_swizzel_lookup[key[2]]], (*v)[nlua_swizzel_lookup[key[3]]] ) ); return 1; 247 247 default: break; 248 248 } … … 258 258 int nlua_vec_newindex( lua_State* L ) 259 259 { 260 typedef glm::detail::tvec2<typename T::value_type> vec2;261 typedef glm::detail::tvec3<typename T::value_type> vec3;262 typedef glm::detail::tvec4<typename T::value_type> vec4;260 typedef nv::tvec2<typename T::value_type> vec2; 261 typedef nv::tvec3<typename T::value_type> vec3; 262 typedef nv::tvec4<typename T::value_type> vec4; 263 263 264 264 T* v = to_pvec<T>( L, 1 ); -
trunk/src/sdl/sdl_audio.cc
r395 r397 75 75 if ( relative != vec3() ) 76 76 { 77 angle = -glm::orientedAngle( m_forward, glm::normalize( relative ), m_up);77 angle = glm::degrees( -glm::orientedAngle( m_forward, glm::normalize( relative ), m_up ) ); 78 78 distance = glm::clamp( 20.0f * glm::length( relative ), 0.0f, 255.0f ); 79 79 }
Note: See TracChangeset
for help on using the changeset viewer.