Changeset 416 for trunk/src/formats/assimp_loader.cc
- Timestamp:
- 07/10/15 14:16:42 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/formats/assimp_loader.cc
r415 r416 6 6 7 7 #include "nv/formats/assimp_loader.hh" 8 9 #include "nv/interface/data_channel_access.hh" 8 10 #include "nv/stl/unordered_map.hh" 9 11 #include "nv/lib/assimp.hh" … … 103 105 } 104 106 105 mesh_data* nv::assimp_loader::release_mesh_data( size_t index /*= 0 */ )107 data_channel_set* nv::assimp_loader::release_mesh_data( size_t index /*= 0 */ ) 106 108 { 107 109 if ( index >= m_mesh_count ) return nullptr; 108 mesh_data* result = new mesh_data;110 data_channel_set* result = data_channel_set_creator::create( 2 ); 109 111 load_mesh_data( result, index ); 110 112 return result; 111 113 } 112 void nv::assimp_loader::load_mesh_data( mesh_data* data, size_t index )114 void nv::assimp_loader::load_mesh_data( data_channel_set* data, size_t index ) 113 115 { 114 116 const aiScene* scene = reinterpret_cast<const aiScene*>( m_scene ); 115 117 const aiMesh* mesh = scene->mMeshes[ index ]; 116 data->set_name( mesh->mName.data );117 118 118 119 bool skinned = mesh->mNumBones > 0; … … 180 181 } 181 182 } 182 data->add_channel( channel.release() ); 183 data->add_channel( ichannel.release() ); 183 184 data_channel_set_creator maccess( data ); 185 maccess.set_name( mesh->mName.data ); 186 maccess.add_channel( channel.release() ); 187 maccess.add_channel( ichannel.release() ); 184 188 } 185 189 … … 283 287 } 284 288 285 mesh_nodes_data* nv::assimp_loader::release_merged_bones( mesh_data* meshes )289 mesh_nodes_data* nv::assimp_loader::release_merged_bones( data_channel_set* meshes ) 286 290 { 287 291 const aiScene* scene = reinterpret_cast<const aiScene*>( m_scene ); … … 317 321 if ( m > 0 && bones.size() > 0 ) 318 322 { 319 data_channel_creator< assimp_skinned_vtx > channel( meshes[m].get_raw_channels()[0]);323 data_channel_creator< assimp_skinned_vtx > channel( const_cast< raw_data_channel* >( meshes[m].get_channel(0) ) ); 320 324 for ( unsigned v = 0; v < channel.size(); ++v ) 321 325 { … … 456 460 // } 457 461 // } 458 data->data->add_ channel( pchannel_creator.release() );459 data->data->add_ channel( rchannel_creator.release() );460 // data->data->add_ channel( schannel_creator.release() );462 data->data->add_key_channel( pchannel_creator.release() ); 463 data->data->add_key_channel( rchannel_creator.release() ); 464 // data->data->add_key_channel( schannel_creator.release() ); 461 465 } 462 466 … … 466 470 const aiScene* scene = reinterpret_cast<const aiScene*>( m_scene ); 467 471 bool has_bones = false; 468 mesh_data* meshes = new mesh_data[ m_mesh_count ];472 data_channel_set* meshes = data_channel_set_creator::create_array( m_mesh_count, 2 ); 469 473 for ( size_t m = 0; m < m_mesh_count; ++m ) 470 474 { 471 475 const aiMesh* mesh = scene->mMeshes[ m ]; 472 meshes[m].set_name( mesh->mName.data );476 data_channel_set_creator( &meshes[m] ).set_name( mesh->mName.data ); 473 477 if ( mesh->mNumBones > 0 ) has_bones = true; 474 478 load_mesh_data(&meshes[m],m);
Note: See TracChangeset
for help on using the changeset viewer.