Changeset 428 for trunk/src/gfx/skeletal_mesh.cc
- Timestamp:
- 07/20/15 13:59:34 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gfx/skeletal_mesh.cc
r427 r428 18 18 19 19 m_pntdata.assign( pnt_chan->data_cast< md5_vtx_pnt >(), pnt_chan->size() ); 20 m_bone_offset.resize( bones-> get_count() );21 m_transform.resize( bones-> get_count() );22 23 for ( uint32 i = 0; i < bones-> get_count(); ++i )20 m_bone_offset.resize( bones->size() ); 21 m_transform.resize( bones->size() ); 22 23 for ( uint32 i = 0; i < bones->size(); ++i ) 24 24 { 25 25 m_bone_offset[i] = transform( (*bones)[i]->get_transform() ); … … 110 110 111 111 float frame_num = new_time * m_node_data->get_frame_rate(); 112 for ( size_t i = 0; i < m_node_data-> get_count(); ++i )112 for ( size_t i = 0; i < m_node_data->size(); ++i ) 113 113 { 114 114 raw_channel_interpolator interpolator( (*m_node_data)[i], m_interpolation_key ); … … 122 122 m_children = nullptr; 123 123 m_offsets = nullptr; 124 uint32 node_count = m_node_data->get_count(); 125 m_bone_ids = new sint16[ node_count ]; 124 m_bone_ids = new sint16[m_node_data->size()]; 126 125 127 126 NV_ASSERT( m_node_data, "node data empty!" ); … … 129 128 if ( !m_node_data->is_flat() ) 130 129 { 131 m_children = new vector< uint32 >[ node_count];132 for ( uint32 n = 0; n < node_count; ++n )130 m_children = new vector< uint32 >[m_node_data->size()]; 131 for ( uint32 n = 0; n < m_node_data->size(); ++n ) 133 132 { 134 133 const data_channel_set* node = (*m_node_data)[n]; … … 153 152 } 154 153 155 for ( uint32 n = 0; n < m_node_data-> get_count(); ++n )154 for ( uint32 n = 0; n < m_node_data->size(); ++n ) 156 155 if ( m_bone_ids[n] >= 0 ) 157 156 { 158 const data_channel_set* node = m_node_data->get_node(n);157 const data_channel_set* node = (*m_node_data)[n]; 159 158 nv::mat4 node_mat( node->get_transform() ); 160 159 … … 174 173 if ( m_prepared ) return; 175 174 unordered_map< uint64, uint16 > bone_names; 176 m_offsets = new mat4[ bones-> get_count() ];177 for ( nv::uint16 bi = 0; bi < bones-> get_count(); ++bi )178 { 179 const data_channel_set* bone = bones->get_node( bi );175 m_offsets = new mat4[ bones->size() ]; 176 for ( nv::uint16 bi = 0; bi < bones->size(); ++bi ) 177 { 178 const data_channel_set* bone = (*bones)[ bi ]; 180 179 bone_names[ bone->get_name() ] = bi; 181 180 m_offsets[bi] = bone->get_transform(); 182 181 } 183 182 184 for ( uint32 n = 0; n < m_node_data-> get_count(); ++n )185 { 186 const data_channel_set* node = m_node_data->get_node( n );183 for ( uint32 n = 0; n < m_node_data->size(); ++n ) 184 { 185 const data_channel_set* node = (*m_node_data)[ n ]; 187 186 sint16 bone_id = -1; 188 187 … … 205 204 // TODO: fix transforms, which are now embedded, 206 205 // see note in assimp_loader.cc:load_node 207 const data_channel_set* node = m_node_data->get_node( node_id );206 const data_channel_set* node = ( *m_node_data )[ node_id ]; 208 207 mat4 node_mat( node->get_transform() ); 209 208 … … 242 241 if ( m_bone_data ) 243 242 { 244 m_transform = new mat4[ m_bone_data-> get_count() ];243 m_transform = new mat4[ m_bone_data->size() ]; 245 244 } 246 245 } … … 259 258 { 260 259 if ( m_bone_data ) 261 m_context->get_device()->set_opt_uniform_array( a_program, "nv_m_bones", m_transform, m_bone_data-> get_count() );260 m_context->get_device()->set_opt_uniform_array( a_program, "nv_m_bones", m_transform, m_bone_data->size() ); 262 261 } 263 262
Note: See TracChangeset
for help on using the changeset viewer.