Changeset 427 for trunk/src/gfx/skeletal_mesh.cc
- Timestamp:
- 07/20/15 13:25:20 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gfx/skeletal_mesh.cc
r424 r427 23 23 for ( uint32 i = 0; i < bones->get_count(); ++i ) 24 24 { 25 m_bone_offset[i] = transform( bones->get_node(i)->data->get_transform() );25 m_bone_offset[i] = transform( (*bones)[i]->get_transform() ); 26 26 } 27 27 … … 93 93 void nv::skeletal_animation_entry_cpu::initialize() 94 94 { 95 for ( size_t i = 0; i < m_node_data->get_count(); ++i)96 { 97 if ( m_node_data->is_animated( i ))98 { 99 m_interpolation_key = m_node_data->get_node( i )->data->get_interpolation_key();95 for ( auto bone : *m_node_data ) 96 { 97 if ( bone->size() > 0 ) 98 { 99 m_interpolation_key = bone->get_interpolation_key(); 100 100 break; 101 101 } … … 112 112 for ( size_t i = 0; i < m_node_data->get_count(); ++i ) 113 113 { 114 raw_channel_interpolator interpolator( m_node_data->get_node( i )->data, m_interpolation_key );114 raw_channel_interpolator interpolator( (*m_node_data)[i], m_interpolation_key ); 115 115 skeleton[i] = interpolator.get< transform >( frame_num ); 116 116 } … … 132 132 for ( uint32 n = 0; n < node_count; ++n ) 133 133 { 134 const mesh_node_data* node = m_node_data->get_node(n);135 if ( node-> data->get_parent_id() != -1 )136 { 137 m_children[ node-> data->get_parent_id()].push_back( n );134 const data_channel_set* node = (*m_node_data)[n]; 135 if ( node->get_parent_id() != -1 ) 136 { 137 m_children[ node->get_parent_id()].push_back( n ); 138 138 } 139 139 } … … 156 156 if ( m_bone_ids[n] >= 0 ) 157 157 { 158 const mesh_node_data* node = m_node_data->get_node(n);159 nv::mat4 node_mat( node-> data->get_transform() );160 161 if ( node-> data && node->data->size() > 0 )162 { 163 raw_channel_interpolator interpolator( node ->data, m_interpolation_key );158 const data_channel_set* node = m_node_data->get_node(n); 159 nv::mat4 node_mat( node->get_transform() ); 160 161 if ( node->size() > 0 ) 162 { 163 raw_channel_interpolator interpolator( node, m_interpolation_key ); 164 164 node_mat = interpolator.get< mat4 >( anim_time ); 165 165 } … … 177 177 for ( nv::uint16 bi = 0; bi < bones->get_count(); ++bi ) 178 178 { 179 const mesh_node_data* bone = bones->get_node(bi);180 bone_names[ bone-> data->get_name() ] = bi;181 m_offsets[bi] = bone-> data->get_transform();179 const data_channel_set* bone = bones->get_node( bi ); 180 bone_names[ bone->get_name() ] = bi; 181 m_offsets[bi] = bone->get_transform(); 182 182 } 183 183 184 184 for ( uint32 n = 0; n < m_node_data->get_count(); ++n ) 185 185 { 186 const mesh_node_data* node = m_node_data->get_node(n);186 const data_channel_set* node = m_node_data->get_node( n ); 187 187 sint16 bone_id = -1; 188 188 189 auto bi = bone_names.find( node-> data->get_name() );189 auto bi = bone_names.find( node->get_name() ); 190 190 if ( bi != bone_names.end() ) 191 191 { … … 194 194 m_bone_ids[n] = bone_id; 195 195 196 if ( m_interpolation_key.size() == 0 && node-> data->size() > 0 )197 m_interpolation_key = node-> data->get_interpolation_key();196 if ( m_interpolation_key.size() == 0 && node->size() > 0 ) 197 m_interpolation_key = node->get_interpolation_key(); 198 198 199 199 } … … 205 205 // TODO: fix transforms, which are now embedded, 206 206 // see note in assimp_loader.cc:load_node 207 const mesh_node_data* node = m_node_data->get_node( node_id );208 mat4 node_mat( node-> data->get_transform() );209 210 if ( node-> data && node->data->size() > 0 )211 { 212 raw_channel_interpolator interpolator( node ->data, m_interpolation_key );207 const data_channel_set* node = m_node_data->get_node( node_id ); 208 mat4 node_mat( node->get_transform() ); 209 210 if ( node->size() > 0 ) 211 { 212 raw_channel_interpolator interpolator( node, m_interpolation_key ); 213 213 node_mat = interpolator.get< mat4 >( time ); 214 214 }
Note: See TracChangeset
for help on using the changeset viewer.