Changeset 417 for trunk/src/formats/md5_loader.cc
- Timestamp:
- 07/10/15 19:50:47 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/formats/md5_loader.cc
r416 r417 137 137 { 138 138 assert( m_type == MESH ); 139 data_channel_set_creator mesh; 139 data_channel_set* mesh = data_channel_set_creator::create( 4 ); 140 data_channel_set_creator maccess( mesh ); 140 141 141 142 uint32 num_verts = 0; … … 160 161 md5_vtx_t* tdata = nullptr; 161 162 { 162 data_channel_creator<md5_vtx_pnt> ch_pnt( num_verts ); 163 data_channel_creator<md5_vtx_t> ch_t( num_verts ); 164 data_channel_creator<md5_vtx_pntiw> ch_pntiw( num_verts ); 165 tdata = ch_t.data(); 166 mesh.add_channel( ch_pnt.release() ); 167 mesh.add_channel( ch_t.release() ); 168 // TODO: hack to prevent rendering 169 //ch_pntiw->m_count = 0; 170 mesh.add_channel( ch_pntiw.release() ); 163 maccess.add_channel<md5_vtx_pnt>( num_verts ); 164 tdata = maccess.add_channel<md5_vtx_t>( num_verts ).data(); 165 maccess.add_channel<md5_vtx_pntiw>( num_verts ); 171 166 } 172 167 weight_info.resize( num_verts ); … … 191 186 sstream >> num_tris; 192 187 193 data_channel_creator< index_u32 > ch_i( num_tris * 3 ); 194 uint32* vtx_i = reinterpret_cast< uint32* >( ch_i.raw_data() ); 188 uint32* vtx_i = reinterpret_cast< uint32* >( maccess.add_channel< index_u32 >( num_tris * 3 ).raw_data() ); 195 189 uint32 idx = 0; 196 190 … … 211 205 } 212 206 213 mesh.add_channel( ch_i.release() );214 207 } 215 208 else if ( command == "numweights" ) … … 236 229 } 237 230 238 data_channel_set* mdata = mesh.release(); 239 prepare_mesh( nodes, weight_info.size(), mdata, weights.data(), weight_info.data() ); 240 241 m_meshes[ num_meshes ] = mdata; 231 prepare_mesh( nodes, weight_info.size(), mesh, weights.data(), weight_info.data() ); 232 233 m_meshes[ num_meshes ] = mesh; 242 234 num_meshes++; 243 235 } // mesh … … 258 250 nodes[i].transform = mat4(); 259 251 nodes[i].target_id = -1; 260 nodes[i].data = new key_data; 261 data_channel_creator< md5_key_t > fc( num_frames ); 262 nodes[i].data->add_key_channel( fc.release() ); 263 next_line( sstream ); 252 nodes[i].data = key_channel_set_creator::create( 1 ); 253 key_channel_set_creator( nodes[i].data ).add_channel< md5_key_t >( num_frames ); 254 next_line( sstream ); 264 255 } 265 256 discard( sstream, "}" ); … … 340 331 { 341 332 assert( m_type == MESH ); 342 data_channel_ creator< md5_vtx_pnt > pnt ( const_cast< raw_data_channel* >( mdata->get_channel< md5_vtx_pnt >() ) );343 data_channel_ creator< md5_vtx_pntiw > pntiw( const_cast< raw_data_channel* >( mdata->get_channel< md5_vtx_pntiw >() ) );333 data_channel_access< md5_vtx_pnt > pnt ( const_cast< raw_data_channel* >( mdata->get_channel< md5_vtx_pnt >() ) ); 334 data_channel_access< md5_vtx_pntiw > pntiw( const_cast< raw_data_channel* >( mdata->get_channel< md5_vtx_pntiw >() ) ); 344 335 md5_vtx_pntiw* vtx_data = pntiw.data(); 345 336 md5_vtx_pnt* vtcs = pnt.data();
Note: See TracChangeset
for help on using the changeset viewer.