VedaLibMath/EquationGamma.h

Go to the documentation of this file.
00001 /*! \file 
00002     \author victorien ferry & www.m4nkind.com
00003     \brief This file applies the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1 , read file COPYING.
00004 */
00005 #ifndef COM_M4NKIND_EquationGamma_H
00006 #define COM_M4NKIND_EquationGamma_H
00007 
00008 #include "VirtualEquation.h"
00009 #include "PackFloat.h"
00010 #include "PackFloatByte_Limits.h"
00011 
00012 /*!
00013     \class  EquationGamma
00014     \ingroup BaseObjectInherited_VedaLibMath BaseObjectInheritedDocGroup
00015     \brief  Color calibration equation, first made to calibrate colors images 
00016             with Image RGBA Mixer. You can use this equation to calibrate 
00017             brightness and contrast for example. It does an equation of the shape:
00018             Result.X=func(Input.X). 
00019 */
00020 class EquationGamma : public VirtualEquation
00021 {
00022 /*==================================================================
00023                                 PUBLIC
00024 ==================================================================*/
00025 public:
00026     /*!
00027         \brief  Constructor. There should only be members initialisation there.
00028     */
00029     EquationGamma(void);
00030 
00031     /*!
00032         \brief  Class Inheritance Descriptors. Also forces a destructor. See BASEOBJECT_DECLARE_... in .cpp
00033     */
00034     BASEOBJECT_DEFINE_CLASS(EquationGamma);
00035 
00036     /*!
00037         \brief   Compute a scalar value according to a parameter list (X,Y,Z,D).
00038         \param  _OutgoingParameterTable result table. elements are writen or not according to the equation.
00039         \param _IncomingParameterTable. float table, the (X,Y,Z,D) parameters.
00040     */
00041     virtual void Compute( float _OutgoingParameterTable[4] , const float _IncomingParameterTable[4] );
00042 
00043 /*==================================================================
00044                                 PROTECTED
00045 ==================================================================*/
00046 protected:
00047     //! start of the affine curve
00048     PackFloat               mSer_CurveStart;
00049     //! end  of the affine curve
00050     PackFloat               mSer_CurveEnd;
00051     //! center of the gamma [0,1]
00052     PackFloatByte_Limits    mSer_Center;
00053     //! exponent force 0.0->32.0
00054     PackFloatByte_Limits    mSer_GammaForce;
00055 };
00056 #endif

      /\/\        4         N         k         !         N         D
                      _______  _ __ ___  _____            ___ _ _  ____
     ___________  __//___   /________  |/    / ___________\_______/    \
    /   _   _   \/   _     /    _   /      _/_/____/    _       __     /
   /    /   /       /     /    /    \      \/     /    /    \   \     /
  \\___/___/___/    ¯    _____/_____/       ______\___/_____/\________\\
               \________/_ ___ __ l____\      /elD!  
                 http://www.m4nkind.com \____/