Changeset 512 for trunk/src


Ignore:
Timestamp:
08/03/16 20:55:13 (9 years ago)
Author:
epyon
Message:
  • lua_math fixes
  • flags part of model definition
Location:
trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/engine/default_resource_manager.cc

    r510 r512  
    2727        m_lua = lua;
    2828
     29        int below_already_registered;
    2930        m_lua->register_enum( "RND_LINEAR",     static_cast<int>( random_dist::LINEAR ) );
    3031        m_lua->register_enum( "RND_GAUSSIAN",   static_cast<int>( random_dist::GAUSSIAN ) );
  • trunk/src/engine/model_manager.cc

    r510 r512  
    88
    99#include "nv/lua/lua_math.hh"
     10#include "nv/lua/lua_flags.hh"
    1011
    1112using namespace nv;
     
    1617
    1718        model* gm = new model;
     19        gm->flags  = table.get< flags<32> >( "flags" );
    1820        gm->attach = table.get_string_hash_64( "attach" );
    1921        gm->root.set_position( table.get<vec3>( "root_position", vec3() ) );
  • trunk/src/lua/lua_math.cc

    r503 r512  
    154154int nlua_vec_add( lua_State* L )
    155155{
     156        T v;
    156157        if ( lua_type( L, 1 ) == LUA_TNUMBER )
    157                 push_vec<T>( L, static_cast<typename T::value_type>(lua_tonumber( L, 1 )) + to_vec<T>( L, 2 ) );
     158                v = static_cast<typename T::value_type>(lua_tonumber( L, 1 )) + to_vec<T>( L, 2 );
    158159        else
    159160                if ( lua_type( L, 2 ) == LUA_TNUMBER )
    160                         push_vec<T>( L, to_vec<T>( L, 1 ) + static_cast<typename T::value_type>(lua_tonumber( L, 2 )) );
    161                 else
    162                         push_vec<T>( L, to_vec<T>( L, 1 ) + to_vec<T>( L, 2 ) );
     161                        v = to_vec<T>( L, 1 ) + static_cast<typename T::value_type>( lua_tonumber( L, 2 ) );
     162                else
     163                        v = to_vec<T>( L, 1 ) + to_vec<T>( L, 2 );
     164        push_vec<T>( L, v );
    163165        return 1;
    164166}
     
    167169int nlua_vec_sub( lua_State* L )
    168170{
     171        T v;
    169172        if ( lua_type( L, 1 ) == LUA_TNUMBER )
    170                 push_vec<T>( L, static_cast<typename T::value_type>(lua_tonumber( L, 1 )) - to_vec<T>( L, 2 ) );
     173                v = static_cast<typename T::value_type>(lua_tonumber( L, 1 )) - to_vec<T>( L, 2 );
    171174        else
    172175                if ( lua_type( L, 2 ) == LUA_TNUMBER )
    173                         push_vec<T>( L, to_vec<T>( L, 1 ) - static_cast<typename T::value_type>(lua_tonumber( L, 2 )) );
    174                 else
    175                         push_vec<T>( L, to_vec<T>( L, 1 ) - to_vec<T>( L, 2 ) );
     176                        v = to_vec<T>( L, 1 ) - static_cast<typename T::value_type>(lua_tonumber( L, 2 ) );
     177                else
     178                        v = to_vec<T>( L, 1 ) - to_vec<T>( L, 2 );
     179        push_vec<T>( L, v );
    176180        return 1;
    177181}
     
    180184int nlua_vec_mul( lua_State* L )
    181185{
     186        T v;
    182187        if ( lua_type( L, 1 ) == LUA_TNUMBER )
    183                 push_vec<T>( L, static_cast<typename T::value_type>(lua_tonumber( L, 1 )) * to_vec<T>( L, 2 ) );
     188                v = static_cast<typename T::value_type>(lua_tonumber( L, 1 )) * to_vec<T>( L, 2 );
    184189        else
    185190                if ( lua_type( L, 2 ) == LUA_TNUMBER )
    186                         push_vec<T>( L, to_vec<T>( L, 1 ) * static_cast<typename T::value_type>(lua_tonumber( L, 2 )) );
    187                 else
    188                         push_vec<T>( L, to_vec<T>( L, 1 ) * to_vec<T>( L, 2 ) );
     191                        v = to_vec<T>( L, 1 ) * static_cast<typename T::value_type>(lua_tonumber( L, 2 ));
     192                else
     193                        v = to_vec<T>( L, 1 ) * to_vec<T>( L, 2 );
     194        push_vec<T>( L, v );
    189195        return 1;
    190196}
     
    193199int nlua_vec_div( lua_State* L )
    194200{
     201        T v;
    195202        if ( lua_type( L, 1 ) == LUA_TNUMBER )
    196                 push_vec<T>( L, static_cast<typename T::value_type>(lua_tonumber( L, 1 )) / to_vec<T>( L, 2 ) );
     203                v = static_cast<typename T::value_type>(lua_tonumber( L, 1 )) / to_vec<T>( L, 2 );
    197204        else
    198205                if ( lua_type( L, 2 ) == LUA_TNUMBER )
    199                         push_vec<T>( L, to_vec<T>( L, 1 ) / static_cast<typename T::value_type>(lua_tonumber( L, 2 )) );
    200                 else
    201                         push_vec<T>( L, to_vec<T>( L, 1 ) / to_vec<T>( L, 2 ) );
     206                        v = to_vec<T>( L, 1 ) / static_cast<typename T::value_type>(lua_tonumber( L, 2 ));
     207                else
     208                        v = to_vec<T>( L, 1 ) / to_vec<T>( L, 2 );
     209        push_vec<T>( L, v );
    202210        return 1;
    203211}
Note: See TracChangeset for help on using the changeset viewer.