Bonjour,
Je suis actuellement en train de développer un éditeur pour une structure appelée maillage en demi-arête. Je ne vais pas m'attarder sur la structure elle-même. Je pense avoir à peu prêt saisie la notion de modèle-vue-contrôleur mais je n'arrive pas à la mettre en oeuvre dans une structure déjà existante sans être intrusif.
J'ai défini ma structure en demi-arête en arbre telle que suit :
Voici maintenant le problème que je me pose : ma structure existe déjà et est plutôt un graphe. Ensuite les éléments de l'arbre n'ont rien en commun (des types complètement différents, ils n'ont pas une classe mère commune). Hors dans les exemples fournis sur le net on parle toujours d'un TreeItem et on peut avoir certains noeuds spécialisés mais ils sont quand même des TreeItem par héritage. J'en viens maintenant à mon problème, je dois hériter de cette méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 triangle 1 half-edge 1 sommet half-edge 2 sommet half-edge 3 sommet triangle 2 half-edge 1 sommet half-edge 2 sommet etc.
pour définir mon modèle. Voici maintenant ma question : comment je fais pour lier ma structure déjà existante à mon modèle ? Si je mets de simples pointeurs (qui seront envoyés au QModelIndex et récupérables avec la méthode internalPointer) vers mes objets je n'ai pas assez d'informations pour trouver le fils connaissant l'index. En effet, comme les types sont complètement différents, si je récupère le pointeur, je ne saurais pas quel type d'objet c'est et donc connaître ses fils.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 virtual QModelIndex index ( int row, int column, const QModelIndex & parent = QModelIndex() ) const = 0
Je me demande si je ne devrais pas utiliser les rtti seulement les rtti ne doivent pas être utilisés avec des classes ayant au moins une méthode virtuelle ? Et si possible j'aimerai éviter cela.
Si vous avez des suggestions.
Merci d'avance.
Partager