Changeset 424 for trunk/src/formats/assimp_loader.cc
- Timestamp:
- 07/16/15 21:21:19 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/formats/assimp_loader.cc
r423 r424 108 108 { 109 109 if ( index >= m_mesh_count ) return nullptr; 110 data_channel_set* result = data_channel_set_creator::create ( 2 );110 data_channel_set* result = data_channel_set_creator::create_set( 2 ); 111 111 load_mesh_data( result, index ); 112 112 return result; … … 199 199 aiBone* bone = mesh->mBones[m]; 200 200 mat4 offset = assimp_mat4_cast( bone->mOffsetMatrix ); 201 // bones[m].name = bone->mName.data; 202 bones[m].name = hash_string< uint64 >( bone->mName.data ); 203 bones[m].data = nullptr; 204 bones[m].parent_id = -1; 205 // bones[m].target_id = -1; 206 bones[m].transform = offset; 201 bones[m].data = data_channel_set_creator::create_set( 0 ); 202 data_channel_set_creator access( bones[m].data ); 203 access.set_name( hash_string< uint64 >( bone->mName.data ) ); 204 access.set_transform( offset ); 207 205 } 208 206 return true; … … 302 300 303 301 mesh_node_data& bone = bones[b]; 304 auto iname = names.find( bone. name);302 auto iname = names.find( bone.data->get_name() ); 305 303 if ( iname == names.end() ) 306 304 { … … 308 306 uint16 index = uint16( final_bones.size() ); 309 307 final_bones.push_back( bone ); 310 names[ bone. name] = index;308 names[ bone.data->get_name() ] = index; 311 309 translate[b] = index; 312 310 } … … 390 388 mesh_node_data& a_data = nodes[ this_id ]; 391 389 392 // a_data.name = name; 393 a_data.name = hash_string< uint64 >( name.c_str() ); 394 a_data.parent_id = parent_id; 390 if (anode) 391 create_keys( &a_data, anode ); 392 else 393 a_data.data = data_channel_set_creator::create_set( 0 ); 394 395 data_channel_set_creator access( a_data.data ); 396 access.set_name( hash_string< uint64 >( name.c_str() ) ); 397 access.set_parent_id( parent_id ); 395 398 // This value is ignored by the create_transformed_keys, but needed by create_direct_keys! 396 399 // TODO: find a common solution! 397 400 // This is bad because create_transformed_keys never uses node-transformations for 398 401 // node's without keys 399 a_data.transform = nv::assimp_mat4_cast( node->mTransformation ); 400 if (this_id == 0) 401 a_data.transform = mat4(); 402 a_data.data = nullptr; 403 404 if (anode) create_keys( &a_data, anode ); 402 access.set_transform( nv::assimp_mat4_cast( node->mTransformation ) ); 403 if ( this_id == 0 ) access.set_transform( mat4() ); 405 404 406 405 nv::sint16 next = this_id + 1; … … 421 420 } 422 421 423 data->data = data_channel_set_creator::create ( 2 );422 data->data = data_channel_set_creator::create_set( 2 ); 424 423 data_channel_set_creator key_set( data->data ); 425 424 … … 465 464 const aiScene* scene = reinterpret_cast<const aiScene*>( m_scene ); 466 465 bool has_bones = false; 467 data_channel_set* meshes = data_channel_set_creator::create_ array( m_mesh_count, 2 );466 data_channel_set* meshes = data_channel_set_creator::create_set_array( m_mesh_count, 2 ); 468 467 for ( size_t m = 0; m < m_mesh_count; ++m ) 469 468 {
Note: See TracChangeset
for help on using the changeset viewer.