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


// CreateNurbsSurface.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "surfware.h" 
#include "CreateNurbsSurface.h" 
#include "include/PredefineData.h" 
#include "MainFrm.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CCreateNurbsSurface dialog 
 
 
CCreateNurbsSurface::CCreateNurbsSurface(CWnd* pParent /*=NULL*/) 
	: CDialog(CCreateNurbsSurface::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CCreateNurbsSurface) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
} 
 
 
void CCreateNurbsSurface::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CCreateNurbsSurface) 
	DDX_Control(pDX, IDC_CREATE_SF_1, m_SkinBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_2, m_LoftBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_3, m_BezierBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_4, m_AutoSurfBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_5, m_revolveBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_6, m_sweepBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_7, m_surfaceBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_8, m_sphereBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_9, m_radiusBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_10, m_offsetBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_11, m_TorusBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_12, m_Blend2CurveBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_13, m_ExtrudeCurveBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_14, m_Join2SFsBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_15, m_Mirror3PBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_16, m_MirrorEqBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_17, m_ScalingBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_18, m_RotateBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_19, m_InterpBtn); 
	DDX_Control(pDX, IDC_CREATE_SF_20, m_FitBtn); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CCreateNurbsSurface, CDialog) 
	//{{AFX_MSG_MAP(CCreateNurbsSurface) 
	ON_BN_CLICKED(IDC_CREATE_SF_5, OnCurveRotate) 
	ON_BN_CLICKED(IDC_CREATE_SF_8, OnCreateNurbsSphere) 
	ON_BN_CLICKED(IDC_CREATE_SF_1, OnCreateSkinSurface) 
	ON_BN_CLICKED(IDC_CREATE_SF_6, OnCurveSweep) 
	ON_BN_CLICKED(IDC_CREATE_SF_11, OnCreateTorus) 
	ON_BN_CLICKED(IDC_CREATE_SF_12, OnBlend2Curves) 
	ON_BN_CLICKED(IDC_CREATE_SF_13, OnExtrudeCurve) 
	ON_BN_CLICKED(IDC_CREATE_SF_14, OnJoin2Surfaces) 
	ON_BN_CLICKED(IDC_CREATE_SF_7, OnFrom4Curves) 
	ON_BN_CLICKED(IDC_CREATE_SF_15, OnMirror3P) 
	ON_BN_CLICKED(IDC_CREATE_SF_16, OnMirroeEq) 
	ON_BN_CLICKED(IDC_CREATE_SF_17, OnScalingFromSurface) 
	ON_BN_CLICKED(IDC_CREATE_SF_10, OnOffsetSurface) 
	ON_BN_CLICKED(IDC_CREATE_SF_18, OnCreateSurfaceRotate) 
	ON_BN_CLICKED(IDC_CREATE_SF_19, OnGenInterpolateSurface) 
	ON_BN_CLICKED(IDC_CREATE_SF_20, OnFitSurface) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CCreateNurbsSurface message handlers 
 
BOOL CCreateNurbsSurface::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
 
	SetPublicAttribs(); 
 
	SET_DLG_POS; 
 
	static ButtonInfoType ButtonInfo[]= 
	{ 
		{&this->m_surfaceBtn,		IDI_LEFTPANNEL_SURFACE,OPT_CR_NB_SF_FROM4CV}, 
		{&this->m_AutoSurfBtn,		IDI_LEFTPANNEL_AUTOSURF,OPT_NOT_CARRY_OUT}, 
		{&this->m_BezierBtn,		IDI_LEFTPANNEL_BEZIER,OPT_NOT_CARRY_OUT}, 
		{&this->m_sweepBtn,			IDI_LEFTPANNEL_SWEEP,OPT_CR_NB_SF_SWEEP}, 
		{&this->m_LoftBtn,			IDI_LEFTPANNEL_LOFT,OPT_NOT_CARRY_OUT}, 
		{&this->m_offsetBtn,		IDI_LEFTPANNEL_SFOFFSET,OPT_NOT_CARRY_OUT}, 
		{&this->m_radiusBtn,		IDI_LEFTPANNEL_RADIUS,OPT_NOT_CARRY_OUT}, 
		{&this->m_revolveBtn,		IDI_LEFTPANNEL_REVOLVE,OPT_CR_CVROTATE}, 
		{&this->m_SkinBtn,			IDI_LEFTPANNEL_SKIN,OPT_CR_NB_SKINSF}, 
		{&this->m_sphereBtn,		IDI_LEFTPANNEL_SPHERE,OPT_CR_NB_SHPERE}, 
		{&this->m_TorusBtn,			IDI_LEFTPANNEL_TORUS,OPT_CR_NB_SF_TORUS}, 
		{&this->m_Blend2CurveBtn,	IDI_LEFTPANNEL_B2CV,OPT_CR_NB_SF_BLD2CV}, 
		{&this->m_ExtrudeCurveBtn,	IDI_LEFTPANNEL_CVEXTRUDE,OPT_CR_NB_SF_EXTCV}, 
		{&this->m_Join2SFsBtn	,	IDI_LEFTPANNEL_JOIN2SF,OPT_CR_NB_SF_JOIN2SF}, 
		{&this->m_Mirror3PBtn	,	IDI_LEFTPANNEL_MIRROR3P,OPT_CR_NB_SF_MIRROR3P}, 
		{&this->m_MirrorEqBtn	,	IDI_LEFTPANNEL_MIRROREQ,OPT_CR_NB_SF_MIRROREQ}, 
		{&this->m_ScalingBtn	,	IDI_LEFTPANNEL_SCALING,OPT_CR_NB_SF_SCALINGFROMSURFACE}, 
		{&this->m_RotateBtn	,	    IDI_LEFTPANNEL_ROTATE,OPT_CR_NB_SF_ROTATESURFACE}, 
		{&this->m_FitBtn	,	    IDI_LEFTPANNEL_SFFIT1,OPT_CR_NB_SF_FIT}, 
		{&this->m_InterpBtn	,	    IDI_LEFTPANNEL_SFINTER,OPT_CR_NB_SF_GENINTERPOLATE}, 
	}; 
	 
	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 CCreateNurbsSurface::OnCurveRotate()  
{ 
	if (GetCurveSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_CVROTATE);	 
		m_pDoc->CurveRotate(); 
	} 
} 
 
void CCreateNurbsSurface::OnCreateNurbsSphere()  
{ 
	UpdateOptInfo(OPT_CR_NB_SHPERE);	 
} 
 
void CCreateNurbsSurface::OnCreateSkinSurface()  
{ 
	if (GetCurveSelCount(4,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_SKINSF); 
		m_pDoc->CreateSkinSurface(); 
	}	 
} 
 
void CCreateNurbsSurface::OnCurveSweep()  
{ 
	if (GetCurveSelCount(2,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_SF_SWEEP); 
		m_pDoc->CurveSweep(); 
	} 
} 
 
void CCreateNurbsSurface::OnCreateTorus()  
{ 
	UpdateOptInfo(OPT_CR_NB_SF_TORUS);	 
} 
 
void CCreateNurbsSurface::OnBlend2Curves()  
{ 
	if (GetCurveSelCount(2,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_SF_BLD2CV); 
		m_pDoc->Blend2Curves(); 
	} 
} 
 
void CCreateNurbsSurface::OnExtrudeCurve()  
{ 
	if (GetCurveSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_SF_EXTCV); 
		m_pDoc->ExtrudeCurve(); 
	}	 
} 
 
void CCreateNurbsSurface::OnJoin2Surfaces()  
{ 
	if (GetSurfaceSelCount(2,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_SF_JOIN2SF); 
		m_pDoc->Join2Surfaces(); 
	}		 
} 
 
void CCreateNurbsSurface::OnFrom4Curves()  
{ 
	if (GetCurveSelCount(4,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_SF_FROM4CV); 
		m_pDoc->SurfaceFrom4Curves(); 
	} 
} 
 
void CCreateNurbsSurface::OnMirror3P()  
{ 
	if (GetSurfaceSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_SF_MIRROR3P); 
	 
	} 
} 
 
void CCreateNurbsSurface::OnMirroeEq()  
{ 
	if (GetSurfaceSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_SF_MIRROREQ); 
	   m_pDoc->SurfaceFromMirrorEq(); 
	} 
} 
 
void CCreateNurbsSurface::OnScalingFromSurface()  
{ 
	if (GetSurfaceSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_SF_SCALINGFROMSURFACE); 
	   m_pDoc->SurfaceScalingFromSurface(); 
	} 
} 
 
void CCreateNurbsSurface::OnOffsetSurface()  
{ 
	if (GetSurfaceSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_SF_OFFSET); 
	   m_pDoc->SurfaceOffset(); 
	} 
} 
 
void CCreateNurbsSurface::OnCreateSurfaceRotate()  
{ 
	if (GetSurfaceSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_SF_ROTATESURFACE); 
	   m_pDoc->SurfaceRotate(); 
	} 
} 
 
void CCreateNurbsSurface::OnGenInterpolateSurface()  
{ 
	UpdateOptInfo(OPT_CR_NB_SF_GENINTERPOLATE); 
	  
} 
 
void CCreateNurbsSurface::OnFitSurface()  
{ 
	UpdateOptInfo(OPT_CR_NB_SF_FIT); 
}