Changeset 419 for trunk/src/gfx/skeletal_mesh.cc
- Timestamp:
- 07/14/15 20:19:52 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gfx/skeletal_mesh.cc
r418 r419 91 91 92 92 93 void nv::skeletal_animation_entry_cpu::initialize() 94 { 95 for ( size_t i = 0; i < m_node_data->get_count(); ++i ) 96 { 97 if ( m_node_data->get_node( i )->data ) 98 { 99 m_interpolation_key = m_node_data->get_node( i )->data->get_interpolation_key(); 100 break; 101 } 102 } 103 } 104 93 105 void nv::skeletal_animation_entry_cpu::update_skeleton( transform* skeleton, float time ) const 94 106 { … … 100 112 for ( size_t i = 0; i < m_node_data->get_count(); ++i ) 101 113 { 102 skeleton[i] = m_node_data->get_node(i)->data->get_transform( frame_num ); 114 raw_channel_interpolator interpolator( m_node_data->get_node( i )->data, m_interpolation_key ); 115 skeleton[i] = interpolator.get< transform >( frame_num ); 103 116 } 104 117 } … … 112 125 m_bone_ids = new sint16[ node_count ]; 113 126 127 NV_ASSERT( m_node_data, "node data empty!" ); 128 114 129 if ( !m_node_data->is_flat() ) 115 130 { … … 146 161 if ( node->data ) 147 162 { 148 node_mat = node->data->get_matrix( anim_time ); 163 raw_channel_interpolator interpolator( node->data, m_interpolation_key ); 164 node_mat = interpolator.get< mat4 >( anim_time ); 149 165 } 150 166 … … 177 193 } 178 194 m_bone_ids[n] = bone_id; 195 196 if ( m_interpolation_key.size() == 0 && node->data ) 197 m_interpolation_key = node->data->get_interpolation_key(); 198 179 199 } 180 200 m_prepared = true; … … 190 210 if ( node->data ) 191 211 { 192 node_mat = node->data->get_matrix( time ); 212 raw_channel_interpolator interpolator( node->data, m_interpolation_key ); 213 node_mat = interpolator.get< mat4 >( time ); 193 214 } 194 215
Note: See TracChangeset
for help on using the changeset viewer.