Commit 7962c009 authored by Emeric Verschuur's avatar Emeric Verschuur

Suppession de la géométrie quadrangle

parent 243516de
/**
* @brief GÉOMÉTRIE : Gestion d'un quadrangle
* @file LrGeometryQuadrangle.cpp
* @date Vendredi 7 mars 2008
* @note
* @author Josselin Francois
* @author Michael Nauge
* @author Axel Richard
* @author Hervé Souchaud
* @author Emeric Verschuur
*
* Ce fichier contient la classe qui gère une géométrie quadrangulaire.
*/
#if defined HAVE_CONFIG_H
#include "config.h"
#endif
#include "LrGeometryQuadrangle.h"
LrGeometryQuadrangle::LrGeometryQuadrangle()
:
LrGeometry()
{
}
LrGeometryQuadrangle::LrGeometryQuadrangle(const LrGeometryQuadrangle& src)
:
LrGeometry(src)
{
}
LrGeometryQuadrangle::~LrGeometryQuadrangle()
{
}
LrGeometryQuadrangle& LrGeometryQuadrangle::operator = (const LrGeometryQuadrangle& src)
{
if(this==&src)
return *this;
LrGeometry::operator = (src);
// [...]
return *this;
}
bool operator == (const LrGeometryQuadrangle& rhs, const LrGeometryQuadrangle& lhs)
{
return (const LrGeometry&)rhs == (const LrGeometry&)lhs
/* and [...] */;
}
bool operator != (const LrGeometryQuadrangle& rhs, const LrGeometryQuadrangle& lhs)
{
return ! (rhs==lhs);
}
int LrGeometryQuadrangle::getNbFragments() const{
return 1;
}
bool LrGeometryQuadrangle::getIntersection(const LrRay &ray, LrHit *hit, int fragment,
Real minBound, Real maxBound) const
{
// [...]
return false;
}
void LrGeometryQuadrangle::getMinMax(LrPoint &min, LrPoint &max, int fragment) const{
// !
}
void LrGeometryQuadrangle::xyz2uv(const LrPoint &point, Real &u, Real &v) const
{
// [...]
}
void LrGeometryQuadrangle::uv2xyz(Real u, Real v, LrPoint *point,
LrVector *normal, LrVector *tangent) const
{
// [...]
}
/**
* @brief GÉOMÉTRIE : Gestion d'un quadrangle
* @file LrGeometryQuadrangle.h
* @date Vendredi 7 mars 2008
* @note
* @author Josselin Francois
* @author Michael Nauge
* @author Axel Richard
* @author Hervé Souchaud
* @author Emeric Verschuur
*
* Ce fichier contient la classe qui gère une géométrie quadrangulaire.
*/
#ifndef LRGEOMETRYQUADRANGLE_H
#define LRGEOMETRYQUADRANGLE_H
#include "LrGeometry.h"
/**
* @brief GÉOMÉTRIE : Gestion d'une géométrie quadrangulaire
*
* Cette classe gère une géométrie quadrangulaire.
*/
class LrGeometryQuadrangle : public LrGeometry
{
public:
/**
* @brief Constructeur.
*/
LrGeometryQuadrangle();
/**
* @brief Constructeur par copie.
* @param src Référence d'un objet LrGeometryQuadrangle.
*/
LrGeometryQuadrangle(const LrGeometryQuadrangle& src);
/**
* @brief Destructeur.
*/
virtual ~LrGeometryQuadrangle();
/**
* @brief Opérateur d'affectation.
* @param src Géométrie source.
* @return Une référence sur l'objet affecté.
*/
LrGeometryQuadrangle& operator = (const LrGeometryQuadrangle& src);
/**
* @brief Opérateur de test d'égalité.
* @return vrai ou faux.
*/
friend bool operator == (const LrGeometryQuadrangle& rhs, const LrGeometryQuadrangle& lhs);
/**
* @brief Opérateur de test d'inégalité.
* @return vrai ou faux.
*/
friend bool operator != (const LrGeometryQuadrangle& rhs, const LrGeometryQuadrangle& lhs);
/**
* @brief Donne le nombre de fragments de la géométrie.
* @return Un entier.
*/
virtual int getNbFragments() const;
/**
* @brief Donne d'intersection entre un rayon et la géométrie.
* @param ray Référence d'un objet LrRay.
* @param hit Adresse de l'objet LrHit dans lequel sera stocké le résultat.
* @param fragment Fragment de la géométrie.
* @param minBound Distance minimum par rapport à l'origine (défaut : 0).
* @param maxBound Distance maximum par rapport à l'origine (défaut : INFINITY).
* @return vrai si il y a une intersection, sinon faux.
*
* Cette méthode calcul l'intersection entre le rayon @a ray et la géométrie
* et stocke le résultat dans la sructure LrHit pointée par @a hit si ce
* dernier n'est pas égal à NULL. On peut également spécifier la portion du
* rayon, à l'aide des paramètres @a minBound @a maxBound , à prendre en
* compte pour ce calcul.
*/
virtual bool getIntersection(const LrRay &ray, LrHit *hit, int fragment,
Real minBound=0, Real maxBound=INFINITY) const;
/**
* @brief Calcul des points min et max de la boîte englobante.
* @param min LrPoint minimum de la boîte.
* @param max LrPoint maximum de la boîte.
* @param fragment Fragment de la géométrie.
*
* Calcule le point "en bas, devant, à gauche" et le point "en haut,
* derrière, à droite" de la géométrie.
*/
virtual void getMinMax(LrPoint &min, LrPoint &max, int fragment) const;
protected:
/**
* @brief Conversion de coordonnées absolues en paramétriques.
* @param point Point à convertir.
* @param u Réel u (paramètre out).
* @param v Réel v (paramètre out).
*/
virtual void xyz2uv(const LrPoint &point, Real &u, Real &v) const;
/**
* @brief Conversion de coordonnées paramétriques en absolues.
* @param u Réel u.
* @param v Réel v.
* @param point Point résultant (paramètre out).
* @param normal Normale à ce point (paramètre out).
* @param tangent Tangente à ce point (paramètre out).
*/
virtual void uv2xyz(Real u, Real v, LrPoint *point,
LrVector *normal, LrVector *tangent) const;
private:
};
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment