490 lines
17 KiB
C++
490 lines
17 KiB
C++
/*
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Description : SpotMod.cpp
|
|
//
|
|
// Modification classes
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// inherit from CPA_Modif
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Creation date: 11 feb 1997 Author: J Thénoz
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Modification date: Author:
|
|
//
|
|
//
|
|
//
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
*/
|
|
|
|
#include "stdafx.h"
|
|
#include "acp_base.h"
|
|
#include "resource.h"
|
|
#include "itf.h"
|
|
#include "LightMod.hpp"
|
|
#include "LightObj.hpp"
|
|
#include "LightDia.hpp"
|
|
#include "Inter.hpp"
|
|
|
|
//------ Modif of RGB
|
|
ModifLightRGB::ModifLightRGB (Light* poLight, GEO_tdstColor& stColor, BOOL pBlock) : CPA_Modif (TYPE_CHANGE_RGB,"",pBlock)
|
|
{
|
|
m_poLight = poLight;
|
|
m_stColor = stColor;
|
|
GLI_xGetLightColor ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &m_stOldColor );
|
|
m_bRedo = FALSE;
|
|
if (poLight) SetName(CString("Change color of ")+poLight->GetName());
|
|
}
|
|
|
|
void ModifLightRGB::fn_vSetLightRGB ( GEO_tdstColor& stColor )
|
|
{
|
|
m_stColor = stColor;
|
|
m_poLight->fn_vNotifySave ();
|
|
GLI_xSetLightColor ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &m_stColor );
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->fn_vSetModify (TRUE);
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
}
|
|
|
|
BOOL ModifLightRGB::Do (void)
|
|
{
|
|
GLI_xSetLightColor ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &m_stColor );
|
|
m_poLight->fn_vNotifySave ();
|
|
if (m_bRedo) Light::fn_pGetDialog()->fn_vEdit (m_poLight);
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
m_poLight->fn_vSetModify (TRUE);
|
|
m_bRedo = TRUE;
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL ModifLightRGB::Undo (void)
|
|
{
|
|
GLI_xSetLightColor ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &m_stOldColor );
|
|
m_poLight->fn_vNotifySave ();
|
|
Light::fn_pGetDialog()->fn_vEdit (m_poLight);
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->fn_vSetModify (TRUE);
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
//------ Modif Intensity
|
|
ModifLightIntensity::ModifLightIntensity (Light* poLight, float& fIntensity, BOOL pBlock) : CPA_Modif (TYPE_CHANGE_INTENSITY,"",pBlock)
|
|
{
|
|
m_poLight = poLight;
|
|
m_fIntensity = fIntensity;
|
|
m_fOldIntensity = m_poLight->fn_fGetIntensity();
|
|
m_bRedo = FALSE;
|
|
GLI_xGetLightColor ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &m_stColor );
|
|
float fCurrentIntensity = m_poLight->fn_fGetIntensity();
|
|
if (fCurrentIntensity>1e-6)
|
|
{
|
|
m_stColor.xR /= fCurrentIntensity;
|
|
m_stColor.xG /= fCurrentIntensity;
|
|
m_stColor.xB /= fCurrentIntensity;
|
|
}
|
|
else
|
|
{
|
|
m_stColor.xR = 0.f;
|
|
m_stColor.xG = 0.f;
|
|
m_stColor.xB = 0.f;
|
|
}
|
|
if (poLight) SetName(CString("Change intensity of ")+poLight->GetName());
|
|
}
|
|
|
|
void ModifLightIntensity::fn_vSetLightIntensity (float& fIntensity)
|
|
{
|
|
m_fIntensity = fIntensity;
|
|
m_poLight->fn_vNotifySave ();
|
|
fn_vChangeIntensity (m_fIntensity);
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->fn_vSetModify (TRUE);
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
}
|
|
|
|
BOOL ModifLightIntensity::Do (void)
|
|
{
|
|
fn_vChangeIntensity (m_fIntensity);
|
|
m_poLight->fn_vNotifySave ();
|
|
if (m_bRedo) Light::fn_pGetDialog()->fn_vEdit (m_poLight);
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
m_poLight->fn_vSetModify (TRUE);
|
|
m_bRedo = TRUE;
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL ModifLightIntensity::Undo (void)
|
|
{
|
|
fn_vChangeIntensity (m_fOldIntensity);
|
|
m_poLight->fn_vNotifySave ();
|
|
Light::fn_pGetDialog()->fn_vEdit (m_poLight);
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
m_poLight->fn_vSetModify (TRUE);
|
|
return TRUE;
|
|
}
|
|
|
|
void ModifLightIntensity::fn_vChangeIntensity (float& fIntensity)
|
|
{
|
|
if (m_poLight->fn_lGetType() == GLI_C_lFogLight)
|
|
fIntensity = fIntensity / 10.0f;
|
|
|
|
// color
|
|
GEO_tdstColor stColor;
|
|
stColor.xR = m_stColor.xR * fIntensity;
|
|
stColor.xG = m_stColor.xG * fIntensity;
|
|
stColor.xB = m_stColor.xB * fIntensity;
|
|
stColor.xA = m_stColor.xA;
|
|
|
|
if (m_poLight->fn_lGetType() == GLI_C_lFogLight)
|
|
{
|
|
float fMax = 1.0f;
|
|
if (stColor.xR > fMax)
|
|
fMax = stColor.xR;
|
|
if (stColor.xG > fMax)
|
|
fMax = stColor.xG;
|
|
if (stColor.xB > fMax)
|
|
fMax = stColor.xB;
|
|
|
|
stColor.xR = stColor.xR / fMax;
|
|
stColor.xG = stColor.xG / fMax;
|
|
stColor.xB = stColor.xB / fMax;
|
|
}
|
|
|
|
GLI_xSetLightColor ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &stColor );
|
|
|
|
// intensity
|
|
m_poLight->fn_vSetIntensity (fIntensity);
|
|
}
|
|
|
|
//------ Modif of Near Far
|
|
ModifLightNearFar::ModifLightNearFar (Light* poLight, MTH_tdxReal& xNearValue, MTH_tdxReal& xFarValue, BOOL pBlock) : CPA_Modif (TYPE_CHANGE_NEARFAR,"",pBlock)
|
|
{
|
|
m_poLight = poLight;
|
|
m_stNearValue = xNearValue;
|
|
m_stFarValue = xFarValue;
|
|
m_bRedo = FALSE;
|
|
if (poLight) SetName(CString("Change near/far of ")+poLight->GetName());
|
|
}
|
|
|
|
void ModifLightNearFar::fn_vSetLightNearFar ( MTH_tdxReal& xNearValue, MTH_tdxReal& xFarValue )
|
|
{
|
|
m_stNearValue = xNearValue;
|
|
m_stFarValue = xFarValue;
|
|
GLI_vSetLightNearFar ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stNearValue, m_stFarValue );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->fn_vSetModify (TRUE);
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
}
|
|
|
|
BOOL ModifLightNearFar::Do (void)
|
|
{
|
|
GLI_vGetLightNearFar ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &m_stOldNearValue, &m_stOldFarValue );
|
|
GLI_vSetLightNearFar ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stNearValue, m_stFarValue );
|
|
if (m_bRedo) Light::fn_pGetDialog()->fn_vEdit (m_poLight);
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->fn_vSetModify (TRUE);
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
m_bRedo = TRUE;
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL ModifLightNearFar::Undo (void)
|
|
{
|
|
GLI_vSetLightNearFar ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stOldNearValue, m_stOldFarValue );
|
|
Light::fn_pGetDialog()->fn_vEdit (m_poLight);
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
//------ Modif of Alpha
|
|
ModifLightAlpha::ModifLightAlpha (Light* poLight, MTH_tdxReal& xLittleAlpha, MTH_tdxReal& xBigAlpha, BOOL pBlock) : CPA_Modif (TYPE_CHANGE_ALPHA,"",pBlock)
|
|
{
|
|
m_poLight = poLight;
|
|
m_stLittleAlpha = xLittleAlpha;
|
|
m_stBigAlpha = xBigAlpha;
|
|
m_bRedo = FALSE;
|
|
GLI_vGetLightAlphas ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &m_stOldLittleAlpha, &m_stOldBigAlpha );
|
|
if (poLight) SetName(CString("Modify alpha of ")+poLight->GetName());
|
|
}
|
|
|
|
void ModifLightAlpha::fn_vSetLightAlpha ( MTH_tdxReal& xLittleAlpha, MTH_tdxReal& xBigAlpha )
|
|
{
|
|
m_stLittleAlpha = xLittleAlpha;
|
|
m_stBigAlpha = xBigAlpha;
|
|
GLI_vSetLightAlphas ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stLittleAlpha, m_stBigAlpha );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->fn_vSetModify (TRUE);
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
}
|
|
|
|
BOOL ModifLightAlpha::Do (void)
|
|
{
|
|
GLI_vSetLightAlphas ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stLittleAlpha, m_stBigAlpha );
|
|
if (m_bRedo) Light::fn_pGetDialog()->fn_vEdit (m_poLight);
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->fn_vSetModify (TRUE);
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
m_bRedo=TRUE;
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL ModifLightAlpha::Undo (void)
|
|
{
|
|
GLI_vSetLightAlphas ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stOldLittleAlpha, m_stOldBigAlpha );
|
|
Light::fn_pGetDialog()->fn_vEdit (m_poLight);
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->fn_vSetModify (TRUE);
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
//----- Modif On/Off
|
|
ModifLightOnOff::ModifLightOnOff (Light* poLight, BOOL bState, BOOL pBlock) : CPA_Modif (TYPE_CHANGE_STATE,"",pBlock)
|
|
{
|
|
m_poLight = poLight;
|
|
m_bState = bState;
|
|
m_bRedo = FALSE;
|
|
if (poLight) SetName(CString("Switch ")+poLight->GetName());
|
|
}
|
|
|
|
void ModifLightOnOff::fn_vSetLightOnOff ( BOOL bState )
|
|
{
|
|
m_bState = bState;
|
|
//ANNECY CT 19/02/98{
|
|
GLI_vSetLightPerso( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_bState );
|
|
//ENDANNECY CT}
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
m_poLight->GetInterface()->fn_GetDialogList()->fn_vRedrawElement(m_poLight->GetSuperObject(), FALSE);
|
|
}
|
|
|
|
BOOL ModifLightOnOff::Do (void)
|
|
{
|
|
//ANNECY CT 19/02/98{
|
|
GLI_vSetLightPerso( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_bState );
|
|
//ENDANNECY CT}
|
|
m_poLight->fn_vNotifySave ();
|
|
if (m_bRedo) Light::fn_pGetDialog()->fn_vEdit (m_poLight);
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
m_poLight->GetInterface()->fn_GetDialogList()->fn_vRedrawElement(m_poLight->GetSuperObject(), FALSE);
|
|
m_bRedo = TRUE;
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL ModifLightOnOff::Undo (void)
|
|
{
|
|
//ANNECY CT 19/02/98{
|
|
GLI_vSetLightPerso( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), !m_bState );
|
|
//ENDANNECY CT}
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
m_poLight->GetInterface()->fn_GetDialogList()->fn_vRedrawElement(m_poLight->GetSuperObject(), FALSE);
|
|
return TRUE;
|
|
}
|
|
|
|
//CHINA WFQ (MT) 16/02/98 {
|
|
|
|
ModifLight_Intensity_Min_Max::ModifLight_Intensity_Min_Max (Light* poLight, MTH_tdxReal& xIntensity_Min, MTH_tdxReal& xIntensity_Max, BOOL pBlock) : CPA_Modif (TYPE_CHANGE_INTENSITY_MIN_MAX,"",pBlock)
|
|
{
|
|
m_poLight = poLight;
|
|
m_stIntensity_Min = xIntensity_Min;
|
|
m_stIntensity_Max = xIntensity_Max;
|
|
SetName(CString("Change Intensity Min/Max of ")+poLight->GetSuperObject()->GetName());
|
|
}
|
|
|
|
void ModifLight_Intensity_Min_Max::fn_vSetLight_Intensity_Min_Max ( MTH_tdxReal& xIntensity_Min, MTH_tdxReal& xIntensity_Max )
|
|
{
|
|
m_stIntensity_Min = xIntensity_Min;
|
|
m_stIntensity_Max = xIntensity_Max;
|
|
GLI_vSetLight_Intensity_Min_Max ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stIntensity_Min, m_stIntensity_Max );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
}
|
|
|
|
|
|
BOOL ModifLight_Intensity_Min_Max::Do (void)
|
|
{
|
|
GLI_vGetLight_Intensity_Min_Max ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &m_stOldIntensity_Min, &m_stOldIntensity_Max );
|
|
GLI_vSetLight_Intensity_Min_Max ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stIntensity_Min, m_stIntensity_Max );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL ModifLight_Intensity_Min_Max::Undo (void)
|
|
{
|
|
GLI_vSetLight_Intensity_Min_Max ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stOldIntensity_Min, m_stOldIntensity_Max );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
//
|
|
|
|
ModifLight_Inter_Min_Pos::ModifLight_Inter_Min_Pos (Light* poLight, MTH3D_tdstVector xInter_Min_Pos, BOOL pBlock) : CPA_Modif (TYPE_CHANGE_INTER_MIN,"",pBlock)
|
|
{
|
|
m_poLight = poLight;
|
|
m_stInter_Min_Pos = xInter_Min_Pos;
|
|
SetName(CString("Change Inter Min of ")+poLight->GetSuperObject()->GetName());
|
|
}
|
|
|
|
void ModifLight_Inter_Min_Pos::fn_vSetLight_Inter_Min_Pos ( MTH3D_tdstVector xInter_Min_Pos )
|
|
{
|
|
m_stInter_Min_Pos = xInter_Min_Pos;
|
|
GLI_vSetLight_Inter_Min_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stInter_Min_Pos );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
}
|
|
|
|
|
|
BOOL ModifLight_Inter_Min_Pos::Do (void)
|
|
{
|
|
GLI_vGetLight_Inter_Min_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &m_stOldInter_Min_Pos );
|
|
GLI_vSetLight_Inter_Min_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stInter_Min_Pos );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL ModifLight_Inter_Min_Pos::Undo (void)
|
|
{
|
|
GLI_vSetLight_Inter_Min_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stOldInter_Min_Pos );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
//
|
|
|
|
ModifLight_Inter_Max_Pos::ModifLight_Inter_Max_Pos (Light* poLight, MTH3D_tdstVector xInter_Max_Pos, BOOL pBlock) : CPA_Modif (TYPE_CHANGE_INTER_MAX,"",pBlock)
|
|
{
|
|
m_poLight = poLight;
|
|
m_stInter_Max_Pos = xInter_Max_Pos;
|
|
SetName(CString("Change Inter Max of ")+poLight->GetSuperObject()->GetName());
|
|
}
|
|
|
|
void ModifLight_Inter_Max_Pos::fn_vSetLight_Inter_Max_Pos ( MTH3D_tdstVector xInter_Max_Pos )
|
|
{
|
|
m_stInter_Max_Pos = xInter_Max_Pos;
|
|
GLI_vSetLight_Inter_Max_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stInter_Max_Pos );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
}
|
|
|
|
|
|
BOOL ModifLight_Inter_Max_Pos::Do (void)
|
|
{
|
|
GLI_vGetLight_Inter_Max_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &m_stOldInter_Max_Pos );
|
|
GLI_vSetLight_Inter_Max_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stInter_Max_Pos );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL ModifLight_Inter_Max_Pos::Undo (void)
|
|
{
|
|
GLI_vSetLight_Inter_Max_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stOldInter_Max_Pos );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
//
|
|
|
|
ModifLight_Exter_Min_Pos::ModifLight_Exter_Min_Pos (Light* poLight, MTH3D_tdstVector xExter_Min_Pos, BOOL pBlock) : CPA_Modif (TYPE_CHANGE_EXTER_MIN,"",pBlock)
|
|
{
|
|
m_poLight = poLight;
|
|
m_stExter_Min_Pos = xExter_Min_Pos;
|
|
SetName(CString("Change Exter Min of ")+poLight->GetSuperObject()->GetName());
|
|
}
|
|
|
|
void ModifLight_Exter_Min_Pos::fn_vSetLight_Exter_Min_Pos( MTH3D_tdstVector xExter_Min_Pos )
|
|
{
|
|
m_stExter_Min_Pos = xExter_Min_Pos;
|
|
GLI_vSetLight_Exter_Min_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stExter_Min_Pos );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
}
|
|
|
|
|
|
BOOL ModifLight_Exter_Min_Pos::Do (void)
|
|
{
|
|
GLI_vGetLight_Exter_Min_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &m_stOldExter_Min_Pos );
|
|
GLI_vSetLight_Exter_Min_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stExter_Min_Pos );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL ModifLight_Exter_Min_Pos::Undo (void)
|
|
{
|
|
GLI_vSetLight_Exter_Min_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stOldExter_Min_Pos );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
//
|
|
|
|
ModifLight_Exter_Max_Pos::ModifLight_Exter_Max_Pos (Light* poLight, MTH3D_tdstVector xExter_Max_Pos, BOOL pBlock) : CPA_Modif (TYPE_CHANGE_EXTER_MAX,"",pBlock)
|
|
{
|
|
m_poLight = poLight;
|
|
m_stExter_Max_Pos = xExter_Max_Pos;
|
|
SetName(CString("Change Exter Max of ")+poLight->GetSuperObject()->GetName());
|
|
}
|
|
|
|
void ModifLight_Exter_Max_Pos::fn_vSetLight_Exter_Max_Pos ( MTH3D_tdstVector xExter_Max_Pos )
|
|
{
|
|
m_stExter_Max_Pos = xExter_Max_Pos;
|
|
GLI_vSetLight_Exter_Max_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stExter_Max_Pos );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
}
|
|
|
|
|
|
BOOL ModifLight_Exter_Max_Pos::Do (void)
|
|
{
|
|
GLI_vGetLight_Exter_Max_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), &m_stOldExter_Max_Pos );
|
|
GLI_vSetLight_Exter_Max_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stExter_Max_Pos );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL ModifLight_Exter_Max_Pos::Undo (void)
|
|
{
|
|
GLI_vSetLight_Exter_Max_Pos ( (GLI_tdxHandleToLight)m_poLight->GetEngineStruct(), m_stOldExter_Max_Pos );
|
|
m_poLight->fn_vNotifySave ();
|
|
m_poLight->GetInterface()->fn_vComputeRLI ();
|
|
m_poLight->GetInterface()->GetInterface()->fn_vUpdateAll (E_mc_JustDraw);
|
|
return TRUE;
|
|
}
|
|
|
|
//ENDCHINA WFQ }
|