Pinaise j'y arrive toujours pas.
Raaa misère je lacherais pas le morceau.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| bool trouve = false;
for( HashMapLoadMatMeshe::iterator itHMLoadMatMeshe = aHMLoadMatMeshe.begin() ; itHMLoadMatMeshe != aHMLoadMatMeshe.end(); ++itHMLoadMatMeshe )
{
if( itHMLoadMatMeshe->first->Compare(aMateriaux) )
trouve = true;
}
if(!trouve)
{
MesheGroupe * aMesheGroup = new MesheGroupe();
aMesheGroup->AddMeshe( aMeshe );
aHMLoadMatMeshe[aMateriaux] = aMesheGroup;
}
else
{
aHMLoadMatMeshe[aMateriaux]->AddMeshe( aMeshe );
} |
alors que mon for trouve un matériaux , l'ajout se fait sur un MesheGroupe vide
cela vien du fait que [] créé une cellule (avec aMateriaux comme clef et un objet par defaut) quand il ne trouve pas la clef.
EDIT:
Je viens d'essayé
aHMLoadMatMeshe[itHMLoadMatMeshe->first]->AddMeshe( aMeshe );
à la place de aHMLoadMatMeshe[aMateriaux]->AddMeshe( aMeshe );
Pour voir si en mettant la même adresse checker plus haut dans le for passerait. Je vais essayé
WX_DECLARE_HASH_MAP( Materiaux*, MesheGroupe*, wxPointerHash, wxPointerEqual, HashMapLoadMatMeshe );
comme grace au first normalement la comparaison d'adresse devrait fonctionné et avec la recherche de la clef dans le for auparavant ça devrait fonctionné, sinon soit les hashmap sont moisi, soit y a un truc qui m'échappe.
EDIT: Ca me fait pareil avec wxPointerHash, wxPointerEqual...donc les hashmap sont pourries....non ça vient de moi....:p
Partager