www.pudn.com > SurfWareNew06.3.5(LYW).rar > EditNurbsCurve.cpp


// EditNurbsCurve.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "surfware.h" 
#include "EditNurbsCurve.h" 
#include "include/PredefineData.h" 
#include "MainFrm.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CEditNurbsCurve dialog 
 
 
CEditNurbsCurve::CEditNurbsCurve(CWnd* pParent /*=NULL*/) 
	: CDialog(CEditNurbsCurve::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CEditNurbsCurve) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
} 
 
 
void CEditNurbsCurve::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CEditNurbsCurve) 
	DDX_Control(pDX, IDC_EDIT_CV_1, m_SplitBtn); 
	DDX_Control(pDX, IDC_EDIT_CV_2, m_QuandratciBtn); 
	DDX_Control(pDX, IDC_EDIT_CV_3, m_matchBtn); 
	DDX_Control(pDX, IDC_EDIT_CV_4, m_IntersectBtn); 
	DDX_Control(pDX, IDC_EDIT_CV_5, m_ExtendBtn); 
	DDX_Control(pDX, IDC_EDIT_CV_6, m_CombineBtn); 
	DDX_Control(pDX, IDC_EDIT_CV_7, m_ControlBtn); 
	DDX_Control(pDX, IDC_EDIT_CV_8, m_smoothBtn); 
	DDX_Control(pDX, IDC_EDIT_CV_9, m_planarBtn); 
	DDX_Control(pDX, IDC_EDIT_CV_10, m_editBtn); 
	DDX_Control(pDX, IDC_EDIT_CV_11, m_deleteBtn); 
	DDX_Control(pDX, IDC_EDIT_CV_12, m_connectBtn); 
	DDX_Control(pDX, IDC_EDIT_CV_13, m_addBtn); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CEditNurbsCurve, CDialog) 
	//{{AFX_MSG_MAP(CEditNurbsCurve) 
	ON_BN_CLICKED(IDC_EDIT_CV_7, OnEditCP) 
	ON_BN_CLICKED(IDC_EDIT_CV_11, OnDeleteCPT) 
	ON_BN_CLICKED(IDC_EDIT_CV_1, OnSplitCV) 
	ON_BN_CLICKED(IDC_EDIT_CV_12, OnCurveMerge) 
	ON_BN_CLICKED(IDC_EDIT_CV_5, OnExtendCV) 
	ON_BN_CLICKED(IDC_EDIT_CV_14, OnBlend2Curves) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CEditNurbsCurve message handlers 
 
BOOL CEditNurbsCurve::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
 
	SetPublicAttribs(); 
 
	SET_DLG_POS; 
 
	static ButtonInfoType ButtonInfo[]= 
	{ 
		{&this->m_addBtn,			IDI_LEFTPANNEL_ADD,OPT_NOT_CARRY_OUT}, 
		{&this->m_CombineBtn,		IDI_LEFTPANNEL_COMBINE,OPT_NOT_CARRY_OUT}, 
		{&this->m_connectBtn,		IDI_LEFTPANNEL_CVCONNECT,OPT_NOT_CARRY_OUT}, 
		{&this->m_ControlBtn,		IDI_LEFTPANNEL_CVCONTROL,OPT_ED_NB_MVCP}, 
		{&this->m_deleteBtn,		IDI_LEFTPANNEL_DELETE,OPT_ED_NB_CV_DELCPT}, 
		{&this->m_editBtn,			IDI_LEFTPANNEL_EDIT,OPT_NOT_CARRY_OUT}, 
		{&this->m_ExtendBtn,		IDI_LEFTPANNEL_EXTEND,OPT_ED_NB_CV_EXT}, 
		{&this->m_IntersectBtn,		IDI_LEFTPANNEL_CVINTERSECT,OPT_NOT_CARRY_OUT}, 
		{&this->m_matchBtn,			IDI_LEFTPANNEL_MATCH,OPT_NOT_CARRY_OUT}, 
		{&this->m_planarBtn,		IDI_LEFTPANNEL_PLANAR,OPT_NOT_CARRY_OUT}, 
		{&this->m_QuandratciBtn,	IDI_LEFTPANNEL_QUADRATIC,OPT_NOT_CARRY_OUT}, 
		{&this->m_smoothBtn,		IDI_LEFTPANNEL_SMOOTH,OPT_NOT_CARRY_OUT}, 
		{&this->m_SplitBtn,			IDI_LEFTPANNEL_SPLIT,OPT_ED_CV_SPLIT}, 
	}; 
	 
	btn=sizeof(ButtonInfo)/sizeof(ButtonInfoType); 
 
	SetButtons(ButtonInfo); 
	 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
void CEditNurbsCurve::OnEditCP()  
{ 
	if(GetCurveSelCount(1)) 
	{ 
		UpdateOptInfo(OPT_ED_NB_MVCP); 
		m_pDoc->m_CurrentSelCurve.GetHead()->m_bShowScaffold=TRUE; 
		m_pDoc->UpdateAllViews(NULL); 
	} 
} 
 
void CEditNurbsCurve::OnDeleteCPT()  
{ 
	if(GetCurveSelCount(1)) 
	{ 
		UpdateOptInfo(OPT_ED_NB_CV_DELCPT); 
		m_pDoc->m_CurrentSelCurve.GetHead()->m_bShowScaffold=TRUE; 
		m_pDoc->UpdateAllViews(NULL); 
	} 
} 
 
void CEditNurbsCurve::OnSplitCV()  
{ 
	if(GetCurveSelCount(1)) 
	{ 
		UpdateOptInfo(OPT_ED_CV_SPLIT); 
		m_pDoc->SplitCurve(); 
//		m_pDoc->UpdateAllViews(NULL); 
	} 
} 
 
void CEditNurbsCurve::OnCurveMerge()  
{ 
	if (GetCurveSelCount(2)) { 
		UpdateOptInfo(OPT_ED_NB_CV_MERGE); 
		m_pDoc->CurveMerge(); 
	} 
} 
 
void CEditNurbsCurve::OnExtendCV()  
{ 
	if (GetCurveSelCount(1,TRUE)){ 
		UpdateOptInfo(OPT_ED_NB_CV_EXT); 
	}	 
} 
 
void CEditNurbsCurve::OnBlend2Curves()  
{ 
	// TODO: Add your control notification handler code here 
	if (GetCurveSelCount(2)) { 
		UpdateOptInfo(OPT_ED_NB_CV_BLEND); 
		m_pDoc->CurveBlending(); 
	} 
}