Closed untereiner closed 6 years ago
Pour la classe FilteredQuickTraversor, elle n'est instanciée nulle part, j'ai fait un essai et c'est n'imp. l'appel au constructeur de const_iteratot n'a rien à voir avec sa définition ! Impossible que ce truc compile qqsoit le compilo
Ouais je suis en train d'essayer en utilisant la classe. Je vais corriger ça mais j'aurais pas le temps de le faire ce soir.. Mais la solution de Lionel me semble pas bonne. Est-ce que en attendant, tu peux annuler ta modif dans ce fichier ?
Syndrome du commit -a ;)
Du coup pourquoi j'ai un problème seulement maintenant ? D'ailleurs ce n'est même pas un commit -a ... c'est un commit spécifique. J'ai hésité avec remplacer la flèche par un .
mais je ne comprend pas la différence ici. Je peux annuler la modif
@untereiner c'est Pierre qui a fait un commit -a et a pushé des trucs pas finis ;) Pourquoi tu as l'erreur de compil alors que la classe n'est pas instanciée, mystère ? Je n'ai pas essayé gcc 7.2
haaa :) je ne sais pas non plus pourquoi j'ai cette erreur. Mon stagiaire l'a aussi eut en compilant cgogn sur son archlinux avec gcc 7.2 😄
Si vous êtes ok, acceptez la tel que sinon je vais rajouter des trucs qui n'auront plus rien à voir... et je préfère faire ça dans une autre pull request.
Concernant le sujet de base de la PR, est-ce qu'il ne manque encore pas l'implémentation de fonctions d'export pour les graph ?
je n'ai effectivement pas encore écris les exports pour tous les formats.. est-ce que cela peut être fait dans un second temps ? tu préfères que je les fasses tous ?
Si tu préfères le faire plus tard, pas de souci. C'est juste qu'il ne faudrait pas finir pas oublier !
Je viens de vérifier. Il y a deux classes. Je vais les faire là.
OK
Voilà j'ai écris les exports au moins pour la géométrie et fais un peu de ménage.
C'est bon pour le merge ?
Il faut quand même faire attention, sur un algo global qui utilise un builder, un mask quelconque pourrait tout à fait laisser la carte dans un état invalide. Le seul type de mask que je vois qui pourrait fonctionner serait un mask qui filtre pour ne garder qu'une ou plusieurs composantes connexes en entier. Je ne sais pas si il ne vaut pas mieux laisser un tel algo tourner sur la carte entière (comme pour loop ou cc).
ok c'est effectivement le seul mask qui pourrait fonctionner et que je voulais d'ailleurs écrire. J'enlève le commit et je te laisser merger la PR. Je fais comment pour travailler sur une composante connexe ?
Oui je m'en doutais.. je ne sais pas trop comment faire ça. Les masks qui permettent le parcours d'une CC sont soit un objet CellFilter (ensemble de fonctions de filtre), un FilteredQuickTraversal (QuickTraversal avec fonctions de filtre) ou un CellCache. Le seul problème est que rien ne permet de garantir a priori ce que parcourt un tel mask. De plus, ces masks ne seraient plus à jour à l'issue de l'algo, ce qui n'est pas grave, mais il faut penser à les mettre à jour : pour ceux basés sur des fonctions de filtre (probablement basées sur un marqueur), il faut marquer les nouveaux brins de la CC, pour un CellCache, il faut le reconstruire.
Sinon, il nous faut la possibilité de spliter une carte en plusieurs cartes contenant chacune une CC de la carte de départ.
@pierrekraemer
Au fait j'ai la ligne 258 de masks.h qui ne passe pas à la compilation chez moi:
In member function ‘cgogn::Dart cgogn::FilteredQuickTraversor<MAP>::const_iterator::operator*() const’: /home/lionel/Documents/developments/cgogn2/cgogn/cgogn/core/utils/masks.h:258:42: error: base operand of ‘->’ has non-pointer type ‘const value_type {aka const cgogn::Attribute_T<cgogn::Dart>}’ return qt_ptr_->qt_attributes_[orbit_]->operator[](index_);
En la remplaçant par
return qt_ptr_->qt_attributes_[orbit_](this->operator[](index_));
ça va mieux. Vous n'avez pas eut ce problème ?PS: gcc version 7.2.0