Changeset 526 for trunk


Ignore:
Timestamp:
10/29/16 01:35:14 (9 years ago)
Author:
epyon
Message:
  • physics level mesh implementation
Location:
trunk/src
Files:
2 edited

Legend:

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

    r524 r526  
    3838                else
    3939                        gm->bind_data = m_animator_binds->add( id, new animator_bind_data( poses->get_tree(), *def_data.lock()->node_data ) );
     40        }
     41
     42        if ( table.has_field( "phx_mesh" ) )
     43        {
     44                nv::string128 cpath( table.get_string128( "phx_mesh" ) );
     45                gm->phx_mesh = m_mesh_datas->get_path( cpath, def_data );
    4046        }
    4147
  • trunk/src/gfx/mesh_creator.cc

    r520 r526  
    5959void nv::mesh_nodes_creator::transform( float scale, const mat3& r33 )
    6060{
     61        if ( !m_data ) return;
    6162        mat3 ri33 = math::inverse( r33 );
    6263        mat4 pre_transform ( scale * r33 );
     
    7980void nv::data_node_list_creator::transform( float scale, const mat3& r33 )
    8081{
     82        if ( !m_data ) return;
    8183        mat3 ri33 = math::inverse( r33 );
    8284        mat4 pre_transform( scale * r33 );
     
    114116void nv::mesh_data_creator::transform( const vec3& pos, const mat3& r33, float scale /*= 1.0f */ )
    115117{
     118        if ( !m_data ) return;
    116119        vec3 vertex_offset = pos;
    117120        mat3 vertex_transform = scale * r33;
     
    298301void nv::mesh_data_creator::rotate_quadrant( uint8 rotation )
    299302{
     303        if ( !m_data ) return;
    300304        if ( rotation % 4 == 0 ) return;
    301305        NV_ASSERT( m_pos_type == FLOAT_VECTOR_3, "Unsupported position vector type!" );
     
    350354void nv::mesh_data_creator::mirror( bool x, bool z )
    351355{
     356        if ( !m_data ) return;
    352357        if ( !x && !z ) return;
    353358        NV_ASSERT( m_pos_type == FLOAT_VECTOR_3, "Unsupported position vector type!" );
     
    433438void nv::mesh_data_creator::initialize()
    434439{
    435         NV_ASSERT( m_data, "bad parameter!" );
     440//      NV_ASSERT( m_data, "bad parameter!" );
    436441        m_pos_channel = nullptr;
    437442        m_nrm_channel = nullptr;
     
    452457        m_idx_type = NONE;
    453458
     459        if ( m_data )
    454460        for ( uint32 c = 0; c < m_data->size(); ++c )
    455461        {
Note: See TracChangeset for help on using the changeset viewer.