//////////////////////////////////////////////////////////////////////// /// /// @fn void ArbreRenduTest::setUp() /// /// Effectue l'initialisation préalable à l'exécution de l'ensemble des /// cas de tests de cette suite de tests (si nécessaire). /// /// Si certains objets doivent être construits, il est conseillé de le /// faire ici. /// /// @return Aucune. /// //////////////////////////////////////////////////////////////////////// void ArbreRenduTest::setUp() { arbre_ = std::make_unique<ArbreRenduINF2990>(); NoeudAbstrait* nouveauNoeud; glm::dvec3 position; // On ajoute un noeud bidon seulement pour que quelque chose s'affiche. NoeudAbstrait* noeud = arbre_->creerNoeud(ArbreRenduINF2990::NOM_ZONEDEJEU); noeud->assignerEstSelectionnable(false); nouveauNoeud = arbre_->creerNoeud(ArbreRenduINF2990::NOM_TROU); position = glm::dvec3(0, -75, 0); nouveauNoeud->assignerPositionRelative(position); noeud->ajouter(nouveauNoeud); nouveauNoeud = arbre_->creerNoeud(ArbreRenduINF2990::NOM_RESSORT); position = glm::dvec3(41.32, -69.79, 0); nouveauNoeud->assignerPositionRelative(position); noeud->ajouter(nouveauNoeud); nouveauNoeud = arbre_->creerNoeud(ArbreRenduINF2990::NOM_GENERATEURBILLE); position = glm::dvec3(35, -45, 0); nouveauNoeud->assignerPositionRelative(position); noeud->ajouter(nouveauNoeud); arbre_->ajouter(noeud); }
void ArbreRenduTest::testCentreSelection() { NoeudAbstrait * zone = arbre_->chercher("zonedejeu"); NoeudAbstrait * noeud = arbre_->creerNoeud(ArbreRenduINF2990::NOM_BUTOIRCIRCULAIRE); noeud->assignerPositionRelative(glm::dvec3(5, 10, 15)); noeud->inverserSelection(); zone->ajouter(noeud); noeud = arbre_->creerNoeud(ArbreRenduINF2990::NOM_BUTOIRCIRCULAIRE); noeud->assignerPositionRelative(glm::dvec3(-5, 7, 15)); noeud->inverserSelection(); zone->ajouter(noeud); noeud = arbre_->creerNoeud(ArbreRenduINF2990::NOM_BUTOIRCIRCULAIRE); noeud->assignerPositionRelative(glm::dvec3(10, 8, 15)); noeud->inverserSelection(); zone->ajouter(noeud); noeud = arbre_->creerNoeud(ArbreRenduINF2990::NOM_BUTOIRCIRCULAIRE); noeud->assignerPositionRelative(glm::dvec3(-3, -15, 15)); noeud->inverserSelection(); zone->ajouter(noeud); arbre_->calculerCentreSelection(); glm::dvec3 centre = arbre_->obtenirCentreSelection(); CPPUNIT_ASSERT(centre.x == 2.5); CPPUNIT_ASSERT(centre.y == -2.5); }
void ArbreRenduTest::testEstDansBornes() { NoeudAbstrait * noeud = arbre_->creerNoeud(ArbreRenduINF2990::NOM_BUTOIRCIRCULAIRE); noeud->assignerPositionRelative(glm::dvec3(5, 10, 15)); noeud->assignerAgrandissement(glm::dvec3(1.7, 1.7, 1.7)); noeud->assignerRotation(20); NoeudAbstrait * zone = arbre_->chercher("zonedejeu"); zone->ajouter(noeud); CPPUNIT_ASSERT(arbre_->estDansBornes()); noeud->assignerPositionRelative(glm::dvec3(-100, -100, 0)); CPPUNIT_ASSERT(!arbre_->estDansBornes()); }
void ArbreRenduTest::testObtenirDepassement() { NoeudAbstrait * noeud = arbre_->creerNoeud(ArbreRenduINF2990::NOM_BUTOIRCIRCULAIRE); noeud->assignerPositionRelative(glm::dvec3(5, 10, 15)); NoeudAbstrait * zone = arbre_->chercher("zonedejeu"); zone->ajouter(noeud); glm::dvec2 depassement = arbre_->obtenirDepassement(); //CPPUNIT_ASSERT(depassement.x == 0); //CPPUNIT_ASSERT(depassement.y == 0); noeud->assignerPositionRelative(glm::dvec3(100, 100, 0)); depassement = arbre_->obtenirDepassement(); //CPPUNIT_ASSERT(depassement.x==62.5); //CPPUNIT_ASSERT(utilitaire::EGAL_ZERO(depassement.y - 27.5)); }
//////////////////////////////////////////////////////////////////////// /// /// @fn NoeudAbstrait* ArbreRendu::ajouterNouveauNoeud(const std::string& typeParent, const std::string& typeNouveauNoeud) /// /// Cette fonction permet d'ajouter un nouveau noeud dans l'arbre de /// rendu. /// /// @param[in] typeParent : Le type du parent du nouveau noeud. /// @param[in] typeNouveauNoeud : Le type du nouveau noeud. /// /// @return Le noeud nouvellement créé. /// //////////////////////////////////////////////////////////////////////// NoeudAbstrait* ArbreRendu::ajouterNouveauNoeud( const std::string& typeParent, const std::string& typeNouveauNoeud ) { NoeudAbstrait* parent = chercher(typeParent); if (parent == 0) { // Incapable de trouver le parent return 0; } NoeudAbstrait* nouveauNoeud = creerNoeud(typeNouveauNoeud); if (nouveauNoeud) parent->ajouter(nouveauNoeud); return nouveauNoeud; }
void ArbreRenduTest::testCreerNoeud() { NoeudAbstrait * noeud = arbre_->creerNoeud(ArbreRenduINF2990::NOM_BUTOIRCIRCULAIRE); noeud->assignerPositionRelative(glm::dvec3(5, 10, 15)); noeud->assignerAgrandissement(glm::dvec3(1.7, 1.7, 1.7)); noeud->assignerRotation(20); NoeudAbstrait * zone = arbre_->chercher("zonedejeu"); zone->ajouter(noeud); NoeudAbstrait * noeud2 = zone->chercher(zone->obtenirNombreEnfants() - 1); CPPUNIT_ASSERT(noeud2 != nullptr); CPPUNIT_ASSERT(noeud2->obtenirRotation() == 20); glm::dvec3 position = noeud2->obtenirPositionRelative(); CPPUNIT_ASSERT(position.x == 5); CPPUNIT_ASSERT(position.y == 10); CPPUNIT_ASSERT(position.z == 15); CPPUNIT_ASSERT(noeud2->obtenirAgrandissement().x == 1.7); }