mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 19:08:55 -04:00
Josh's better version which handles multiple keys pointing to the same data.
This commit is contained in:
parent
1f37ba4d24
commit
56724b87ff
@ -57,20 +57,30 @@ print_data(const string &marker) {
|
|||||||
void OdeTriMeshData::
|
void OdeTriMeshData::
|
||||||
remove_data(OdeTriMeshData *data) {
|
remove_data(OdeTriMeshData *data) {
|
||||||
odetrimeshdata_cat.debug() << get_class_type() << "::remove_data(" << data->get_id() << ")" << "\n";
|
odetrimeshdata_cat.debug() << get_class_type() << "::remove_data(" << data->get_id() << ")" << "\n";
|
||||||
TriMeshDataMap::iterator iter = _tri_mesh_data_map.begin();
|
TriMeshDataMap::iterator iter;
|
||||||
int i = 0;
|
|
||||||
for (;iter != _tri_mesh_data_map.end(); ++iter) {
|
for (iter = _tri_mesh_data_map.begin();
|
||||||
odetrimeshdata_cat.debug() << i<< " iter->first=" << iter->first << " iter->second=" << iter->second <<"\n";
|
iter != _tri_mesh_data_map.end();
|
||||||
|
++iter) {
|
||||||
if ( iter->second == data ) {
|
if ( iter->second == data ) {
|
||||||
odetrimeshdata_cat.debug() << "erasing iter->first=" << iter->first << " iter->second=" << iter->second <<"\n";
|
break;
|
||||||
_tri_mesh_data_map.erase(iter);
|
}
|
||||||
return;
|
}
|
||||||
//iter = _tri_mesh_data_map.end();
|
|
||||||
|
while (iter != _tri_mesh_data_map.end()) {
|
||||||
|
_tri_mesh_data_map.erase(iter);
|
||||||
|
|
||||||
|
for (iter = _tri_mesh_data_map.begin();
|
||||||
|
iter != _tri_mesh_data_map.end();
|
||||||
|
++iter) {
|
||||||
|
if ( iter->second == data ) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
++i;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user