Changeset 512


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

Legend:

Unmodified
Added
Removed
  • trunk/nv/engine/default_resource_manager.hh

    r511 r512  
    3434                explicit default_resource_manager( context* context, bool clear_material_paths = true );
    3535
    36                 void initialize( lua::state* lua );
    3736                void add_path( const string_view& path );
    3837
     
    5857                const type_database* get_type_db() { return m_lua->get_type_data()->get_type_database(); }
    5958
    60                 void reload_data();
     59                virtual void initialize( lua::state* lua );
     60                virtual void reload_data();
    6161        protected:
    6262                lua::state*            m_lua;
  • trunk/nv/engine/model_manager.hh

    r511 r512  
    3333                PATTERN_CHECKER
    3434        };
     35
     36        struct model;
    3537
    3638        struct model_node
     
    7577                transform                      root;
    7678                shash64                        attach;
     79                flags< 32 >                    flags;
    7780        };
    7881
     
    8487                sint16                       parent_id;
    8588                transform                                        local;
    86                 uint32                       flags;
     89                uint32                       gflags;
    8790        };
    8891
     
    9396                shash64                        attach;
    9497                transform                                          local;
     98                flags< 32 >                    flags;
    9599        };
    96100
     
    137141                        result.attach = m->attach;
    138142                        result.local = m->root;
     143                        result.flags = m->flags;
    139144                        result.count = 0;
    140145                        flatten( result, m, rng, control, transform(), -1, map, gen_flags, 0, select );
     
    180185                                re.parent_id = parent_id;
    181186                                re.attach_id = m->attach_id;
    182                                 re.flags = parent_flags;
     187                                re.gflags = parent_flags;
    183188                                if ( map ) map->push_back( m );
    184189                                parent_id = sint16(id);
     
    186191                                if ( m == selected )
    187192                                {
    188                                         re.flags |= FMF_SELECTED;
     193                                        re.gflags |= FMF_SELECTED;
    189194                                        if ( gen_flags & FF_GENERATE_GHOST &&
    190195                                                        ( m->position.max != m->position.min ||
     
    198203                                                min_re.parent_id = parent_id;
    199204                                                min_re.attach_id = m->attach_id;
    200                                                 min_re.flags = parent_flags | FMF_RANGE_GHOST;
     205                                                min_re.gflags = parent_flags | FMF_RANGE_GHOST;
    201206
    202207                                                uint32 max_id = result.count++;
     
    207212                                                max_re.parent_id = parent_id;
    208213                                                max_re.attach_id = m->attach_id;
    209                                                 max_re.flags = parent_flags | FMF_RANGE_GHOST;
     214                                                max_re.gflags = parent_flags | FMF_RANGE_GHOST;
    210215                                        }
    211216                                }
  • trunk/nv/lua/lua_math.hh

    r503 r512  
    2323                template<> struct pass_traits< vec4 >  : metatable_pass_traits< vec4 >  { static const char* metatable() { return "vec4"; } };
    2424                template<> struct pass_traits< ivec2 > : metatable_pass_traits< ivec2 > { static const char* metatable() { return "ivec2"; } };
    25                 template<> struct pass_traits< ivec3 > : metatable_pass_traits< ivec3 > { static const char* metatable() { return "ivec2"; } };
    26                 template<> struct pass_traits< ivec4 > : metatable_pass_traits< ivec4 > { static const char* metatable() { return "ivec2"; } };
     25                template<> struct pass_traits< ivec3 > : metatable_pass_traits< ivec3 > { static const char* metatable() { return "ivec3"; } };
     26                template<> struct pass_traits< ivec4 > : metatable_pass_traits< ivec4 > { static const char* metatable() { return "ivec4"; } };
    2727
    2828                namespace detail
  • 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.