Changeset 417 for trunk/src/formats/md3_loader.cc
- Timestamp:
- 07/10/15 19:50:47 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/formats/md3_loader.cc
r416 r417 287 287 } 288 288 289 nv::raw_data_channel* nv::md3_loader::load_tags(const string_view& tag )289 void nv::md3_loader::load_tags( raw_data_channel* channel, const string_view& tag ) 290 290 { 291 291 md3_t* md3 = reinterpret_cast< md3_t* >( m_md3 ); 292 data_channel_ creator< md3_key > result( uint32( md3->header.num_frames ));292 data_channel_access< md3_key > access( channel ); 293 293 // TODO: is this brain damaged in efficiency (loop nest order) or what? 294 294 for ( sint32 f = 0; f < md3->header.num_frames; ++f ) … … 304 304 vec3 axisy ( md3_vec3( rtag.axis[2] ) ); 305 305 vec3 origin ( md3_vec3( rtag.origin ) ); 306 result.data()[f].tform = transform( origin, quat( mat3( axisx, axisy, axisz ) ) );306 access.data()[f].tform = transform( origin, quat( mat3( axisx, axisy, axisz ) ) ); 307 307 } 308 308 } 309 309 310 310 } 311 return result.release();312 311 } 313 312 … … 353 352 } 354 353 355 data_channel_ creator< vtx_md3_pn > mc_pn( static_cast< uint32 >( num_verts * frame_count ));356 data_channel_creator< vtx_md3_t > mc_t( static_cast< uint32 >( num_verts) );357 data_channel_creator< index_u16 > ic( static_cast< uint32 >( index_count ) ); 358 vtx_md3_pn* vtx_pn = m c_pn.data();359 vtx_md3_t* vtx_t = mc_t.data();360 uint16* icp = &(ic.data()[0].index);354 data_channel_set_creator maccess( data ); 355 maccess.set_name( reinterpret_cast<char*>( md3->header.name ) ); 356 357 vtx_md3_pn* vtx_pn = maccess.add_channel< vtx_md3_pn >( static_cast< uint32 >( num_verts * frame_count ) ).data(); 358 vtx_md3_t* vtx_t = maccess.add_channel< vtx_md3_t >( static_cast< uint32 >( num_verts ) ).data(); 359 uint16* icp = reinterpret_cast< uint16* >( maccess.add_channel< index_u16 >( static_cast< uint32 >( index_count ) ).data() ); 361 360 362 361 uint32 index = 0; … … 413 412 } 414 413 415 data_channel_set_creator maccess( data );416 maccess.set_name( reinterpret_cast<char*>( md3->header.name ) );417 maccess.add_channel( mc_pn.release() );418 maccess.add_channel( mc_t.release() );419 maccess.add_channel( ic.release() );420 414 } 421 415 … … 435 429 nodes[i].parent_id = -1; 436 430 nodes[i].target_id = -1; 437 nodes[i].data = new key_data; 438 439 raw_data_channel* keys = load_tags( name ); 440 nodes[i].data->add_key_channel( keys ); 431 nodes[i].data = key_channel_set_creator::create( 1 ); 432 load_tags( key_channel_set_creator( nodes[i].data ).add_channel<md3_key>( uint32( md3->header.num_frames ) ).channel(), name ); 441 433 } 442 434 return new mesh_nodes_data( "tags", node_count, nodes );
Note: See TracChangeset
for help on using the changeset viewer.