Ignore:
Timestamp:
07/20/15 13:25:20 (10 years ago)
Author:
epyon
Message:
  • cleanup of mesh_node_data
File:
1 edited

Legend:

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

    r424 r427  
    1818        for ( size_t i = 0; i < m_data->get_count(); ++i )
    1919        {
    20                 sint16 parent_id = m_data->m_nodes[i].data->get_parent_id();
    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 );
     20                data_channel_set* keys = m_data->m_data[i];
     21                sint16 parent_id = keys->get_parent_id();
     22                data_channel_set* pkeys  = ( parent_id != -1 ? m_data->m_data[parent_id] : nullptr );
    2323                size_t count     = ( keys ? keys->get_channel_size(0) : 0 );
    2424                size_t pcount    = ( pkeys ? pkeys->get_channel_size(0) : 0 );
     
    5151        for ( size_t i = 0; i < m_data->get_count(); ++i )
    5252        {
    53                 data_channel_set* old_keys = m_data->m_nodes[i].data;
     53                data_channel_set* old_keys = m_data->m_data[i];
    5454                if ( old_keys && old_keys->size() > 0 )
    5555                {
     
    8989
    9090                        delete old_keys;
    91                         m_data->m_nodes[i].data = new_keys;
     91                        m_data->m_data[i] = new_keys;
    9292                }
    9393        }
     
    102102        for ( size_t i = 0; i < m_data->get_count(); ++i )
    103103        {
    104                 mesh_node_data& node = m_data->m_nodes[i];
    105                 node.data->m_transform = pre_transform * node.data->m_transform * post_transform;
    106                 if ( node.data )
    107                 {
    108                         data_channel_set* kdata  = node.data;
    109                         for ( size_t c = 0; c < kdata->size(); ++c )
    110                         {
    111                                 raw_data_channel_access channel( kdata, c );
    112                                 size_t key_size = channel.element_size();
    113                                 for ( size_t n = 0; n < channel.size(); ++n )
    114                                 {
    115                                         transform_key_raw( kdata->get_channel( c )->descriptor(), channel.raw_data() + n * key_size, scale, r33, ri33 );
    116                                 }
     104                data_channel_set* node = m_data->m_data[i];
     105                node->m_transform = pre_transform * node->m_transform * post_transform;
     106
     107                for ( size_t c = 0; c < node->size(); ++c )
     108                {
     109                        raw_data_channel_access channel( node, c );
     110                        size_t key_size = channel.element_size();
     111                        for ( size_t n = 0; n < channel.size(); ++n )
     112                        {
     113                                transform_key_raw( node->get_channel( c )->descriptor(), channel.raw_data() + n * key_size, scale, r33, ri33 );
    117114                        }
    118115                }
     
    458455        if ( index < m_pack->get_count() )
    459456        {
    460                 data_channel_set_creator( &m_pack->m_meshes[m_pack->m_count - 1] ).move_to( m_pack->m_meshes[index] );
     457
     458                m_pack->m_meshes[index] = move( m_pack->m_meshes[m_pack->m_count - 1] );
    461459                m_pack->m_count--;
    462460        }
Note: See TracChangeset for help on using the changeset viewer.