You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
2.5 KiB
C++
125 lines
2.5 KiB
C++
#include "StdAfx.h"
|
|
#include "ItemPointCrossAdd.h"
|
|
#include "SigmaDoc.h"
|
|
#include "SigmaView.h"
|
|
#include "DCHelp.h"
|
|
|
|
CItemPointCrossAdd::CItemPointCrossAdd(CSigmaDoc * ppDoc)
|
|
: CItemPointAdd(ppDoc)
|
|
{
|
|
this->SetType(ITEM_CROSSPOINT);
|
|
}
|
|
|
|
CItemPointCrossAdd::~CItemPointCrossAdd(void)
|
|
{
|
|
ClearDisplayPoint();
|
|
}
|
|
|
|
void CItemPointCrossAdd::UpdateOne(COne* pOne)
|
|
{
|
|
CPointCrossName* pPoint = (CPointCrossName*)pOne->GetValue();
|
|
pPoint->x0 = m_pt.x0;
|
|
pPoint->y0 = m_pt.y0;
|
|
pPoint->angle = m_angle;
|
|
|
|
pPoint->m_name1.SetName(m_name1);
|
|
pPoint->m_name2.SetName(m_name2);
|
|
pPoint->m_name3.SetName(m_name3);
|
|
pPoint->m_name4.SetName(m_name4);
|
|
}
|
|
|
|
void CItemPointCrossAdd::ClearDisplayPoint(void)
|
|
{
|
|
m_pt.x0 = m_pt.y0 = 0.0;
|
|
m_angle = 0;
|
|
m_name1.Empty();
|
|
m_name2.Empty();
|
|
m_name3.Empty();
|
|
m_name4.Empty();
|
|
|
|
//m_pointName.Empty();
|
|
|
|
if (m_pCurOne == NULL)
|
|
return;
|
|
|
|
delete m_pCurOne;
|
|
m_pCurOne = NULL;
|
|
}
|
|
|
|
void CItemPointCrossAdd::SetName1(CString name1)
|
|
{
|
|
m_name1 = name1;
|
|
//UpdateDraw();
|
|
}
|
|
|
|
void CItemPointCrossAdd::SetName2(CString name2)
|
|
{
|
|
m_name2 = name2;
|
|
//UpdateDraw();
|
|
}
|
|
|
|
void CItemPointCrossAdd::SetName3(CString name3)
|
|
{
|
|
m_name3 = name3;
|
|
//UpdateDraw();
|
|
}
|
|
|
|
void CItemPointCrossAdd::SetName4(CString name4)
|
|
{
|
|
m_name4 = name4;
|
|
//UpdateDraw();
|
|
}
|
|
|
|
COne* CItemPointCrossAdd::CreateOne()
|
|
{
|
|
CPointCrossName* pt = new CPointCrossName;
|
|
pt->x0 = m_pt.x0;
|
|
pt->y0 = m_pt.y0;
|
|
pt->angle = m_angle;
|
|
//pt->SetName(m_pointName);
|
|
|
|
pt->m_name1.SetName(m_name1);
|
|
pt->m_name2.SetName(m_name2);
|
|
pt->m_name3.SetName(m_name3);
|
|
pt->m_name4.SetName(m_name4);
|
|
|
|
return m_pDoc->GetDraw()->CreateOne(pt, DOUBLEFOX_CROSSPOINT);
|
|
}
|
|
|
|
void CItemPointCrossAdd::AddPoint(CPoint3D & point)
|
|
{
|
|
CPoint2D pt = GetDC()->GetReal(point);
|
|
m_pt.x0 = pt.x0;
|
|
m_pt.y0 = pt.y0;
|
|
m_pt.z0 = point.z0;
|
|
|
|
CPointCrossName * ptNameEx = CreateCrossPoint();
|
|
AddElement(ptNameEx, DOUBLEFOX_CROSSPOINT);
|
|
|
|
CPointCrossName * ptTmp = CreateCrossPoint();
|
|
COne* pOne = m_pDoc->GetDraw()->CreateOne(ptTmp, DOUBLEFOX_CROSSPOINT);
|
|
CRect rect = m_client;
|
|
CDC* pDC = m_pScreenDC;
|
|
GetDC()->Create(pDC);
|
|
pOne->Draw(*GetDC());
|
|
|
|
m_pDoc->GetDraw()->RemoveAt(pOne);
|
|
if (pOne != nullptr) {
|
|
delete pOne;
|
|
pOne = nullptr;
|
|
}
|
|
}
|
|
|
|
|
|
CPointCrossName* CItemPointCrossAdd::CreateCrossPoint(void)
|
|
{
|
|
CPointCrossName* pPoint = new CPointCrossName;
|
|
pPoint->x0 = m_pt.x0;
|
|
pPoint->y0 = m_pt.y0;
|
|
pPoint->angle = m_angle;
|
|
pPoint->m_name1.SetName(m_name1);
|
|
pPoint->m_name2.SetName(m_name2);
|
|
pPoint->m_name3.SetName(m_name3);
|
|
pPoint->m_name4.SetName(m_name4);
|
|
return pPoint;
|
|
} |