IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

Disparition de variables après push_back


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Par défaut Disparition de variables après push_back
    Bonjour à tous,

    J'ai un petit problème avec un programme que je développe.
    Je précise tout de suite, je ne suis pas de formation informatique, je fais de l'imagerie, donc je sais que mon code est surement mal présenté, pas optimisé et tout ce qu'il ne faut pas ...
    Après cette mise en garde je me lance.
    J'aurais besoin de votre aide ou d'une idée pour contourner le problème suivant.
    En fait j'ai besoin de récupérer des infos dans des fichiers VRML mais des données assez sommaires donc j'ai fait un petit analyseur pour récupérer ce que je veux.
    Je cherche à récuperer des objets que je met dans une classe Maillage, puis l'ensemble des maillages trouvés forment une sceneVRML.
    En fin de message je mets la déclaration de ces deux classes.

    Mon problème se trouve dans l'image en pièce jointe.
    Il s'agit de la fenêtre d'exécution du programme et le bout de code concerné (que j'essaye de debuger d'où l'amoncellement de cout << ...)

    Je parcours le fichier VRML et je construis le Maillage m avec les données du fichiers.
    Une fois construit j'ai vérifié son contenu il contient bien les données de mon VRML, je veux donc l'ajouter à ma scèneVRML avec le elements.push_back(m);
    Tout se passe bien pour les points les couleurs et les facettes (là aussi j'ai affiché explicitement certaines données pour être sur qu'elles correspondent au fichier) mais le vecteur de normales est complètement vide ... plus rien et comme on le voit sa taille est nulle en l'appelant dans éléments alors qu'il y a bien quelque chose dans m.normales. (Pour précision la valeur nbShape correspond au nombre de maillage trouvés dans le VRML au moment donné de l'algorithme elements[nbShape-1] est donc bien le dernier élément ajouté au vecteur.)

    Voilà si quelqu'un sait d'où peut venir le problème ou a une idée dessus je le remercie d'avance (surtout que mon message est un peu long désolé)

    Garfield

    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
     
    template<typename TMaillage,typename TCouleur>
    class Maillage{
     
     
    // Attributs
    public :
     
    vector< Point3D<TMaillage> > points;
    vector< IndexFacette > facettes;
    vector< Couleur<TCouleur> > couleurs;
    vector< Point3D<double> > normales;
     
     
    // Méthodes
    public :
     
    Maillage();
    Maillage( const Maillage<TMaillage,TCouleur>& m);
    Maillage(    const vector< Point3D<TMaillage> >& pts,
                const vector< IndexFacette >& faces,
                const vector< Couleur<TCouleur> >& c,
                const vector< Point3D<double> >& n
                );
    void addPoint3D(const Point3D<TMaillage>& p);
    void addFace(const IndexFacette& f);
    void addColor(const Couleur<TCouleur>& c);
    void addNormal(const Point3D<double>& n);
    };
    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
     
    template<typename TMaillage,typename TCouleur>
    class sceneVRML{
     
    // Attributs
    public :
     
    vector< Maillage<TMaillage,TCouleur> > elements;
     
    // Méthodes
    public :
     
    sceneVRML();
    sceneVRML(const sceneVRML<TMaillage,TCouleur>& scene);
    sceneVRML(char *filename);
     
    int chargerSceneVRML(char *filename);
    void ecrireSceneVRML(char *filename);
    };
    Images attachées Images attachées  

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Par défaut
    Désolé,
    c'est toujours après avoir posté qu'on s'en rend compte.

    Pour ceux qui voudraient savoir c'est un bête oubli dans le constructeur : Maillage( const Maillage<TMaillage,TCouleur>& m);

    J'avais tous simplement oublié de copier le champ de normales ...

    Merci à ceux qui ont quand même lu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. disparition de variables
    Par gaeil dans le forum Langage
    Réponses: 2
    Dernier message: 24/01/2007, 18h32
  2. [Sécurité] Effacer une variable après insertion ?
    Par psychoBob dans le forum Langage
    Réponses: 7
    Dernier message: 23/04/2006, 23h34
  3. Attribution de variable après un pipe
    Par LFC dans le forum Linux
    Réponses: 4
    Dernier message: 28/12/2005, 22h46
  4. Réponses: 2
    Dernier message: 20/12/2005, 16h48
  5. Réponses: 2
    Dernier message: 23/10/2005, 18h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo