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

Ogre Discussion :

Structure d'un programme


Sujet :

Ogre

  1. #1
    lpa
    lpa est déconnecté
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 39
    Points : 54
    Points
    54
    Par défaut Structure d'un programme
    Bonjour,
    Je suis sur un projet perso qui commence a devenir a mon niveau assez volumineux en nombre de class: 25 header.
    J'ai rencontré quelques problèmes de structure au niveau des includes du faite d'inclure <ogre.h> dans la plus part de mes header . J'ai donc supprimé tous les includes du projet pour essayer de les refaire proprement seulement je suis confronté a quelques soucis que je n'arrive pas a régler
    Quant je compile j'ai l'erreur "error C2653: 'Ogre'*: n'est pas un nom de classe ni d'espace de noms" dans l'un de mes fichiers.
    ci dessous une description de ma structure:

    api.h:
    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
     
    //ogre
    #include <Ogre.h>
    #include <OgreRoot.h>
    #include <OgreConfigFile.h>
    #include <OgreViewport.h>
    #include <OgreRenderWindow.h>
    #include <OgreSingleton.h>
     
    //Physx
    #include <PxPhysicsAPI.h>
    #include <PxExtensionsAPI.h>
    #include <PxDefaultErrorCallback.h>
    #include <PxDefaultAllocator.h>
     
    //mes include
    #include "vector3.h"
    #include "sceneManager.h"
    #include "inputManager.h"
    #include "stateManager.h"
    #include "resourceManager.h"
    #include "gui.h"
    #include "thirdPersonCamera.h"
    #include "frameListener.h"
    sceneManager.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "scene.h"
    scene.h:
    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
     
    //ogre
    #include <OgreSceneManager.h>
    #include <OgreSceneNode.h>
    #include <OgreMeshManager.h>
    #include <OgreEntity.h>
     
    //PhysX
    #include <PxCudaContextManager.h>
    #include <PxDefaultSimulationFilterShader.h>
    #include <PxDefaultCpuDispatcher.h>
    #include <PxRigidBody.h>
    #include <PxScene.h>
    #include <PxActor.h>
    #include <PxShape.h>
    #include <PxControllerManager.h>
    #include <PxCapsuleGeometry.h>
    #include <PxCapsuleController.h> 
     
    //mes include
    #include "controller.h"
    #include "animatedMesh.h"
    #include "actor.h"
    actor.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //PhysX
    #include <PxRigidDynamic.h>
     
    	class Actor
    	{
    		public:
    			Actor(Ogre::SceneNode *node, PxRigidDynamic *rigidDynamicActor);
    			~Actor(void);
    			void update(void);
                  ........
            }
    j'utilise visual c++ 2008 express

    l'erreur est affiché sur la ligne : Actor(Ogre::SceneNode *node, PxRigidDynamic *rigidDynamicActor);
    J'ai simplifier le code pour pas que cela ne prenne plus de place et pour montre uniquement la structure des include mais si quelqu'un se sent le coeur a l'ouvrage je peu fournir l'intégralité du code source.
    Je me demande si le problème pourrait venir d'une erreur dans un fichier précédemment inclue ?
    Je pourrais corriger le problème en fessant un #include <Ogre.h> dans actor.h mais je ne crois pas que cela soit viable sur le long terme si le nombre de fichier continue a augmenter ?
    voila sinon si quelqu un a des conseils a me donné sur la structure ou des tutos je suis prenneur sa fait un petit moment que cela me bloque
    merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 576
    Points : 1 528
    Points
    1 528
    Par défaut
    Salut,

    Pour moi, si actor utilise Ogre, je ne trouve pas génant d'include Ogre.h dans actor.h. En quoi cela te gêne-t-il ?
    La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry

  3. #3
    lpa
    lpa est déconnecté
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 39
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par pyros Voir le message
    Salut,

    Pour moi, si actor utilise Ogre, je ne trouve pas génant d'include Ogre.h dans actor.h. En quoi cela te gêne-t-il ?
    Justement je ne sait pas ^^

    Enfaîte au début du projet j'incluait ogre.h dans chaque fichier qui utilisait le namespace Ogre mais très vite je me suis retrouvé avec des erreur du type "error C2653: 'Ogre'*: n'est pas un nom de classe ni d'espace de noms" ou " X n'est pas un nom de classe appartenant a l'espace de noms Ogre" meme en incluant le fichier contenant la class en question, j'ai crus surement a tort que les include dans les header avaient une porté illimité.
    En en discutant avec des connaissances certain me dise que les includes ont une porté limité au fichier dans lequel il est appeler et au class héritant de la class défini dans ce même fichier ??

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 576
    Points : 1 528
    Points
    1 528
    Par défaut
    Dit toi que faire un #include<toto> dans un fichier tata, c'est exactement comme recopier le contenue de toto dans le fichier tata. Le #include<toto> affecte le fichier tata, ainsi que tous les fichier incluant tata, etc...

    Ce qu'il suffit de faire, c'est lorsqu'un fichier a besoin de Ogre, tu inclue Ogre. Pas la peine d'essayer d'optimiser les inclusions de tes fichiers, mieux vaux optimiser l'architecture de ton appli. Une archi propre entraine des dépendances propre et des inclusions propre
    La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry

  5. #5
    lpa
    lpa est déconnecté
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 39
    Points : 54
    Points
    54
    Par défaut
    Je pense m'en être sortie merci pour les conseilles

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

Discussions similaires

  1. [STRUCTURE] Structure d'un programme JAVA
    Par pflany dans le forum Langage
    Réponses: 11
    Dernier message: 18/04/2020, 22h05
  2. Réponses: 18
    Dernier message: 04/06/2007, 00h55
  3. Structure d'un programme
    Par bontempf dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 10/03/2007, 23h48
  4. Apprendre la structure d'un programme en Prolog
    Par minen dans le forum Prolog
    Réponses: 3
    Dernier message: 26/02/2007, 09h48
  5. [debutant] structure d'un programme
    Par poukill dans le forum Débuter
    Réponses: 17
    Dernier message: 19/05/2006, 15h33

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