//ROMTEAM WorldEditor //////////////////////////////////////////////////////////////////////////////////////// // File : ITcon3D.cpp: implementation of the DlgITCone class. // Author : Ionut Grozea // Date : 97.11 // Description : //////////////////////////////////////////////////////////////////////////////////////// #include "DlgITCone.h" #include "stdafx.h" #include "ACP_Base.h" #include "ITF.h" #include "incGAM.h" #include "GLI.h" #include "DPT.h" #undef CPA_WANTS_IMPORT #undef CPA_EXPORT #define CPA_WANTS_EXPORT #include "OGD.h" #undef CPA_WANTS_EXPORT #define CPA_WANTS_IMPORT class ITCon3D; ////////////////////////////////////////////////////////////////////////////////////////////////////// // Method : DlgITCone::DlgITCone // Date : 97.11 ////////////////////////////////////////////////////////////////////////////////////////////////////// // Description : constructor to create a new dialog // Author : Ionut Grozea ////////////////////////////////////////////////////////////////////////////////////////////////////// // Modification : // Date : // By : ////////////////////////////////////////////////////////////////////////////////////////////////////// DlgITCone::DlgITCone(ITCon3D * pCon , float Radius , float Height ,int Nt , int Ns , CWnd* pParent /*=NULL*/) : CDialog(DlgITCone::IDD, pParent) { m_poCon = pCon; m_fHeightOld = Height; m_fRadiusOld = Radius; m_iNxOld = Nt; m_iNyOld = Ns; //{{AFX_DATA_INIT(DlgITCone) m_fHeight = Height; m_fRadius = Radius; m_iNx = Nt; m_iNy = Ns; //}}AFX_DATA_INIT } void DlgITCone::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DlgITCone) DDX_Control(pDX, IDC_SLIDERY, m_SliderY); DDX_Control(pDX, IDC_SLIDERX, m_SliderX); DDX_Control(pDX, IDC_SLIDERRADIUS, m_fSliderRadius); DDX_Control(pDX, IDC_SLIDERHEIGHT, m_fSliderHeight); DDX_Text(pDX, IDC_EDITHEIGHT, m_fHeight); DDX_Text(pDX, IDC_EDITRADIUS, m_fRadius); DDX_Text(pDX, IDC_EDITX, m_iNx); DDV_MinMaxInt(pDX, m_iNx, 3, 20); DDX_Text(pDX, IDC_EDITY, m_iNy); DDV_MinMaxInt(pDX, m_iNy, 3, 20); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DlgITCone, CDialog) //{{AFX_MSG_MAP(DlgITCone) ON_WM_HSCROLL() ON_EN_CHANGE(IDC_EDITHEIGHT, OnChangeEditheight) ON_EN_CHANGE(IDC_EDITRADIUS, OnChangeEditradius) ON_EN_CHANGE(IDC_EDITX, OnChangeEditx) ON_EN_CHANGE(IDC_EDITY, OnChangeEdity) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DlgITCone message handlers void DlgITCone::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { CDialog::OnHScroll(nSBCode, nPos, pScrollBar); CWnd *m_Slider1 , *m_Slider2 ,*m_Slider3 , *m_Slider4 ; m_Slider1 = GetDlgItem(IDC_SLIDERRADIUS); m_Slider2 = GetDlgItem(IDC_SLIDERHEIGHT); m_Slider3 = GetDlgItem(IDC_SLIDERX); m_Slider4 = GetDlgItem(IDC_SLIDERY); if (m_Slider1 == pScrollBar) { m_fRadius=mfn_fSliderInt2Float(m_fSliderRadius.GetPos()); UpdateData(FALSE); m_poCon->SetRadius(m_fRadius); } if (m_Slider2 == pScrollBar) { m_fHeight=mfn_fSliderInt2Float(m_fSliderHeight.GetPos()); UpdateData(FALSE); m_poCon->SetHeight(m_fHeight); } if (m_Slider3 == pScrollBar) { m_iNx= m_SliderX.GetPos(); UpdateData(FALSE); m_poCon->SetSamplingRate(m_iNx , m_iNy); } if (m_Slider4 == pScrollBar) { m_iNy= m_SliderY.GetPos(); UpdateData(FALSE); m_poCon->SetSamplingRate(m_iNx , m_iNy+1); } (((DEV_MultiDevice*)g_oFrameGest.ma_p_oWinArray[2][2]->GetActiveView())->DrawObject()); } int DlgITCone::mfn_iGetIntPos(float fVal) { return (int) ( fVal* 10); } float DlgITCone::mfn_fSliderInt2Float(int sliderVal) { return sliderVal/10.0f; } BOOL DlgITCone::OnInitDialog() { CDialog::OnInitDialog(); m_SliderX.SetRange(4,20); m_SliderY.SetRange(3,20); m_fSliderRadius.SetPos(mfn_iGetIntPos(m_fRadius)); m_fSliderHeight.SetPos(mfn_iGetIntPos(m_fHeight)); m_SliderX.SetPos(m_iNx); m_SliderY.SetPos(m_iNy); UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DlgITCone::OnChangeEditheight() { UpdateData(); m_fSliderHeight.SetPos(mfn_iGetIntPos(m_fHeight)); m_poCon->SetHeight(m_fHeight); (((DEV_MultiDevice*)g_oFrameGest.ma_p_oWinArray[2][2]->GetActiveView())->DrawObject()); } void DlgITCone::OnChangeEditradius() { UpdateData(); m_fSliderRadius.SetPos(mfn_iGetIntPos(m_fRadius)); m_poCon->SetRadius(m_fRadius); (((DEV_MultiDevice*)g_oFrameGest.ma_p_oWinArray[2][2]->GetActiveView())->DrawObject()); } void DlgITCone::OnChangeEditx() { UpdateData(); m_SliderX.SetPos(m_iNx); m_poCon->SetSamplingRate(m_iNx , m_iNy); (((DEV_MultiDevice*)g_oFrameGest.ma_p_oWinArray[2][2]->GetActiveView())->DrawObject()); } void DlgITCone::OnChangeEdity() { UpdateData(); m_SliderY.SetPos(m_iNy); m_poCon->SetSamplingRate(m_iNx , m_iNy+1); (((DEV_MultiDevice*)g_oFrameGest.ma_p_oWinArray[2][2]->GetActiveView())->DrawObject()); } void DlgITCone::OnCancel() { m_iNx = m_iNxOld; m_iNy = m_iNyOld; m_fRadius = m_fRadiusOld; m_fHeight= m_fHeightOld; m_poCon->SetSamplingRate(m_iNx , m_iNy); m_poCon->SetRadius(m_fRadius); m_poCon->SetHeight(m_fHeight); CDialog::OnCancel(); CDialog::OnCancel(); }