Changeset 483 for trunk/src/gfx


Ignore:
Timestamp:
11/17/15 20:25:58 (10 years ago)
Author:
epyon
Message:
  • skeleton updates
File:
1 edited

Legend:

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

    r482 r483  
    6060        if ( bones.size() != m_matrix.size() )
    6161                m_matrix.resize( bones.size() );
     62}
     63
     64void nv::skeleton_transforms::assign( const data_node_list* node_data )
     65{
     66        NV_ASSERT( node_data, "!!!" );
     67        if ( m_transforms.size() != node_data->size() )
     68                m_transforms.resize( node_data->size() );
     69        for ( uint32 n = 0; n < node_data->size(); ++n )
     70        {
     71                const data_node_info& info = (*node_data)[ n ];
     72                m_transforms[n] = transform( info.transform );
     73        }
     74}
     75
     76void nv::skeleton_transforms::interpolate( const skeleton_transforms& a, const skeleton_transforms& b, float t )
     77{
     78        NV_ASSERT( a.size() == b.size(), "!!!" );
     79        if ( m_transforms.size() != a.size() )
     80                m_transforms.resize( a.size() );
     81        for ( uint32 n = 0; n < a.size(); ++n )
     82        {
     83                m_transforms[n] = nv::interpolate( a.m_transforms[n], b.m_transforms[n], t );
     84        }
     85}
     86
     87void nv::skeleton_transforms::assign( const skeleton_transforms& other )
     88{
     89        m_transforms.assign( other.m_transforms );
    6290}
    6391
Note: See TracChangeset for help on using the changeset viewer.