Bonjour,

Je suis face à un problème dans un projet de cpp assez conséquent (à ma petite échelle tout du moins) avec de l'opengl . Je vais essayer de vous synthétiser mon problème :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 
 
/**
 * Classe représentant l'entité de base de la représentation des mobiles. Ces entitées
 * sont lié dans une structure d'abres les unes aux autres pour former un mobile.
 * expl : la brique Tete est lié à la brique corps du personnage qui est lié aux briques
 * bras etc ...
 */
class Brique {
        protected:
        /**
         * vecteur des briques suivantes dans l'arbre
         */
        std::vector<Brique> suivants;
 
        public:
        /**
         * Constructeur
         */
        Brique(...);
 
        /**
         * Fonction dessinant la brique
         */
        virtual void dessinerBrique();
};
 
class Brique_particulaire: public Brique {
    public:
    /**
     * Constructeur
     */
    Brique_particulaire(...);
 
     /**
      * Fonction dessinant la brique particulaire
      */
      void dessinerBrique();
};
 
/**
 * Un mobile est un objet affichable constitué d'un arbre de briques
 */
class Mobile {
protected:
    	/**
         * Arbre des briques de ce modele.
         */
	Brique* arbre_briques;
public:
        blabla...
 
        /**
         * Constructeur
         */
        Mobile() {
 
         }
 
         /**
          * dessine le mobile en parcourant recursivement toutes ses briques et
          * les dessinant une a une les unes par rapport aux autres
          */
         void dessinerMobile();
};
 
/**
 * Un projectile est un mobile particulier qui contient uniquement une brique particulaire
 */
class Projectile: public Mobile {
 public:	
	Projectile();	
};
 
/**
 * \class Mobiles_liste : Classe liste de tout les mobiles utile pour
 * l'affichage entre autre.
 */
class Mobiles_liste : public std::list<Mobile> {
 public : 
	/**
         * Fonction affichant tout les mobiles
         */
	void draw() {
            for (std::list<Mobile>::iterator it = this->begin(), end = this->end(); it != end; ++it) {
		it->dessinerMobile();
	    }
        }
};
Mon problème est le suivant : lorsque je mets un Projectile dans la Mobile_liste son affichage se fait comme si la brique dans projectile n’était pas particulaire mais simplement une brique. C'est à dire qu'il va faire appelle à Brique::dessinerBrique(); au lieu de faire appelle à Brique_particulaire::dessinerBrique();

Je ne comprends pas pourquoi et je n'arrive pas à contourner le problème...

En espérant avoir été suffisamment clair, merci par avance