reman3/Rayman_X/cpa/tempgrp/OLG/inc/LightMod.hpp

203 lines
5.4 KiB
C++

/*
///////////////////////////////////////////////////////////////////////////////////////////////////
// Description : SpotMod.hpp
//
// Modification classes
//
///////////////////////////////////////////////////////////////////////////////////////////////////
// inherit from CPA_Modif
//
///////////////////////////////////////////////////////////////////////////////////////////////////
// Creation date: 11 feb 1997 Author: J Thénoz
///////////////////////////////////////////////////////////////////////////////////////////////////
// Modification date: Author:
//
//
//
//
///////////////////////////////////////////////////////////////////////////////////////////////////
*/
#ifndef __SPOTMOD_HPP__
#define __SPOTMOD_HPP__
#define TYPE_CHANGE_RGB 15
#define TYPE_CHANGE_NEARFAR 16
#define TYPE_CHANGE_ALPHA 17
#define TYPE_CHANGE_STATE 18
#define TYPE_CHANGE_INTENSITY 19
//CHINA WFQ (MT) 16/02/98 {
#define TYPE_CHANGE_INTER_MIN 20
#define TYPE_CHANGE_INTER_MAX 21
#define TYPE_CHANGE_EXTER_MIN 22
#define TYPE_CHANGE_EXTER_MAX 23
#define TYPE_CHANGE_INTENSITY_MIN_MAX 24
//ENDCHINA WFQ }
class Light;
class ModifLightRGB : public CPA_Modif
{
protected:
Light* m_poLight;
GEO_tdstColor m_stColor;
GEO_tdstColor m_stOldColor;
BOOL m_bRedo;
public :
ModifLightRGB (Light* poLight, GEO_tdstColor& stColor, BOOL pBlock=0);
void fn_vSetLightRGB ( GEO_tdstColor& stColor );
Light* fn_pGetLight (void) { return m_poLight; }
BOOL Do (void);
BOOL Undo (void);
};
class ModifLightIntensity : public CPA_Modif
{
Light* m_poLight;
float m_fIntensity;
float m_fOldIntensity;
GEO_tdstColor m_stColor;
BOOL m_bRedo;
public:
ModifLightIntensity (Light* poLight, float& fIntensity, BOOL pBlock=0);
void fn_vSetLightIntensity (float& fIntensity);
Light* fn_pGetLight (void) { return m_poLight; }
BOOL Do (void);
BOOL Undo (void);
protected:
void fn_vChangeIntensity (float& fIntensity);
};
class ModifLightNearFar : public CPA_Modif
{
protected:
Light* m_poLight;
MTH_tdxReal m_stNearValue;
MTH_tdxReal m_stFarValue;
MTH_tdxReal m_stOldNearValue;
MTH_tdxReal m_stOldFarValue;
BOOL m_bRedo;
public :
ModifLightNearFar (Light* poLight, MTH_tdxReal& xNearValue, MTH_tdxReal& xFarValue, BOOL pBlock=0);
void fn_vSetLightNearFar ( MTH_tdxReal& xNearValue, MTH_tdxReal& xFarValue );
Light* fn_pGetLight (void) { return m_poLight; }
BOOL Do (void);
BOOL Undo (void);
};
class ModifLightAlpha : public CPA_Modif
{
protected:
Light* m_poLight;
MTH_tdxReal m_stBigAlpha;
MTH_tdxReal m_stLittleAlpha;
MTH_tdxReal m_stOldBigAlpha;
MTH_tdxReal m_stOldLittleAlpha;
BOOL m_bRedo;
public :
ModifLightAlpha (Light* poLight, MTH_tdxReal& xLittleAplha, MTH_tdxReal& xBigAlpha, BOOL pBlock=0);
void fn_vSetLightAlpha ( MTH_tdxReal& xLittleAplha, MTH_tdxReal& xBigAlpha );
Light* fn_pGetLight (void) { return m_poLight; }
BOOL Do (void);
BOOL Undo (void);
};
class ModifLightOnOff : public CPA_Modif
{
protected:
Light* m_poLight;
BOOL m_bState;
BOOL m_bRedo;
public :
ModifLightOnOff (Light* poLight, BOOL bState, BOOL pBlock=0);
void fn_vSetLightOnOff ( BOOL bState );
Light* fn_pGetLight (void) { return m_poLight; }
BOOL Do (void);
BOOL Undo (void);
};
//CHINA WFQ (MT) 16/02/98 {
class ModifLight_Intensity_Min_Max : public CPA_Modif
{
protected:
Light* m_poLight;
MTH_tdxReal m_stIntensity_Min;
MTH_tdxReal m_stIntensity_Max;
MTH_tdxReal m_stOldIntensity_Min;
MTH_tdxReal m_stOldIntensity_Max;
public :
ModifLight_Intensity_Min_Max (Light* poLight, MTH_tdxReal& xIntensity_Min, MTH_tdxReal& xIntensity_Max, BOOL pBlock=0);
void fn_vSetLight_Intensity_Min_Max ( MTH_tdxReal& xIntensity_Min, MTH_tdxReal& xIntensity_Max );
Light* fn_pGetLight (void) { return m_poLight; }
BOOL Do (void);
BOOL Undo (void);
};
class ModifLight_Inter_Min_Pos : public CPA_Modif
{
protected:
Light* m_poLight;
MTH3D_tdstVector m_stInter_Min_Pos;
MTH3D_tdstVector m_stOldInter_Min_Pos;
public :
ModifLight_Inter_Min_Pos (Light* poLight, MTH3D_tdstVector xInter_Min_Pos, BOOL pBlock=0);
void fn_vSetLight_Inter_Min_Pos ( MTH3D_tdstVector xInter_Min_Pos );
Light* fn_pGetLight (void) { return m_poLight; }
BOOL Do (void);
BOOL Undo (void);
};
class ModifLight_Inter_Max_Pos : public CPA_Modif
{
protected:
Light* m_poLight;
MTH3D_tdstVector m_stInter_Max_Pos;
MTH3D_tdstVector m_stOldInter_Max_Pos;
public :
ModifLight_Inter_Max_Pos (Light* poLight, MTH3D_tdstVector xInter_Max_Pos, BOOL pBlock=0);
void fn_vSetLight_Inter_Max_Pos ( MTH3D_tdstVector xInter_Max_Pos );
Light* fn_pGetLight (void) { return m_poLight; }
BOOL Do (void);
BOOL Undo (void);
};
class ModifLight_Exter_Min_Pos : public CPA_Modif
{
protected:
Light* m_poLight;
MTH3D_tdstVector m_stExter_Min_Pos;
MTH3D_tdstVector m_stOldExter_Min_Pos;
public :
ModifLight_Exter_Min_Pos (Light* poLight, MTH3D_tdstVector xExter_Min_Pos, BOOL pBlock=0);
void fn_vSetLight_Exter_Min_Pos ( MTH3D_tdstVector xExter_Min_Pos );
Light* fn_pGetLight (void) { return m_poLight; }
BOOL Do (void);
BOOL Undo (void);
};
class ModifLight_Exter_Max_Pos : public CPA_Modif
{
protected:
Light* m_poLight;
MTH3D_tdstVector m_stExter_Max_Pos;
MTH3D_tdstVector m_stOldExter_Max_Pos;
public :
ModifLight_Exter_Max_Pos (Light* poLight, MTH3D_tdstVector xExter_Max_Pos, BOOL pBlock=0);
void fn_vSetLight_Exter_Max_Pos ( MTH3D_tdstVector xExter_Max_Pos );
Light* fn_pGetLight (void) { return m_poLight; }
BOOL Do (void);
BOOL Undo (void);
};
//ENDCHINA WFQ }
#endif