begin process at 2012 02 11 18:27:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Liste chainée de class dans une class...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Liste chainée de class dans une class...

dimanche 12 novembre 2006 à 13:08:23 | Liste chainée de class dans une class...

jojomillenium

Bonjour,

Je fait un programme en API sans MFC,
J'ai une class du genre:

class VERTEX                            // Build our Vertex Class
{
public:
    GLfloat pt[12];                        // 3D coordinates x, y
                                        // hauteur
};

// CLASS GROUPANT LES 4 SOMMETS DE LA FACE
class QUAD                                // Build our Quads Structure
{
public:
    int num_pts;
    bool visible;
    int type;
    GLdouble* bottom;
    GLdouble* top;
    VERTEX* vertex;
};

// CLASS D'UN COUCHE
class LAYER                                // Build our LAYER Class
{
public:
    int num_quads;
    bool visible, existe;
    float hauteur, zstart, h, penetration;
    char* nom_cif;
    char* nom_couche;
    vec4 color;
    QUAD* quad;   

    LAYER()
    {
        this->num_quads=0;
        this->zstart = 0.0;
        this->hauteur = 0.0;
        this->h = 0.0;
        this->color.set(0, 0, 0, 1.0);
        this->visible=true;
        this->nom_cif = ";";
        this->nom_couche = ";";
    }

    void SetLayer(char* _nom_cif, char* _nom_couche, float z, float h, float p, float r, float g, float b, float a)
    {
        this->nom_cif = _nom_cif;
        this->nom_couche = _nom_couche;
        this->num_quads=0;
        this->zstart = z;
        this->hauteur = h;
        this->penetration=p;
        this->h = h;
        this->color.set(r, g, b, a);
        this->visible=true;
        this->existe=true;
    }

   
    void AddValue(int _type, int _num_pts, float* _tab_pts, int _symbole, int _top_symbole, bool _visible)
    {

        this->quad[num_quads].type        = _type;
        this->quad[num_quads].num_pts    =_num_pts;
        this->quad[num_quads].bottom    = new GLdouble[_num_pts*3];
        this->quad[num_quads].top        = new GLdouble[_num_pts*3];
        this->quad[num_quads].vertex    = new VERTEX[_num_pts];
        this->quad[num_quads].top_symbole    = _top_symbole;
        this->quad[num_quads].symbole    = _symbole;
       
        for(int s=0; s<_num_pts; s++)
        {
            this->quad[num_quads].bottom[s*3] = _tab_pts[s*2];
            this->quad[num_quads].bottom[s*3+1] = this->zstart;
            this->quad[num_quads].bottom[s*3+2] = _tab_pts[s*2+1];
           
            this->quad[num_quads].top[s*3] = _tab_pts[s*2];
            this->quad[num_quads].top[s*3+1] = this->zstart + this->h;
            this->quad[num_quads].top[s*3+2] = _tab_pts[s*2+1];

        }
        for(int c=0; c<_num_pts; c++)
        {
            for(int i=0; i<2; i++)
            {
                int    d=c+i;
                if(d==_num_pts)
                    d=0;
                this->quad[num_quads].vertex[c].pt[i*3]=this->quad[num_quads].bottom[d*3];
                this->quad[num_quads].vertex[c].pt[i*3+1]=this->quad[num_quads].bottom[d*3+1];
                this->quad[num_quads].vertex[c].pt[i*3+2]=this->quad[num_quads].bottom[d*3+2];

                this->quad[num_quads].vertex[c].pt[11-i*3]=this->quad[num_quads].top[d*3+2];
                this->quad[num_quads].vertex[c].pt[11-i*3-1]=this->quad[num_quads].top[d*3+1];
                this->quad[num_quads].vertex[c].pt[11-i*3-2]=this->quad[num_quads].top[d*3];
            }
        }
        this->quad[num_quads].visible=_visible;
        this->num_quads= this->num_quads+1;
    }

    void Del(int _num)
    {
        delete this->quad;
        this->num_quads=0;
        this->quad = new QUAD[_num];
    }
    ~LAYER()
    {}
};

Seulement je ne sais pas combien de quad j'ai au depart! Il sont entré au fur et a mesure!
Est ce que c'est possible de faire une list chainée du type CList mais sans MFC de mon quad ? Si oui comment?
J'ai vu des exemples de list chainée, mais pour une structure ausi complexe ue la mienne je vois pas coment faire!

Merci pour votre aide!
dimanche 12 novembre 2006 à 15:13:29 | Re : Liste chainée de class dans une class...

laurent1024

Membre Club
Utilise les fonction de la stl (librairie standard du c++) avec les deques ou les listes qui utilise les templates.
++
dimanche 12 novembre 2006 à 15:33:49 | Re : Liste chainée de class dans une class...

jojomillenium

Mais comment l utiliser? Je sais que je doit utiliser cette librairie ... mais avec toutes mes imbrication de class, je vois pas comment!

dimanche 12 novembre 2006 à 16:50:07 | Re : Liste chainée de class dans une class...

cosmobob

salut;

#include <list>

// CLASS D'UN COUCHE
class LAYER                                // Build our LAYER Class
{
public:
    int num_quads;
    bool visible, existe;
    float hauteur, zstart, h, penetration;
    char* nom_cif;
    char* nom_couche;
    vec4 color;
    std::list<QUAD*> l_quad;
    // etc...
}

pour ajouter un quad:
QUAD* val = new QUAD;
l_quad.push_back(val);

@+


Cette discussion est classée dans : num, vertex, pts, quad, quads


Répondre à ce message

Sujets en rapport avec ce message

CList et win32 [ par jojomillenium ] Bonjour, ma question est simple, je defini mes classes telquel: // COORDONNEES class VERTEX                            // Build our Vertex Class { pub Probleme avec new() non crée pour certaine valeur... [ par jojomillenium ] Bonjour,J'ai un probleme qui est apparu de je ne sais ou alors que ca marchais avant une certain modif que je vais expliquer.J'ai des classes:class VE Convertion d'un double en hexadecimal (IEEE-754) [ par Cphil51 ] Salutation a tous.Je cherche a convertir un double en notation hexadécimale. J'ai deja essayé pour un float (plus simple car il prend que 32 bits), ce erreur : associer une image à une Ctrlist [ par jerry72000 ] Bonjour, j'ai un petit soucis dans mon projet (pour mon bts), en fait je voudrais associer des photos (format jpeg) à une Ctrlistet et les afficher en bug [ par jmp777 ] Bonjour à tous,je suis debutant et je doit corriger une erreur,l'application bug sur cette petite partie en m'affichant l'erreur qui est dans ce sprin scripte d'une requête d'insertion [ par benlac_o ] Bonjour, j'ecris un script shell, le but c'est d'inserer des valeurs dans une tables, comme vous pouvez le voire dans la requête ci-dessous, je veux i Champ scalaire [ par sem16 ] Hello,j'ai un petit probleme avec OpenGL. J'ai un strip qui est constitue de mesh triangulaire (maillage triangulaire) en 2D et j'aimerais associer à Profondeur de champs [ par Grizou0 ] Bonjour, je suis novice avec la librairie GL ( Borland C++6).Apparement, les vertex visuel sur l'ecran sont limité entre -45.0 et +45.0 sur l'axe Z en BESOIN D'AIDE [ par gersen ] bonjour a vous voila j'ai besoin d'aide j'ai un pt'it probleme avec mon programme mon programme consiste a chercher d'abord un chemins entre 2 station


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,886 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales