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


// EditNurbsSurface.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "surfware.h" 
#include "EditNurbsSurface.h" 
#include "include/PredefineData.h" 
#include "MainFrm.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CEditNurbsSurface dialog 
 
 
CEditNurbsSurface::CEditNurbsSurface(CWnd* pParent /*=NULL*/) 
	: CDialog(CEditNurbsSurface::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CEditNurbsSurface) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
} 
 
 
void CEditNurbsSurface::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CEditNurbsSurface) 
	DDX_Control(pDX, IDC_EDIT_SF_9, m_TrimBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_8, m_SculptBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_7, m_RibbonBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_6, m_MeshBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_5, m_IsoCurveBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_4, m_InternalBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_3, m_InfluenceBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_2, m_FitBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_12, m_ConvertBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_11, m_ControlBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_10, m_ConnectBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_1, m_BlendBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_13, m_SplitBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_14, m_ISOBtn); 
	DDX_Control(pDX, IDC_EDIT_SF_15, m_ExtBtn); 
 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CEditNurbsSurface, CDialog) 
	//{{AFX_MSG_MAP(CEditNurbsSurface) 
	ON_BN_CLICKED(IDC_EDIT_SF_4, OnExtractCurve) 
	ON_BN_CLICKED(IDC_EDIT_SF_13, OnSplitSurface) 
	ON_BN_CLICKED(IDC_EDIT_SF_9, OnTrimSurface) 
	ON_BN_CLICKED(IDC_EDIT_SF_14, OnIsoCurve) 
	ON_BN_CLICKED(IDC_EDIT_SF_16, OnNormal) 
	ON_BN_CLICKED(IDC_EDIT_SF_17, OnSwapSurfPara) 
	ON_BN_CLICKED(IDC_EDIT_SF_11, OnModifyCP) 
	ON_BN_CLICKED(IDC_EDIT_SF_15, OnExtend) 
	ON_BN_CLICKED(IDC_EDIT_SF_18, OnBlendingTwoSurface) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CEditNurbsSurface message handlers 
 
BOOL CEditNurbsSurface::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
 
	SetPublicAttribs(); 
 
	SET_DLG_POS; 
 
	static ButtonInfoType ButtonInfo[]= 
	{ 
		{&this->m_BlendBtn,			IDI_LEFTPANNEL_BLEND,OPT_NOT_CARRY_OUT}, 
		{&this->m_ConnectBtn,		IDI_LEFTPANNEL_SFCONNECT,OPT_NOT_CARRY_OUT}, 
		{&this->m_ControlBtn,		IDI_LEFTPANNEL_SFCONTROL,OPT_ED_NB_SF_MODCP}, 
		{&this->m_ConvertBtn,		IDI_LEFTPANNEL_CONVERT,OPT_NOT_CARRY_OUT}, 
		{&this->m_FitBtn,			IDI_LEFTPANNEL_SFFIT,OPT_NOT_CARRY_OUT}, 
		{&this->m_InfluenceBtn,		IDI_LEFTPANNEL_INFLUENCE,OPT_NOT_CARRY_OUT}, 
		{&this->m_InternalBtn,		IDI_LEFTPANNEL_INTERNAL,OPT_ED_NB_SF_EXTRACT}, 
		{&this->m_IsoCurveBtn,		IDI_LEFTPANNEL_ISOCURVE,OPT_NOT_CARRY_OUT}, 
		{&this->m_MeshBtn,			IDI_LEFTPANNEL_MESH,OPT_NOT_CARRY_OUT}, 
		{&this->m_RibbonBtn,		IDI_LEFTPANNEL_RIBBON,OPT_NOT_CARRY_OUT}, 
		{&this->m_SculptBtn,		IDI_LEFTPANNEL_SCULPT,OPT_NOT_CARRY_OUT}, 
		{&this->m_TrimBtn,			IDI_LEFTPANNEL_TRIM,OPT_NOT_CARRY_OUT}, 
		{&this->m_SplitBtn,			IDI_LEFTPANNEL_SPLITSF,OPT_ED_NB_SF_SPLIT}, 
		{&this->m_ISOBtn,			IDI_LEFTPANNEL_ISO,OPT_ED_NB_SF_ISOCURVE}, 
		{&this->m_ExtBtn,			IDI_LEFTPANNEL_SURFEXT,OPT_ED_NB_SF_EXT}, 
 
	}; 
	 
	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 CEditNurbsSurface::OnExtractCurve()  
{ 
	if (GetSurfaceSelCount(1,TRUE))  
	{ 
		UpdateOptInfo(OPT_ED_NB_SF_EXTRACT); 
		m_pDoc->ExtractCurve(); 
	} 
} 
 
void CEditNurbsSurface::OnSplitSurface()  
{ 
	if (GetSurfaceSelCount(1,TRUE))  
	{ 
		UpdateOptInfo(OPT_ED_NB_SF_SPLIT); 
		m_pDoc->SplitSurface(); 
	} 
} 
 
void CEditNurbsSurface::OnTrimSurface()  
{ 
	if (GetSurfaceSelCount(1,TRUE))  
	{ 
		UpdateOptInfo(OPT_ED_NB_SF_TRIM); 
		m_pDoc->TrimSurface(); 
	} 
} 
 
void CEditNurbsSurface::OnIsoCurve()  
{ 
	if (GetSurfaceSelCount(1,TRUE))  
	{ 
		UpdateOptInfo(OPT_ED_NB_SF_ISOCURVE); 
		m_pDoc->SurfaceIsoCurve(); 
	} 
} 
 
void CEditNurbsSurface::OnNormal()  
{ 
	if (GetSurfaceSelCount(1,TRUE))  
	{ 
		UpdateOptInfo(OPT_ED_NB_SF_NORMAL); 
	} 
} 
 
void CEditNurbsSurface::OnSwapSurfPara()  
{ 
	// TODO: Add your control notification handler code here 
 
} 
 
void CEditNurbsSurface::OnModifyCP()  
{ 
	if (GetSurfaceSelCount(1,TRUE))  
	{ 
		UpdateOptInfo(OPT_ED_NB_SF_MODCP); 
		 
		m_pDoc->m_CurrentSelSurface.GetHead()->m_bShowScaffold=TRUE; 
		m_pDoc->UpdateAllViews(NULL); 
	} 
} 
 
void CEditNurbsSurface::OnExtend()  
{ 
	if (GetSurfaceSelCount(1,TRUE)&&GetCurveSelCount(1,TRUE)) { 
		m_pDoc->ExtendSF(); 
	} 
} 
 
void CEditNurbsSurface::OnBlendingTwoSurface()  
{ 
	// TODO: Add your control notification handler code here 
		if (GetSurfaceSelCount(2,TRUE))  
	{ 
		UpdateOptInfo(OPT_ED_NB_SF_BLENDING); 
		m_pDoc->Blending2Surfaces(); 
	} 
}