quadrilateralcowboy/tools/radiant/LightDlg.h
2020-06-12 14:06:25 -07:00

188 lines
5.2 KiB
C++

/*
===========================================================================
Doom 3 GPL Source Code
Copyright (C) 1999-2011 id Software LLC, a ZeniMax Media company.
This file is part of the Doom 3 GPL Source Code (?Doom 3 Source Code?).
Doom 3 Source Code is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Doom 3 Source Code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Doom 3 Source Code. If not, see <http://www.gnu.org/licenses/>.
In addition, the Doom 3 Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 Source Code. If not, please request a copy in writing from id Software at the address below.
If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
===========================================================================
*/
#if !defined(AFX_LIGHTDLG_H__9DF57520_ED11_4BD8_968A_F6A7E34167D2__INCLUDED_)
#define AFX_LIGHTDLG_H__9DF57520_ED11_4BD8_968A_F6A7E34167D2__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "GLWidget.h"
class CLightInfo {
public:
CLightInfo();
bool pointLight;
float fallOff;
CString strTexture;
bool equalRadius;
bool explicitStartEnd;
idVec3 lightStart;
idVec3 lightEnd;
idVec3 lightUp;
idVec3 lightRight;
idVec3 lightTarget;
idVec3 lightCenter;
idVec3 color;
bool fog;
idVec4 fogDensity;
bool strobe;
float strobeSpeed;
bool rotate;
float rotateSpeed;
idVec3 lightRadius;
bool castShadows;
bool castSpecular;
bool castDiffuse;
bool hasCenter;
bool isParallel;
void Defaults();
void DefaultProjected();
void DefaultPoint();
void FromDict( const idDict *e );
void ToDict( idDict *e );
void ToDictFromDifferences( idDict *e, const idDict *differences );
void ToDictWriteAllInfo( idDict *e );
};
/////////////////////////////////////////////////////////////////////////////
// CLightDlg dialog
class CLightDlg : public CDialog {
public:
CLightDlg(CWnd* pParent = NULL); // standard constructor
~CLightDlg();
void UpdateDialogFromLightInfo( void );
void UpdateDialog( bool updateChecks );
void UpdateLightInfoFromDialog( void );
void UpdateColor( float r, float g, float b, float a );
void SetSpecifics();
void EnableControls();
void LoadLightTextures();
void ColorButtons();
void SaveLightInfo( const idDict *differences );
// Dialog Data
//{{AFX_DATA(CLightDlg)
enum { IDD = IDD_DIALOG_LIGHT };
idGLWidget m_wndPreview;
CComboBox m_wndLights;
CSliderCtrl m_wndFalloff;
BOOL m_bEqualRadius;
BOOL m_bExplicitFalloff;
BOOL m_bPointLight;
BOOL m_bCheckProjected;
float m_fFallloff;
int m_nFalloff;
BOOL m_bRotate;
BOOL m_bShadows;
BOOL m_bSpecular;
BOOL m_bDiffuse;
float m_fEndX;
float m_fEndY;
float m_fEndZ;
float m_fRadiusX;
float m_fRadiusY;
float m_fRadiusZ;
float m_fRightX;
float m_fRightY;
float m_fRightZ;
float m_fRotate;
float m_fStartX;
float m_fStartY;
float m_fStartZ;
float m_fTargetX;
float m_fTargetY;
float m_fTargetZ;
float m_fUpX;
float m_fUpY;
float m_fUpZ;
BOOL m_hasCenter;
float m_centerX;
float m_centerY;
float m_centerZ;
BOOL m_bIsParallel;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CLightDlg)
public:
virtual BOOL DestroyWindow();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CLightDlg)
virtual BOOL OnInitDialog();
afx_msg void OnDestroy();
afx_msg void OnBtnTexture();
afx_msg void OnCheckEqualradius();
afx_msg void OnCheckExplicitfalloff();
afx_msg void OnCheckPoint();
afx_msg void OnCheckProjected();
afx_msg void OnRadioFalloff();
virtual void OnOK();
afx_msg void OnApply();
afx_msg void OnBtnColor();
afx_msg void OnBtnFog();
afx_msg void OnCheckFog();
afx_msg void OnCheckRotate();
afx_msg void OnCheckStrobe();
virtual void OnCancel();
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg void OnSelchangeComboTexture();
afx_msg void OnCheckCenter();
afx_msg void OnCheckParallel();
afx_msg void OnApplyDifferences();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
CBitmap colorBitmap;
CBitmap fogBitmap;
CLightInfo lightInfo;
CLightInfo lightInfoOriginal;
idVec3 color;
idGLDrawableMaterial * m_drawMaterial;
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_LIGHTDLG_H__9DF57520_ED11_4BD8_968A_F6A7E34167D2__INCLUDED_)