Ignore:
Timestamp:
07/14/15 20:19:52 (10 years ago)
Author:
epyon
Message:
  • animation - key_channel_set simplified to data_channel_set
  • animation - raw_channel_interpolator
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gfx/mesh_creator.cc

    r418 r419  
    1919        {
    2020                sint16 parent_id = m_data->m_nodes[i].parent_id;
    21                 key_channel_set* keys   = m_data->m_nodes[i].data;
    22                 key_channel_set* pkeys  = ( parent_id != -1 ? m_data->m_nodes[parent_id].data : nullptr );
     21                data_channel_set* keys   = m_data->m_nodes[i].data;
     22                data_channel_set* pkeys  = ( parent_id != -1 ? m_data->m_nodes[parent_id].data : nullptr );
    2323                size_t count     = ( keys ? keys->get_channel_size(0) : 0 );
    2424                size_t pcount    = ( pkeys ? pkeys->get_channel_size(0) : 0 );
     
    4646}
    4747
    48 // TODO: DELETE
    49 struct assimp_key_p  { float time; nv::vec3 position; };
    50 struct assimp_key_r  { float time; nv::quat rotation; };
    51 
    5248
    5349void nv::mesh_nodes_creator::merge_keys()
     
    5551        for ( size_t i = 0; i < m_data->get_count(); ++i )
    5652        {
    57                 key_channel_set* old_keys = m_data->m_nodes[i].data;
     53                data_channel_set* old_keys = m_data->m_nodes[i].data;
    5854                if ( old_keys && old_keys->size() > 0 )
    5955                {
     
    6965                        }
    7066
    71                         key_channel_set* new_keys = key_channel_set_creator::create( 1 );
    72                         key_channel_set_creator nk_access( new_keys );
     67                        data_channel_set* new_keys = data_channel_set_creator::create( 1 );
     68                        data_channel_set_creator nk_access( new_keys );
    7369                        data_channel_access< nv_key_transform > kt_channel( nk_access.add_channel<nv_key_transform>( max_keys ) );
    7470
    75                         data_descriptor final_key = old_keys->get_final_key();
     71                        raw_channel_interpolator interpolator( old_keys );
     72                        data_descriptor final_key = interpolator.get_interpolation_key();
    7673
    7774                        for ( unsigned n = 0; n < max_keys; ++n )
     
    8380                                {
    8481                                        size_t idx = nv::min( old_keys->get_channel_size(c) - 1, n );
    85                                         pkey += old_keys->get_raw( *old_keys->get_channel(c), idx, pkey );
    86                                 }
    87                                 kt_channel.data()[n].tform = extract_transform_raw( final_key, key );
     82                                        pkey += raw_channel_interpolator::get_raw( *old_keys->get_channel(c), idx, pkey );
     83                                }
     84                                kt_channel.data()[n].tform = extract_key_raw< nv::transform >( final_key, key );
    8885                        }
    8986
     
    106103                if ( node.data )
    107104                {
    108                         key_channel_set* kdata  = node.data;
     105                        data_channel_set* kdata  = node.data;
    109106                        for ( size_t c = 0; c < kdata->size(); ++c )
    110107                        {
     
    332329                }
    333330        }
    334         delete tangents2;
     331        delete[] tangents2;
    335332
    336333        data_channel_set_creator( m_data ).set_channel( n_channel_index, merge_channels( *n_channel, g_channel ) );
Note: See TracChangeset for help on using the changeset viewer.