Se connecter avec
S'enregistrer | Connectez-vous

Erreur très bizarre avec prog cpp orienté objet

Dernière réponse : dans Programmation

Bonjour tout le monde

Je suis nouveau sur le forum et j'aimerai vous soumettre un petit prblm qui apparait dans mon programme. J'ai codé un raytracer pour ceux qui connaissent et j'ai un léger prblm dans un fonction:

Pour tester mon prog, j'ai choisi de mettre un printf("T") pour voir qd la condition (FindObstacle()) est vérifiée. Dans le cas suivant, elle est vérifiée de temps en temps (cas normal)

CEntite *EntiteEnCours;
CEntite *EntitePlusProche=NULL;
// float Distance = 1000000.0;
// On passe au crible chaque entite
for (int i=0; i<Scene.GetNbEntite(); i++)
{
EntiteEnCours=Scene.GetEntite(i);
if (EntiteEnCours->FindObstacle(ray)) printf("T"); }

Le probleme c'est que dès que j'enlève les commentaires de float Distance = 1000000.0; par exemple, et bien la condition n'est JAMAIS vérifiée alors que cette variable n'a aucun lien avec la fonction FindObstacle(). Et ce problm apparait pour toute autre variable que je déclare dnas cette fonction.

QQchose m'échappe..
Je reste en ligne pour vos questions et je vous remercie d'avance pour vos réponses

Lassé par la pub ? Créez un compte

  1. CCouleur RayTrace(const CScene& Scene, CRayon ray, unsigned int depth, float coef)
  2. {
  3.  
  4. CEntite *EntiteEnCours;
  5. CEntite *EntitePlusProche=NULL;
  6.  
  7. // float Distance = 1000000.0;
  8. // float TmpDistance;
  9.  
  10. // On passe au crible chaque entite
  11. for (int i=0; i<Scene.GetNbEntite(); i++)
  12. {
  13. EntiteEnCours=Scene.GetEntite(i);
  14. if (EntiteEnCours->FindObstacle(ray)) printf("T");}
  15.  
  16. return CCouleur(0.0,0.0,0.0);


voilà c mieux comme ça, je savais pas qu'il y avait des balises.
rem: bien evidement le code present ici est très allégé

a la limite si c'était a la declaration de classes que j'avais implémenté (ça marche pas non plus), ça pourrait etre au niveau des constructeurs mais là meme les float de marchent pas. par contre j'ai déclaré un bool et ça marche...
Lassé par la pub ? Créez un compte