Commit d95eabc9 authored by axel's avatar axel
Browse files

mise en forme de code

parent 1f5c4e3e
Loading
Loading
Loading
Loading
+39 −23
Original line number Diff line number Diff line
@@ -15,52 +15,53 @@
#if defined HAVE_CONFIG_H
#include "config.h"
#endif

#include "LrPoint.h"
#include "LrVector.h"


const LrPoint LrPoint::ZERO (0.0,0.0,0.0);
const LrPoint LrPoint::I    (1.0,0.0,0.0);
const LrPoint LrPoint::J    (0.0,1.0,0.0);
const LrPoint LrPoint::K    (0.0,0.0,1.0);

// ############################################################################

/*---------------------------------------------------------------------------*
 * constructors and destructor                                               *
 *---------------------------------------------------------------------------*/
LrPoint::LrPoint()
:   x(0), y(0), z(0) 
{

}

// ############################################################################

LrPoint::LrPoint(const LrPoint &source)
:   x(source.x), y(source.y), z(source.z)
{

}

// ############################################################################

LrPoint::LrPoint(Real x, Real y, Real z)
:   x(x), y(y), z(z)
{

}

// ############################################################################

LrPoint::~LrPoint()
{


}

// ############################################################################

void LrPoint::translate(const LrVector &v)
{
    x+=v.x;
    y+=v.y;
    z+=v.z;
}
/*---------------------------------------------------------------------------*
 * assignement operator(s)                                                   *
 *---------------------------------------------------------------------------*/

// ############################################################################

LrPoint & LrPoint::operator = (const LrPoint &source)
{
    if(this == &source) return (*this);
@@ -70,33 +71,42 @@ LrPoint & LrPoint::operator = (const LrPoint &source)

    return (*this);
}
/*---------------------------------------------------------------------------*
 * comparison operator(s)                                                    *
 *---------------------------------------------------------------------------*/

// ############################################################################

bool operator == (const LrPoint &lhs, const LrPoint &rhs)
{
    return ((lhs.x == rhs.x) && (lhs.y == rhs.y) && (lhs.z == rhs.z));
}

// ############################################################################

bool operator != (const LrPoint &lhs, const LrPoint &rhs)
{
    return !(lhs == rhs);
}
/*---------------------------------------------------------------------------*
 * methodes de classe                                                    *
 *---------------------------------------------------------------------------*/

// ############################################################################

Real LrPoint::distance(const LrPoint &p1, const LrPoint &p2)
{
    
    return sqrt(((p2.x - p1.x)*(p2.x - p1.x)) + ((p2.y - p1.y)*(p2.y - p1.y)) + ((p2.z - p1.z)*(p2.z - p1.z))) ;
    return sqrt(((p2.x - p1.x)*(p2.x - p1.x)) + 
                ((p2.y - p1.y)*(p2.y - p1.y)) + 
                ((p2.z - p1.z)*(p2.z - p1.z))) ;
}

// ############################################################################

Real LrPoint::distanceCarre(const LrPoint &p1, const LrPoint &p2)
{
    return (((p2.x - p1.x)*(p2.x - p1.x)) + ((p2.y - p1.y)*(p2.y - p1.y)) + ((p2.z - p1.z)*(p2.z - p1.z)));
    return (((p2.x - p1.x)*(p2.x - p1.x)) + 
            ((p2.y - p1.y)*(p2.y - p1.y)) + 
            ((p2.z - p1.z)*(p2.z - p1.z)));
}

// ############################################################################

LrPoint LrPoint::middle(const LrPoint &p1, const LrPoint &p2)
{
    LrPoint point((p2.x + p1.x)/2.0,
@@ -105,6 +115,8 @@ LrPoint LrPoint::middle(const LrPoint &p1, const LrPoint &p2)
    return point;
}

// ############################################################################

LrPoint LrPoint::interpolate(Real t, const LrPoint &p1, const LrPoint &p2)
{
    return LrPoint(p1.x + t * (p2.x - p1.x),
@@ -112,6 +124,8 @@ LrPoint LrPoint::interpolate(Real t, const LrPoint &p1, const LrPoint &p2)
                   p1.z + t * (p2.z - p1.z));
}

// ############################################################################

LrPoint LrPoint::translate(const LrPoint &p, const LrVector &v)
{
    LrPoint point;
@@ -120,3 +134,5 @@ LrPoint LrPoint::translate(const LrPoint &p, const LrVector &v)
    point.z = p.z + v.z;
    return point;
}

// ############################################################################
+136 −37
Original line number Diff line number Diff line
/**
 * @brief OBJET : un point 3D
 * @brief Classe pour la gestion d'point 3D
 * @file LrPoint.h
 * @date Vendredi 7 mars 2008
 * @note 
@@ -19,72 +19,171 @@

class LrVector;


/**
 * @brief OBJET : un point 3D
 * 
 * Ce fichier contient la classe qui gère la creation d'un point 3D
 */
class LrPoint
{
public:
    
    // constants
    // *********

    ///@brief POINT ZERO
    static const LrPoint ZERO;
    ///@brief POINT I
    static const LrPoint I;
    ///@brief POINT J
    static const LrPoint J;
    ///@brief POINT K
    static const LrPoint K;

    // constructors and destructor
    // ***************************
    //NB : exceptionnellement les membres sont public
    ///@brief Composante x du point
    Real x;
    ///@brief Composante y du point
    Real y;
    ///@brief Composante z du point
    Real z;
    
    /**
     * @brief LrPoint constructor
     */
    LrPoint();
    
    /**
     * @brief LrPoint copy constructor
     * @param source LrPoint object reference
     */    
    LrPoint(const LrPoint &source);
    
    /**
     * @brief LrPoint personnal constructor
     * @param x composante x du point (Real)
     * @param y composante y du point (Real)
     * @param z composante z du point (Real)
     */
    LrPoint(Real x, Real y, Real z);

    /**
     * @brief LrColor destructor
     */
    virtual ~LrPoint();
    
    // assignement operator(s)
    // ***********************

    LrPoint & operator = (const LrPoint &source);

    // comparison operator(s)
    // **********************

    friend bool operator == (const LrPoint &lhs, const LrPoint &rhs);
    friend bool operator != (const LrPoint &lhs, const LrPoint &rhs);

    // accessors
    // *********

    /**
     * @brief Accesseur pour obtenir la composante x du point
     * @return Real la valeur de la composante x
     */
    Real getX() const;
    
    /**
     * @brief Methode pour modifier la composante x du point
     * @param x la composante (Real)
     */
    void setX(Real x);

    /**
     * @brief Accesseur pour obtenir la composante y du point
     * @return Real la valeur de la composante y
     */
    Real getY() const;
    
    /**
     * @brief Methode pour modifier la composante y du point
     * @param y la composante (Real)
     */
    void setY(Real y);

    /**
     * @brief Accesseur pour obtenir la composante z du point
     * @return Real la valeur de la composante z
     */
    Real getZ() const;
    
    /**
     * @brief Methode pour modifier la composante z du point
     * @param z la composante (Real)
     */
    void setZ(Real z);

    /**
     * @brief Methode pour modifier les comosantes (x,y,z) du point
     * @param x la composante (Real)
     * @param y la composante (Real)
     * @param z la composante (Real)
     */
    void setXYZ(Real x, Real y, Real z);

    // miscellaneous functions
    // ***********************
    /**
     * @brief Opérateur d'affectation
     * @param source LrPoint modèle
     * @return Retourne un nouveau LrPoint
     */
    LrPoint & operator = (const LrPoint &source);
    
    /**
     * @brief Opérateur d'égalité
     * @param lhs Opérande gauche de type LrPoint
     * @param rhs Opérande droite de type LrPoint
     * @return Retourne vrai si lhs et rhs sont égaux
     */ 
    friend bool operator == (const LrPoint &lhs, const LrPoint &rhs);
    
    /**
     * @brief Opérateur d'égalité
     * @param lhs Opérande gauche de type LrPoint
     * @param rhs Opérande droite de type LrPoint
     * @return Retourne vrai si lhs et rhs sont différents
     */ 
    friend bool operator != (const LrPoint &lhs, const LrPoint &rhs);
    
    /**
     * @brief Methode permettant de connaitre la distance entre 2 points
     * @param p1 Opérande gauche de type LrPoint
     * @param p2 Opérande droite de type LrPoint
     * @return Retourne un Real contenant la distance entre p1 et p2
     */   
    static Real distance(const LrPoint &p1, const LrPoint &p2);
    static Real distanceCarre(const LrPoint &p1, const LrPoint &p2);
    static LrPoint middle(const LrPoint &p1, const LrPoint &p2);
    static LrPoint interpolate(Real t, const LrPoint &p1, const LrPoint &p2);
    static LrPoint translate(const LrPoint &p, const LrVector &v);
    void translate(const LrVector &v);
    
    /**
     * @brief Methode permettant de connaitre la distance² entre 2 points
     * @param p1 Opérande gauche de type LrPoint
     * @param p2 Opérande droite de type LrPoint
     * @return Retourne un Real contenant la distance² entre p1 et p2
     */ 
    static Real distanceCarre(const LrPoint &p1, const LrPoint &p2);
    
    // data
    // ****
    /**
     * @brief Methode permettant de connaitre le point qui se trouve entre 
     * @brief 2 points
     * @param p1 Opérande gauche de type LrPoint
     * @param p2 Opérande droite de type LrPoint
     * @return Retourne un LrPoint qui est entre p1 et p2
     */ 
    static LrPoint middle(const LrPoint &p1, const LrPoint &p2);
    
    // public members EXCEPTIONNALY : to simplify use of this class
    Real x, y, z;
    /**
     * @brief Methode permettant de connaitre le point qui se trouve entre 
     * @brief 2 points en fonction de la distance t
     * @param t la distance (Real)
     * @param p1 point de type LrPoint
     * @param p2 point de type LrPoint
     * @return Retourne un LrPoint qui est entre p1 et p2
     */ 
    static LrPoint interpolate(Real t, const LrPoint &p1, const LrPoint &p2);
    
    /**
     * @brief Methode qui translate un point à partir d'un vecteur
     * @param p point de type LrPoint
     * @param v vecteur de translation de type LrVector
     * @return Retourne un LrPoint
     */    
    static LrPoint translate(const LrPoint &p, const LrVector &v);
    
private:
    /**
     * @brief Methode qui translate un point à partir d'un vecteur
     * @param v vecteur de translation de type LrVector
     */    
    void translate(const LrVector &v);

};