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


// CreateNurbsVolume.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "surfware.h" 
#include "CreateNurbsVolume.h" 
#include "include/PredefineData.h" 
#include "MainFrm.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CCreateNurbsVolume dialog 
 
 
CCreateNurbsVolume::CCreateNurbsVolume(CWnd* pParent /*=NULL*/) 
	: CDialog(CCreateNurbsVolume::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CCreateNurbsVolume) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
} 
 
 
void CCreateNurbsVolume::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CCreateNurbsVolume) 
	DDX_Control(pDX, IDC_CREATE_VOL_1, m_Blend2SFBtn); 
	DDX_Control(pDX, IDC_CREATE_VOL_2, m_ExtrudeSFBtn); 
	DDX_Control(pDX, IDC_CREATE_VOL_3, m_RotateSFBtn); 
    DDX_Control(pDX, IDC_CREATE_VOL_4, m_MIRROR3PVOLBtn); 
	DDX_Control(pDX, IDC_CREATE_VOL_5, m_MIRROREQVOLBtn); 
	DDX_Control(pDX, IDC_CREATE_VOL_6, m_OFFSETVOLBtn); 
	DDX_Control(pDX, IDC_CREATE_VOL_7, m_SCALINGTVOLBtn); 
	DDX_Control(pDX, IDC_CREATE_VOL_8, m_ROTATEVOLBtn); 
 
 
	 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CCreateNurbsVolume, CDialog) 
	//{{AFX_MSG_MAP(CCreateNurbsVolume) 
	ON_BN_CLICKED(IDC_CREATE_VOL_1, OnBlend2Surfaces) 
	ON_BN_CLICKED(IDC_CREATE_VOL_2, OnExtrudeSurface) 
	ON_BN_CLICKED(IDC_CREATE_VOL_3, OnRotateSurface) 
	ON_BN_CLICKED(IDC_CREATE_VOL_4, OnMirror3P) 
	ON_BN_CLICKED(IDC_CREATE_VOL_5, OnMirrorEq) 
	ON_BN_CLICKED(IDC_CREATE_VOL_6, OnOffsetVolume) 
	ON_BN_CLICKED(IDC_CREATE_VOL_7, OnScaleVolume) 
	ON_BN_CLICKED(IDC_CREATE_VOL_8, OnRotateVolume) 
	ON_BN_CLICKED(IDC_CREATE_VOL_9, OnVolume6SF) 
	ON_BN_CLICKED(IDC_CREATE_VOL_10, OnCreateVolBySweep) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CCreateNurbsVolume message handlers 
 
BOOL CCreateNurbsVolume::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	 
	SetPublicAttribs(); 
	 
	SET_DLG_POS; 
 
	static ButtonInfoType ButtonInfo[]= 
	{ 
		{&this->m_ExtrudeSFBtn,		IDI_LEFTPANNEL_EXTRUDESF,OPT_CR_NB_VOL_EXTRUDE}, 
		{&this->m_Blend2SFBtn,		IDI_LEFTPANNEL_BLEND,OPT_CR_NB_VOL_BLEND}, 
		{&this->m_RotateSFBtn,		IDI_LEFTPANNEL_ROTATESF,OPT_CR_NB_VOL_ROTATE}, 
		{&this->m_MIRROR3PVOLBtn,	IDI_LEFTPANNEL_MIRROR3P,OPT_CR_NB_VOL_MIRROR3P}, 
		{&this->m_MIRROREQVOLBtn,	IDI_LEFTPANNEL_MIRROREQ,OPT_CR_NB_VOL_MIRROREQ}, 
		{&this->m_OFFSETVOLBtn,		IDI_LEFTPANNEL_SFOFFSET,OPT_CR_NB_VOL_OFFSET}, 
		{&this->m_SCALINGTVOLBtn,	IDI_LEFTPANNEL_SCALING,OPT_CR_NB_VOL_SCALE}, 
		{&this->m_ROTATEVOLBtn,		IDI_LEFTPANNEL_ROTATE,OPT_CR_NB_VOL_ROTATEVOLUME}, 
	}; 
	 
	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 CCreateNurbsVolume::OnBlend2Surfaces()  
{ 
	if (GetSurfaceSelCount(2,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_VOL_BLEND); 
		m_pDoc->Blend2Surfaces(); 
	} 
} 
 
void CCreateNurbsVolume::OnExtrudeSurface()  
{ 
	if (GetSurfaceSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_VOL_EXTRUDE); 
		m_pDoc->ExtrudeSurface(); 
	} 
} 
 
void CCreateNurbsVolume::OnRotateSurface()  
{ 
	if (GetSurfaceSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_VOL_ROTATE); 
		m_pDoc->VolumeRotateSurface(); 
	} 
} 
 
void CCreateNurbsVolume::OnMirror3P()  
{ 
	if (GetVolumSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_VOL_MIRROR3P); 
		 
	} 
} 
 
void CCreateNurbsVolume::OnMirrorEq()  
{ 
	if (GetVolumSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_VOL_MIRROREQ); 
		m_pDoc->VolumeMirrorEq(); 
	} 
} 
 
void CCreateNurbsVolume::OnOffsetVolume()  
{ 
	if (GetVolumSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_VOL_OFFSET); 
		m_pDoc->VolumeOffset(); 
	} 
} 
 
void CCreateNurbsVolume::OnScaleVolume()  
{ 
	if (GetVolumSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_VOL_SCALE); 
		m_pDoc->VolumeScale(); 
	} 
	 
} 
 
void CCreateNurbsVolume::OnRotateVolume()  
{ 
	if (GetVolumSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_VOL_ROTATEVOLUME); 
		m_pDoc->VolumeRotate(); 
	} 
} 
 
void CCreateNurbsVolume::OnVolume6SF()  
{ 
	if (GetSurfaceSelCount(6,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_VOL_6SF); 
		m_pDoc->Volume6SF(); 
	} 
} 
 
 
void CCreateNurbsVolume::OnCreateVolBySweep()  
{ 
	// TODO: Add your control notification handler code here 
	if (GetSurfaceSelCount(1,TRUE)&&GetCurveSelCount(1,TRUE)) { 
		UpdateOptInfo(OPT_CR_NB_VOL_SWEEP); 
		m_pDoc->VolumeSweeping(); 
	} 
}