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);
}