初始化,调用配对函数处:
BOOL CMSSDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
//隐藏对话框标题栏
ModifyStyle(WS_CAPTION, 0, SWP_FRAMECHANGED);
//设置对话框最大化显示
CRect rect;
::GetWindowRect(m_hWnd,rect);
ScreenToClient(rect);
int m_nDlgWidth = rect.right - rect.left;
int m_nDlgHeight = rect.bottom - rect.top;
int m_nWidth = GetSystemMetrics(SM_CXSCREEN);
int m_nHeight = GetSystemMetrics(SM_CYSCREEN);
m_Multiple_Width = float(m_nWidth)/float(m_nDlgWidth);
m_Multiple_Heith = float(m_nHeight)/float(m_nDlgHeight);
change_flag = TRUE;
ShowWindow(SW_MAXIMIZE);
GetDlgItem(IDC_MSS_6)->EnableWindow(FALSE);
GetDlgItem(IDC_MSS_7)->EnableWindow(FALSE);
GetDlgItem(IDC_MSS_8)->EnableWindow(FALSE);
Init() ;
//自动算法
threeD();
GetMSS();
AutoPair::TrackerLandMarkCont.clear() ;
GetTrackerData() ;
//
//在此添加
//
auto_pair = AutoPair(CTpointcontainer) ;
auto_pair.auto_Pairing() ;
//结果显示
ShowImageMarker() ;
GetDlgItem(IDC_MSS_6)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_MSS_7)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_MSS_8)->ShowWindow(SW_SHOW);
if (m_BoxNum==6)
{
GetDlgItem(IDC_MSS_16)->EnableWindow(FALSE);
}
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
基准点添加代码:
CTpointcontainer.clear() ;
m_MSSpos[0][0]=-90.359;
m_MSSpos[0][1]=73.807;
m_MSSpos[0][2]=82.245;
m_MSSpos[1][0]=10.716;
m_MSSpos[1][1]=79.178;
m_MSSpos[1][2]=-55.880;
m_MSSpos[2][0]=-77.663;
m_MSSpos[2][1]=74.295;
m_MSSpos[2][2]=27.245;
m_MSSpos[3][0]=-55.202;
m_MSSpos[3][1]=74.295;
m_MSSpos[3][2]=83.495;
m_MSSpos[4][0]=-51.314;
m_MSSpos[4][1]=76.132;
m_MSSpos[4][2]=18.963;
m_MSSpos[5][0]=91.557;
m_MSSpos[5][1]=80.523;
m_MSSpos[5][2]=32.671;
for (int i=0;i<5.5;i++)
{
CTpointcontainer.push_back(m_MSSpos[i]);
}
isSetLandmark=1;
截断原来的数据:
void CMSSDlg::OnBnClickedButtonOk()
{
// TODO: 在此添加控件通知处理程序代码
for (int i=0;i<4;i++)
{
m_MSSpos[i][0]=posx[i]+m_changepos[i][0];
m_MSSpos[i][1]=posy[i]+m_changepos[i][1];
m_MSSpos[i][2]=posz[i]+m_changepos[i][2];
CTpointcontainer.push_back(m_MSSpos[i]);
}
isSetLandmark=1;
//
//在此添加基准点的pushback:
//
//仅留下打开窗口的代码:
EndDialog(BACK_P4);
}
基准点的pushback:
CTpointcontainer.clear() ;
m_MSSpos[0][0]=-90.359;
m_MSSpos[0][1]=73.807;
m_MSSpos[0][2]=82.245;
m_MSSpos[1][0]=10.716;
m_MSSpos[1][1]=79.178;
m_MSSpos[1][2]=-55.880;
m_MSSpos[2][0]=-77.663;
m_MSSpos[2][1]=74.295;
m_MSSpos[2][2]=27.245;
m_MSSpos[3][0]=-55.202;
m_MSSpos[3][1]=74.295;
m_MSSpos[3][2]=83.495;
m_MSSpos[4][0]=-51.314;
m_MSSpos[4][1]=76.132;
m_MSSpos[4][2]=18.963;
m_MSSpos[5][0]=91.557;
m_MSSpos[5][1]=80.523;
m_MSSpos[5][2]=32.671;
for (int i=0;i<5.5;i++)
{
CTpointcontainer.push_back(m_MSSpos[i]);
}
isSetLandmark=1;