Changeset 113 for trunk/src/lua/lua_glm.cc
- Timestamp:
- 06/09/13 16:08:04 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lua/lua_glm.cc
r85 r113 46 46 template < typename T > struct nlua_vec_constructor< T, 3 > { 47 47 static inline T construct( lua_State* L, int index ) { 48 typedef glm::detail::tvec2< T::value_type> vec2;48 typedef glm::detail::tvec2<typename T::value_type> vec2; 49 49 if ( lua_type( L, index ) == LUA_TUSERDATA ) 50 50 { … … 66 66 template < typename T > struct nlua_vec_constructor< T, 4 > { 67 67 static inline T construct( lua_State* L, int index ) { 68 typedef glm::detail::tvec2< T::value_type> vec2;69 typedef glm::detail::tvec3< T::value_type> vec3;68 typedef glm::detail::tvec2<typename T::value_type> vec2; 69 typedef glm::detail::tvec3<typename T::value_type> vec3; 70 70 if ( lua_type( L, index ) == LUA_TUSERDATA ) 71 71 { … … 108 108 int nlua_vec_new( lua_State* L ) 109 109 { 110 nlua_push_vec( L, nlua_vec_constructor<T,sizeof( T ) / sizeof( T::value_type )>::construct( L, 1 ) );110 nlua_push_vec( L, nlua_vec_constructor<T,sizeof( T ) / sizeof( typename T::value_type )>::construct( L, 1 ) ); 111 111 return 1; 112 112 } … … 115 115 int nlua_vec_call( lua_State* L ) 116 116 { 117 nlua_push_vec( L, nlua_vec_constructor<T,sizeof( T ) / sizeof( T::value_type )>::construct( L, 2 ) );117 nlua_push_vec( L, nlua_vec_constructor<T,sizeof( T ) / sizeof( typename T::value_type )>::construct( L, 2 ) ); 118 118 return 1; 119 119 } … … 130 130 { 131 131 if ( lua_type( L, 1 ) == LUA_TNUMBER ) 132 nlua_push_vec<T>( L, ( T::value_type)(lua_tonumber( L, 1 )) + nlua_to_vec<T>( L, 2 ) );132 nlua_push_vec<T>( L, (typename T::value_type)(lua_tonumber( L, 1 )) + nlua_to_vec<T>( L, 2 ) ); 133 133 else 134 134 if ( lua_type( L, 2 ) == LUA_TNUMBER ) 135 nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) + ( T::value_type)(lua_tonumber( L, 2 )) );135 nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) + (typename T::value_type)(lua_tonumber( L, 2 )) ); 136 136 else 137 137 nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) + nlua_to_vec<T>( L, 2 ) ); … … 143 143 { 144 144 if ( lua_type( L, 1 ) == LUA_TNUMBER ) 145 nlua_push_vec<T>( L, ( T::value_type)(lua_tonumber( L, 1 )) - nlua_to_vec<T>( L, 2 ) );145 nlua_push_vec<T>( L, (typename T::value_type)(lua_tonumber( L, 1 )) - nlua_to_vec<T>( L, 2 ) ); 146 146 else 147 147 if ( lua_type( L, 2 ) == LUA_TNUMBER ) 148 nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) - ( T::value_type)(lua_tonumber( L, 2 )) );148 nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) - (typename T::value_type)(lua_tonumber( L, 2 )) ); 149 149 else 150 150 nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) - nlua_to_vec<T>( L, 2 ) ); … … 156 156 { 157 157 if ( lua_type( L, 1 ) == LUA_TNUMBER ) 158 nlua_push_vec<T>( L, ( T::value_type)(lua_tonumber( L, 1 )) * nlua_to_vec<T>( L, 2 ) );158 nlua_push_vec<T>( L, (typename T::value_type)(lua_tonumber( L, 1 )) * nlua_to_vec<T>( L, 2 ) ); 159 159 else 160 160 if ( lua_type( L, 2 ) == LUA_TNUMBER ) 161 nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) * ( T::value_type)(lua_tonumber( L, 2 )) );161 nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) * (typename T::value_type)(lua_tonumber( L, 2 )) ); 162 162 else 163 163 nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) * nlua_to_vec<T>( L, 2 ) ); … … 169 169 { 170 170 if ( lua_type( L, 1 ) == LUA_TNUMBER ) 171 nlua_push_vec<T>( L, ( T::value_type)(lua_tonumber( L, 1 )) / nlua_to_vec<T>( L, 2 ) );171 nlua_push_vec<T>( L, (typename T::value_type)(lua_tonumber( L, 1 )) / nlua_to_vec<T>( L, 2 ) ); 172 172 else 173 173 if ( lua_type( L, 2 ) == LUA_TNUMBER ) 174 nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) / ( T::value_type)(lua_tonumber( L, 2 )) );174 nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) / (typename T::value_type)(lua_tonumber( L, 2 )) ); 175 175 else 176 176 nlua_push_vec<T>( L, nlua_to_vec<T>( L, 1 ) / nlua_to_vec<T>( L, 2 ) ); … … 217 217 { 218 218 switch (len) { 219 case 2 : nlua_push_vec( L, glm::detail::tvec2< T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]] ) ); return 1;220 case 3 : nlua_push_vec( L, glm::detail::tvec3< T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]], (*v)[nlua_swizzel_lookup[key[2]]] ) ); return 1;221 case 4 : nlua_push_vec( L, glm::detail::tvec4< 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;219 case 2 : nlua_push_vec( L, glm::detail::tvec2<typename T::value_type>( (*v)[nlua_swizzel_lookup[key[0]]], (*v)[nlua_swizzel_lookup[key[1]]] ) ); return 1; 220 case 3 : nlua_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; 221 case 4 : nlua_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; 222 222 default: break; 223 223 } … … 233 233 int nlua_vec_newindex( lua_State* L ) 234 234 { 235 typedef glm::detail::tvec2< T::value_type> vec2;236 typedef glm::detail::tvec3< T::value_type> vec3;237 typedef glm::detail::tvec4< T::value_type> vec4;235 typedef glm::detail::tvec2<typename T::value_type> vec2; 236 typedef glm::detail::tvec3<typename T::value_type> vec3; 237 typedef glm::detail::tvec4<typename T::value_type> vec4; 238 238 239 239 T* v = nlua_to_pvec<T>( L, 1 ); … … 247 247 if ( idx < vlen ) 248 248 { 249 (*v)[idx] = ( T::value_type)luaL_checknumber( L, 3 );249 (*v)[idx] = (typename T::value_type)luaL_checknumber( L, 3 ); 250 250 return 0; 251 251 }
Note: See TracChangeset
for help on using the changeset viewer.