// DlgLightLoad.cpp : implementation file // #include "stdafx.h" #include "worldcreator.h" #include "DlgLightLoad.h" #include "SceneManager.h" #include ".\dlglightload.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CDlgLightLoad dialog CDlgLightLoad::CDlgLightLoad(CWnd* pParent /*=NULL*/) : CDialog(CDlgLightLoad::IDD, pParent) { //{{AFX_DATA_INIT(CDlgLightLoad) m_bObjectName = FALSE; m_strLightname = _T(""); m_fLightRange = 0.0f; m_bExtLight = TRUE; m_iLightSamples = 10; m_iShadowSamples = 10; m_ShadowFactors = 0.995f; m_iAmbient = 16; m_strEffect = _T(""); m_fExpose = 0.01f; //}}AFX_DATA_INIT m_cLightColor=0xffffffff; m_bEditMode=false; } void CDlgLightLoad::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDlgLightLoad) DDX_Control(pDX, IDC_CRL_LIGHTCOLOR, m_LightColor); DDX_Check(pDX, IDC_CHECK_OBJECTFILENAME, m_bObjectName); DDX_Text(pDX, IDC_EDIT_LIGHTNAME, m_strLightname); DDX_Text(pDX, IDC_EDIT_LIGHTRANGE, m_fLightRange); DDX_Check(pDX, IDC_CHECKEXT, m_bExtLight); DDX_Text(pDX, IDC_LIGHTSAMPLES, m_iLightSamples); DDX_Text(pDX, IDC_SHADOWSAMPLES, m_iShadowSamples); DDX_Text(pDX, IDC_SHADOWFACTOR, m_ShadowFactors); DDX_Text(pDX, IDC_AMBIENT, m_iAmbient); DDX_Text(pDX, IDC_EDIT1, m_strEffect); DDX_Text(pDX, IDC_EXPOSE, m_fExpose); //}}AFX_DATA_MAP DDX_ColourPicker(pDX, IDC_CRL_LIGHTCOLOR, m_cLightColor); } BEGIN_MESSAGE_MAP(CDlgLightLoad, CDialog) //{{AFX_MSG_MAP(CDlgLightLoad) ON_BN_CLICKED(IDC_CHECK_OBJECTFILENAME, OnCheckObjectfilename) ON_BN_CLICKED(IDC_CHECKEXT, OnCheckext) ON_BN_CLICKED(IDC_ESFBUTTON, OnEsfbutton) //}}AFX_MSG_MAP ON_EN_CHANGE(IDC_LIGHTSAMPLES, OnEnChangeLightsamples) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDlgLightLoad message handlers void CDlgLightLoad::OnCheckObjectfilename() { // TODO: Add your control notification handler code here UpdateData(); CWnd* forrename=GetDlgItem(IDC_CHECK_OBJECTFILENAME); if(m_bObjectName) { CString strFilter = R3SFILE; CFileDialog filedia(TRUE,LIGHTOBJECTPATH,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this); filedia.m_ofn.lpstrInitialDir=LIGHTOBJECTPATH; filedia.DoModal(); CString filename=filedia.GetFileName(); if(filename!="") { forrename->SetWindowText(filename.LockBuffer()); m_strObjectFilename=filename; } else { m_bObjectName=FALSE; } } else { forrename->SetWindowText("¾øÀ½"); } UpdateData(FALSE); } void CDlgLightLoad::OnOK() { // TODO: Add extra validation here UpdateData(TRUE); if(m_bExtLight == FALSE) { if(m_bEditMode) { if(m_fLightRange==0.0f) AfxMessageBox("¶óÀÌÆ® ¹üÀ§°¡ 0.0m ÀÔ´Ï´Ù."); else { vector3 vecAddLightPos=CSceneManager::m_pBspScene->m_HouseObject->m_pBspObject->m_EditLightList[CSceneManager::m_pBspScene->m_HouseObject->m_pBspObject->m_SelectLight].m_vecLightPos; CSceneManager::m_pBspScene->m_HouseObject->m_pBspObject->DeleteLight(); color AddColor; AddColor.a=0xff; AddColor.r=GetRValue(m_cLightColor); AddColor.g=GetGValue(m_cLightColor); AddColor.b=GetBValue(m_cLightColor); CSceneManager::m_pBspScene->m_HouseObject->m_pBspObject->AddLight(vecAddLightPos,m_fLightRange,AddColor); CSceneManager::m_pBspScene->m_HouseObject->m_pBspObject->m_SelectLight=CSceneManager::m_pBspScene->m_HouseObject->m_pBspObject->m_EditLightList.num-1; } return; } if(m_strObjectFilename=="") { AfxMessageBox("¿ÀºêÁ§Æ® ÆÄÀÏÀ̸§À» ¼±ÅÃÇϼ¼¿ä"); return; } if(m_fLightRange==0.0f) { AfxMessageBox("¶óÀÌÆ® ¹üÀ§°¡ 0.0m ÀÔ´Ï´Ù."); return; } if(m_strLightname=="") { m_strLightname=m_strObjectFilename; } } CDialog::OnOK(); } void CDlgLightLoad::OnCheckext() { // TODO: Add your control notification handler code here m_bExtLight = (m_bExtLight == TRUE) ? FALSE : TRUE; UpdateData(FALSE); } void CDlgLightLoad::OnEsfbutton() { // TODO: Add your control notification handler code here char str[] = "Esf ÆÄÀÏ(*.Esf) |*.Esf| ¸ðµçÆÄÀÏ(*.*)|*.*||"; CString strFilter = str; CFileDialog filedia(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this); filedia.DoModal(); m_strEffect = filedia.GetFileName(); UpdateData(FALSE); } void CDlgLightLoad::OnEnChangeLightsamples() { // TODO: RICHEDIT ÄÁÆ®·ÑÀÎ °æ¿ì ÀÌ ÄÁÆ®·ÑÀº // CDialog::¸¶½ºÅ©¿¡ OR ¿¬»êÇÏ¿© ¼³Á¤µÈ ENM_CHANGE Ç÷¡±×¸¦ ÁöÁ¤ÇÏ¿© // CRichEditCtrl().SetEventMask()¸¦ È£ÃâÇϵµ·Ï OnInitDialog() ÇÔ¼ö¸¦ ÀçÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é // ÀÌ ¾Ë¸²À» º¸³»Áö ¾Ê½À´Ï´Ù. // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. }