Changeset 282 for trunk/src/formats/md3_loader.cc
- Timestamp:
- 07/10/14 00:29:34 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/formats/md3_loader.cc
r280 r282 275 275 bool nv::md3_loader::load( stream& source ) 276 276 { 277 m_tags.clear();278 279 277 m_md3 = (void*)(new md3_t); 280 278 if ( !read_md3( (md3_t*)m_md3, source ) ) … … 285 283 } 286 284 287 void nv::md3_loader::load_tags( transform_vector& t,const std::string& tag )285 nv::key_raw_channel* nv::md3_loader::load_tags( const std::string& tag ) 288 286 { 289 287 md3_t* md3 = (md3_t*)m_md3; 288 key_raw_channel* result = key_raw_channel::create<md3_key>( md3->header.num_frames ); 289 // TODO: is this brain damaged in efficiency (loop nest order) or what? 290 290 for ( sint32 f = 0; f < md3->header.num_frames; ++f ) 291 291 { … … 300 300 vec3 axisy ( md3_vec3( rtag.axis[2] ) ); 301 301 vec3 origin ( md3_vec3( rtag.origin ) ); 302 t.insert( transform( origin, quat( mat3( axisx, axisy, axisz )) ) );302 ((md3_key*)(result->data))[f].tform = transform( origin, quat( mat3( axisx, axisy, axisz ) ) ); 303 303 } 304 304 } 305 305 306 306 } 307 return result; 307 308 } 308 309 … … 408 409 const md3_tag_t& rtag = md3->tags[i + md3->header.num_tags]; 409 410 std::string name( (char*)(rtag.name) ); 410 load_tags( result->get_map()[ name ], name ); 411 nv::key_raw_channel* keys = load_tags( name ); 412 result->insert( name, keys ); 411 413 } 412 414 return result;
Note: See TracChangeset
for help on using the changeset viewer.