Changeset 451
- Timestamp:
- 07/30/15 19:47:02 (10 years ago)
- Location:
- trunk
- Files:
-
- 6 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nv/core/arcball.hh
r410 r451 50 50 vec3 vb = get_arcball_vector( nposition ); 51 51 52 m_angle = glm::acos( glm::min( 1.0f, glm::dot( va, vb ) ) );52 m_angle = math::acos( glm::min( 1.0f, glm::dot( va, vb ) ) ); 53 53 m_axis = glm::cross( va, vb ); 54 54 m_last = nposition; -
trunk/nv/core/random.hh
r443 r451 78 78 79 79 template < typename T > 80 tvec2<T> range( tvec2<T> min,tvec2<T> max )81 { 82 return tvec2<T>(80 math::tvec2<T> range( math::tvec2<T> min, math::tvec2<T> max ) 81 { 82 return math::tvec2<T>( 83 83 range_impl( min.x, max.x, is_floating_point<T>() ), 84 84 range_impl( min.y, max.y, is_floating_point<T>() ) … … 87 87 88 88 template < typename T > 89 tvec3<T> range( tvec3<T> min,tvec3<T> max )90 { 91 return tvec3<T>(89 math::tvec3<T> range( math::tvec3<T> min, math::tvec3<T> max ) 90 { 91 return math::tvec3<T>( 92 92 range_impl( min.x, max.x, is_floating_point<T>() ), 93 93 range_impl( min.y, max.y, is_floating_point<T>() ), … … 97 97 98 98 template < typename T > 99 tvec4<T> range( tvec4<T> min,tvec4<T> max )100 { 101 return tvec4<T>(99 math::tvec4<T> range( math::tvec4<T> min, math::tvec4<T> max ) 100 { 101 return math::tvec4<T>( 102 102 range_impl( min.x, max.x, is_floating_point<T>() ), 103 103 range_impl( min.y, max.y, is_floating_point<T>() ), -
trunk/nv/interface/camera.hh
r397 r451 26 26 void set_lookat( const vec3& eye, const vec3& focus, const vec3& up ) 27 27 { 28 m_view = glm::lookAt( eye, focus, up );28 m_view = math::look_at( eye, focus, up ); 29 29 m_position = eye; 30 30 m_direction = glm::normalize( focus - eye ); … … 33 33 void set_perspective( f32 fov, f32 aspect, f32 near, f32 far ) 34 34 { 35 m_projection = glm::perspective( glm::radians( fov ), aspect, near, far );35 m_projection = math::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 ) 38 38 { 39 m_projection = glm::ortho( left, right, bottom, top, near, far );39 m_projection = math::ortho( left, right, bottom, top, near, far ); 40 40 } 41 41 const mat4& get_projection() const … … 81 81 mat4 get_view_inv() const { return glm::inverse( get_view() ); } 82 82 mat4 get_model_inv() const { return glm::inverse( get_model() ); } 83 mat3 get_normal() const { return glm::transpose(glm::inverse( glm::mat3( get_modelview() ) ) ); }83 mat3 get_normal() const { return glm::transpose(glm::inverse( mat3( get_modelview() ) ) ); } 84 84 protected: 85 85 mat4 m_model; -
trunk/nv/interface/interpolation_raw.hh
r419 r451 68 68 { 69 69 case slot::TIME: return mat4(); 70 case slot::TRANSLATION: return glm::translate( mat4(), make_vec3( data ) );70 case slot::TRANSLATION: return math::translate( mat4(), make_vec3( data ) ); 71 71 case slot::ROTATION: return mat4_cast( make_quat_fixed( data ) ); 72 case slot::SCALE: return glm::scale( mat4(),make_vec3( data ) );72 case slot::SCALE: return math::scale( mat4(),make_vec3( data ) ); 73 73 case slot::TFORM: return transform( make_vec3( data ), make_quat_fixed( data + 3 ) ).extract(); 74 74 default: … … 88 88 case slot::TIME: break; 89 89 case slot::TRANSLATION: 90 translation = glm::translate( translation,make_vec3( data + offset ) ); break;90 translation = math::translate( translation,make_vec3( data + offset ) ); break; 91 91 case slot::ROTATION: 92 92 rotation = mat4_cast( make_quat_fixed( data + offset ) ); break; 93 93 case slot::SCALE: 94 scale = glm::scale( mat4(),make_vec3( data + offset ) ); break;94 scale = math::scale( mat4(),make_vec3( data + offset ) ); break; 95 95 case slot::TFORM: return transform( make_vec3( data + offset ), make_quat_fixed( data + offset + 3 ) ).extract(); 96 96 default: -
trunk/nv/stl/handle.hh
r440 r451 165 165 T* insert( handle h ) 166 166 { 167 NV_ASSERT( !exists( h ), "Reinserting handle!" ); 167 168 resize_indexes_to( index_type( h.index() ) ); 168 169 m_indexes[ h.index() ] = index_type( m_data.size() ); -
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 } -
trunk/nv/stl/range.hh
r406 r451 66 66 template < typename T > 67 67 class range2d_iterator_base 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) {}68 : public forward_iterator_base< math::tvec2<T> > 69 { 70 public: 71 typedef forward_iterator_base< math::tvec2<T> > base_class; 72 73 range2d_iterator_base( math::tvec2<T> value, T min, T max ) 74 : forward_iterator_base< math::tvec2<T> >( value ), m_min(min), m_max(max) {} 75 75 range2d_iterator_base& operator++ () 76 76 { -
trunk/src/core/random.cc
r443 r451 110 110 nv::vec2 nv::random::precise_unit_vec2() 111 111 { 112 f loat angle = frand( glm::pi<float>() * 2.f );113 return vec2( glm::cos( angle ), glm::sin( angle ) );112 f32 angle = frand( math::pi<f32>() * 2.f ); 113 return vec2( math::cos( angle ), math::sin( angle ) ); 114 114 } 115 115 116 116 nv::vec3 nv::random::precise_unit_vec3() 117 117 { 118 f loatcos_theta = frange( -1.0f, 1.0f );119 f loat sin_theta = glm::sqrt( 1.0f - cos_theta * cos_theta );120 f loat phi = frand( 2 * glm::pi<float>() );118 f32 cos_theta = frange( -1.0f, 1.0f ); 119 f32 sin_theta = math::sqrt( 1.0f - cos_theta * cos_theta ); 120 f32 phi = frand( 2 * math::pi<f32>() ); 121 121 return vec3( 122 sin_theta * glm::sin(phi),123 sin_theta * glm::cos(phi),122 sin_theta * math::sin(phi), 123 sin_theta * math::cos(phi), 124 124 cos_theta 125 125 ); … … 128 128 nv::vec2 nv::random::fast_disk_point() 129 129 { 130 f loatr1 = frand();131 f loatr2 = frand();130 f32 r1 = frand(); 131 f32 r2 = frand(); 132 132 if ( r1 > r2 ) swap( r1, r2 ); 133 f loat rf = 2*glm::pi<float>()*(r1/r2);134 return vec2( r2* glm::cos( rf ), r2*glm::sin( rf ) );133 f32 rf = 2* math::pi<f32>()*(r1/r2); 134 return vec2( r2*math::cos( rf ), r2*math::sin( rf ) ); 135 135 } 136 136 137 137 nv::vec2 nv::random::precise_disk_point() 138 138 { 139 f loat r = glm::sqrt( frand() );140 f loat rangle = frand( glm::pi<float>() );141 return vec2( r* glm::cos( rangle ), r*glm::sin( rangle ) );139 f32 r = math::sqrt( frand() ); 140 f32 rangle = frand( math::pi<f32>() ); 141 return vec2( r*math::cos( rangle ), r*math::sin( rangle ) ); 142 142 } 143 143 144 144 nv::vec3 nv::random::fast_sphere_point() 145 145 { 146 f loatrad = frand();147 f loat pi = glm::pi<float>();148 f loat phi = glm::asin( frange( -1.0f, 1.0f ) ) + pi*.5f;149 f loat theta = frange( 0.0f, 2 * glm::pi<float>() );150 f loat sin_phi = glm::sin( phi );146 f32 rad = frand(); 147 f32 pi = math::pi<f32>(); 148 f32 phi = math::asin( frange( -1.0f, 1.0f ) ) + pi*.5f; 149 f32 theta = frange( 0.0f, 2 * math::pi<f32>() ); 150 f32 sin_phi = math::sin( phi ); 151 151 return vec3( 152 rad * glm::cos(theta) * sin_phi,153 rad * glm::sin(theta) * sin_phi,154 rad * glm::cos(phi)152 rad * math::cos(theta) * sin_phi, 153 rad * math::sin(theta) * sin_phi, 154 rad * math::cos(phi) 155 155 ); 156 156 } … … 158 158 nv::vec3 nv::random::precise_sphere_point() 159 159 { 160 f loat radius = glm::pow( frand(), 1.f/3.f );161 f loatcos_theta = frange( -1.0f, 1.0f );162 f loat sin_theta = glm::sqrt( 1.0f - cos_theta * cos_theta );163 f loat phi = frange( 0.0f, 2 * glm::pi<float>() );160 f32 radius = math::pow( frand(), 1.f/3.f ); 161 f32 cos_theta = frange( -1.0f, 1.0f ); 162 f32 sin_theta = math::sqrt( 1.0f - cos_theta * cos_theta ); 163 f32 phi = frange( 0.0f, 2 * math::pi<f32>() ); 164 164 return vec3( 165 radius * sin_theta * glm::sin(phi),166 radius * sin_theta * glm::cos(phi),165 radius * sin_theta * math::sin(phi), 166 radius * sin_theta * math::cos(phi), 167 167 radius * cos_theta 168 168 ); … … 199 199 } 200 200 201 nv::vec2 nv::random::fast_hollow_disk_point( f loat iradius, floatoradius )202 { 203 f loatidist2 = iradius * iradius;204 f loatodist2 = oradius * oradius;205 f loat rdist = glm::sqrt( frange( idist2, odist2 ) );201 nv::vec2 nv::random::fast_hollow_disk_point( f32 iradius, f32 oradius ) 202 { 203 f32 idist2 = iradius * iradius; 204 f32 odist2 = oradius * oradius; 205 f32 rdist = math::sqrt( frange( idist2, odist2 ) ); 206 206 return rdist * precise_unit_vec2(); 207 207 } 208 208 209 nv::vec2 nv::random::precise_hollow_disk_point( f loat iradius, floatoradius )209 nv::vec2 nv::random::precise_hollow_disk_point( f32 iradius, f32 oradius ) 210 210 { 211 211 return fast_hollow_disk_point( iradius, oradius ); 212 212 } 213 213 214 nv::vec3 nv::random::fast_hollow_sphere_point( f loat iradius, floatoradius )215 { 216 f loatidist3 = iradius * iradius * iradius;217 f loatodist3 = oradius * oradius * oradius;218 f loat rdist = glm::pow( frange( idist3, odist3 ), 1.f/3.f );214 nv::vec3 nv::random::fast_hollow_sphere_point( f32 iradius, f32 oradius ) 215 { 216 f32 idist3 = iradius * iradius * iradius; 217 f32 odist3 = oradius * oradius * oradius; 218 f32 rdist = math::pow( frange( idist3, odist3 ), 1.f/3.f ); 219 219 return rdist * precise_unit_vec3(); 220 220 } 221 221 222 nv::vec3 nv::random::precise_hollow_sphere_point( f loat iradius, floatoradius )222 nv::vec3 nv::random::precise_hollow_sphere_point( f32 iradius, f32 oradius ) 223 223 { 224 224 return fast_hollow_sphere_point( iradius, oradius ); … … 232 232 vec2 opoint2 = opoint * opoint; 233 233 vec2 odir = glm::normalize( opoint ); 234 f loatodist2 = opoint2.x + opoint2.y;235 236 f loatlow = iradii2.y * opoint2.x + iradii2.x * opoint2.y;237 f loatidist2 = ((iradii2.x * iradii2.y) / low ) * odist2;238 239 f loat rdist = glm::sqrt( frange( idist2, odist2 ) );234 f32 odist2 = opoint2.x + opoint2.y; 235 236 f32 low = iradii2.y * opoint2.x + iradii2.x * opoint2.y; 237 f32 idist2 = ((iradii2.x * iradii2.y) / low ) * odist2; 238 239 f32 rdist = math::sqrt( frange( idist2, odist2 ) ); 240 240 return odir * rdist; 241 241 } … … 252 252 vec3 opoint2 = opoint * opoint; 253 253 vec3 odir = glm::normalize( opoint ); 254 f loatodist2 = opoint2.x + opoint2.y + opoint2.z;255 256 f loatlow =254 f32 odist2 = opoint2.x + opoint2.y + opoint2.z; 255 256 f32 low = 257 257 iradii2.y * iradii2.z * opoint2.x + 258 258 iradii2.x * iradii2.z * opoint2.y + 259 259 iradii2.x * iradii2.y * opoint2.z; 260 f loatidist2 = ((iradii2.x * iradii2.y * iradii2.z) / low ) * odist2;261 262 f loat odist3 = odist2 * glm::sqrt( odist2 );263 f loat idist3 = idist2 * glm::sqrt( idist2 );264 265 f loat rdist = glm::pow( frange( idist3, odist3 ), 1.f/3.f );260 f32 idist2 = ((iradii2.x * iradii2.y * iradii2.z) / low ) * odist2; 261 262 f32 odist3 = odist2 * math::sqrt( odist2 ); 263 f32 idist3 = idist2 * math::sqrt( idist2 ); 264 265 f32 rdist = math::pow( frange( idist3, odist3 ), 1.f/3.f ); 266 266 return odir * rdist; 267 267 } -
trunk/src/engine/particle_engine.cc
r439 r451 231 231 datap->plane_normal = normalize_safe( datap->plane_normal, vec3(0.0f,1.0f,0.0f) ); 232 232 datap->bounce = table->get<float>("bounce", 0.0f ); 233 datap->distance = -glm::dot( datap->plane_normal, datap->plane_point ) / glm::sqrt(glm::dot( datap->plane_normal, datap->plane_normal ) );233 datap->distance = -glm::dot( datap->plane_normal, datap->plane_point ) / math::sqrt(glm::dot( datap->plane_normal, datap->plane_normal ) ); 234 234 return true; 235 235 } … … 411 411 edata.dir = glm::normalize( element.get<vec3>("direction", vec3(0,1,0) ) ); 412 412 413 edata.odir = glm::vec3( 0, 0, 1 );413 edata.odir = vec3( 0, 0, 1 ); 414 414 if ( edata.dir != vec3( 0, 1, 0 ) && edata.dir != vec3( 0, -1, 0 ) ) 415 415 edata.odir = glm::normalize( glm::cross( edata.dir, vec3( 0, 1, 0 ) ) ); edata.cdir = glm::cross( edata.dir, edata.odir ); … … 750 750 { 751 751 float emission_angle = glm::radians( edata.angle ); 752 float cos_theta = r.frange( glm::cos( emission_angle ), 1.0f );753 float sin_theta = glm::sqrt(1.0f - cos_theta * cos_theta );754 float phi = r.frange( 0.0f, 2* glm::pi<float>() );752 float cos_theta = r.frange( math::cos( emission_angle ), 1.0f ); 753 float sin_theta = math::sqrt(1.0f - cos_theta * cos_theta ); 754 float phi = r.frange( 0.0f, 2* math::pi<float>() ); 755 755 pinfo.velocity = orient * 756 ( edata.odir * ( glm::cos(phi) * sin_theta ) +757 edata.cdir * ( glm::sin(phi)*sin_theta ) +756 ( edata.odir * ( math::cos(phi) * sin_theta ) + 757 edata.cdir * ( math::sin(phi)*sin_theta ) + 758 758 edata.dir * cos_theta ); 759 759 } -
trunk/src/formats/assimp_loader.cc
r432 r451 139 139 vec2 s = assimp_st_cast( mesh->mTextureCoords[0][i] ); 140 140 141 glm::vec3 t_i = glm::normalize( t - n * glm::dot( n, t ) );141 vec3 t_i = glm::normalize( t - n * glm::dot( n, t ) ); 142 142 float det = ( glm::dot( glm::cross( n, t ), b ) ); 143 143 det = ( det < 0.0f ? -1.0f : 1.0f ); … … 440 440 // if ( node->mNumScalingKeys > 0 ) 441 441 // { 442 // nv::vec3 scale_vec0 = assimp_vec3_cast( node->mScalingKeys[0].mValue );443 // float scale_value = glm::length( glm::abs( scale_vec0 - nv::vec3(1,1,1) ) );442 // vec3 scale_vec0 = assimp_vec3_cast( node->mScalingKeys[0].mValue ); 443 // float scale_value = glm::length( math::abs( scale_vec0 - vec3(1,1,1) ) ); 444 444 // if ( node->mNumScalingKeys > 1 || scale_value > 0.001 ) 445 445 // { -
trunk/src/formats/md3_loader.cc
r431 r451 240 240 if ( !s_normal_ready ) 241 241 { 242 float pi = glm::pi<float>();242 float pi = math::pi<float>(); 243 243 float convert = (2 * pi) / 255.0f; 244 244 int n = 0; … … 246 246 { 247 247 float flat = lat * convert; 248 float sin_lat = glm::sin( flat );249 float cos_lat = glm::cos( flat );248 float sin_lat = math::sin( flat ); 249 float cos_lat = math::cos( flat ); 250 250 for ( int lng = 0; lng < 256; ++lng, ++n ) 251 251 { 252 252 float flng = lng * convert; 253 float sin_lng = glm::sin( flng );254 float cos_lng = glm::cos( flng );253 float sin_lng = math::sin( flng ); 254 float cos_lng = math::cos( flng ); 255 255 s_normal_cache[n].x = cos_lat * sin_lng; 256 256 // s_normal_cache[n].y = sin_lat * sin_lng; -
trunk/src/gfx/keyframed_mesh.cc
r430 r451 93 93 } 94 94 } 95 m_last_frame = static_cast<uint32>( glm::floor( tick_time ) + anim->get_start() );95 m_last_frame = static_cast<uint32>( math::floor( tick_time ) + anim->get_start() ); 96 96 m_next_frame = m_last_frame + 1; 97 97 if ( m_next_frame > static_cast<uint32>( anim->get_end() ) ) m_next_frame = static_cast<uint32>( anim->get_start() ); 98 m_interpolation = tick_time - glm::floor( tick_time );98 m_interpolation = tick_time - math::floor( tick_time ); 99 99 } 100 100 } -
trunk/src/lua/lua_glm.cc
r449 r451 56 56 static inline T unit() { return T( 1, 1, 1 ); } 57 57 static inline T construct( lua_State* L, int index ) { 58 typedef nv:: tvec2<typename T::value_type> vec2;58 typedef nv::math::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 nv:: tvec2<typename T::value_type> vec2;80 typedef nv:: tvec3<typename T::value_type> vec3;79 typedef nv::math::tvec2<typename T::value_type> vec2; 80 typedef nv::math::tvec3<typename T::value_type> vec3; 81 81 if ( lua_type( L, index ) == LUA_TUSERDATA ) 82 82 { … … 242 242 { 243 243 switch (len) { 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;244 case 2 : push_vec( L, nv::math::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::math::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::math::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 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;260 typedef nv::math::tvec2<typename T::value_type> vec2; 261 typedef nv::math::tvec3<typename T::value_type> vec3; 262 typedef nv::math::tvec4<typename T::value_type> vec4; 263 263 264 264 T* v = to_pvec<T>( L, 1 );
Note: See TracChangeset
for help on using the changeset viewer.