LrPertColorTwoLayers.h 2.08 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/**
 * @brief PertColor : les perturbations de couleur d'une optic.
 * @file LrPertColorTwoLayers.h
 * @date Jeudi 14 Fevrier 2008
 * @note 
 * @author Josselin Francois
 * @author Michael Nauge
 * @author Axel Richard
 * @author Hervé Souchaud
 * @author Emeric Verschuur
 * 
 * 
 * Classe représentant une perturbation de couleur grace
 * grace a deux perturbation de couleur
 */ 

#ifndef LRPERTCOLOR_COMPOSED_TWOLAYERS_H
#define LRPERTCOLOR_COMPOSED_TWOLAYERS_H

20
#include "LrPertColor.h"
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87

/**
 * @brief PertColor : les perturbations de couleur d'une optic.
 * 
 * Classe représentant une perturbation de couleur grace
 * grace a deux perturbation de couleur
 */
class LrPertColorTwoLayers : public LrPertColor
{
public:


    /**
    * @brief LrPertColorTwoLayers copy constructor
    * @param source LrPertColorTwoLayers object reference.
    */
    LrPertColorTwoLayers(const LrPertColorTwoLayers &source);

    /**
    * @brief LrPertColorTwoLayers personnal constructor 
    * @param pertColorHaute LrPertColor object reference.
    * @param pertColorBasse LrPertColor object reference.
    * @param coef Real le coefficient d'attenuation de la couche haute
    */
    LrPertColorTwoLayers( LrPertColor *pertColorHaute, LrPertColor *pertColorBasse,Real coef);

    /**
    * @brief LrPertColorTwoLayers clone.
    * @return LrPertColorTwoLayers pointer object.
    */
    LrPertColorTwoLayers * clone() const;
   
    /**
     * @brief LrPertColorTwoLayers destructor
     */
    virtual ~LrPertColorTwoLayers();


    /**
     * @brief assignement operator(s)
     */
    LrPertColorTwoLayers & operator = (const LrPertColorTwoLayers &source);

    /**
     * @brief comparison operator(s)
     */
    friend bool operator == (const LrPertColorTwoLayers &lhs, const LrPertColorTwoLayers &rhs);
    friend bool operator != (const LrPertColorTwoLayers &lhs, const LrPertColorTwoLayers &rhs);


    /**
     * @brief accessors
     */


    virtual LrColor getColor(Real u, Real v, LrPoint &pointInter) const;


private :
    LrPertColor* m_pertColorHaute;
    LrPertColor* m_pertColorBasse;
    Real m_coef;

};

#endif