77 lines
1.9 KiB
C++
77 lines
1.9 KiB
C++
#include "StdAfx.h"
|
|
#include "SnapSprinkerJig.h"
|
|
#include "XDbOsnapPoint.h"
|
|
|
|
extern bool g_bAssisitantSnap;
|
|
extern int AutoSnapPoint(XPoint &ptWcs, XPoint *ptBase);
|
|
extern int AsOsnapMask(int nOsShape);
|
|
|
|
TSnapSprinkerJig::TSnapSprinkerJig(CSprinkIsometryDlg *dlg, XPoint pt1, double nXDist, double nYDist):TSprinklerJig(dlg, pt1, nXDist, nYDist)
|
|
{
|
|
m_pOsnapPoint = new XDbOsnapPoint;
|
|
}
|
|
|
|
TSnapSprinkerJig::TSnapSprinkerJig(CSprinklerByLineDlg *dlg, XPoint pt1):TSprinklerJig(dlg, pt1)
|
|
{
|
|
m_pOsnapPoint = new XDbOsnapPoint;
|
|
}
|
|
|
|
TSnapSprinkerJig::TSnapSprinkerJig(CSprinklerByRectDlg *dlg, XPoint pt1):TSprinklerJig(dlg, pt1)
|
|
{
|
|
m_pOsnapPoint = new XDbOsnapPoint;
|
|
}
|
|
|
|
TSnapSprinkerJig::TSnapSprinkerJig(CSprinklerByFreeDlg *dlg, XPoint pt1):TSprinklerJig(dlg, pt1)
|
|
{
|
|
m_pOsnapPoint = new XDbOsnapPoint;
|
|
}
|
|
|
|
TSnapSprinkerJig::TSnapSprinkerJig(CSprinklerBySectionDlg *dlg, XPoint pt1, XPoint pt2, XPoint pt3):TSprinklerJig(dlg, pt1, pt2, pt3)
|
|
{
|
|
m_pOsnapPoint = new XDbOsnapPoint;
|
|
}
|
|
|
|
TSnapSprinkerJig::TSnapSprinkerJig(CSprinklerByArcDlg *dlg, XPoint pt1, XPoint pt2):TSprinklerJig(dlg, pt1, pt2)
|
|
{
|
|
m_pOsnapPoint = new XDbOsnapPoint;
|
|
}
|
|
|
|
AcDbEntity* TSnapSprinkerJig::entity() const
|
|
{
|
|
return (AcDbEntity*)m_pOsnapPoint;
|
|
}
|
|
|
|
//反馈
|
|
AcEdJig::DragStatus TSnapSprinkerJig::sampler()
|
|
{
|
|
DragStatus stat;
|
|
setUserInputControls((UserInputControls)
|
|
(AcEdJig::kAccept3dCoordinates|AcEdJig::kNullResponseAccepted));
|
|
if (!!m_sKeyword) setKeywordList(m_sKeyword);
|
|
else setKeywordList(NULL);
|
|
|
|
XPoint ptTemp;
|
|
stat = GetPoint(ptTemp);
|
|
if(stat == AcEdJig::kNormal)
|
|
{
|
|
if (g_bAssisitantSnap)
|
|
{
|
|
int nShape = AutoSnapPoint(ptTemp, NULL);
|
|
m_pOsnapPoint->SetSnapShape(AsOsnapMask(nShape));
|
|
}
|
|
m_pOsnapPoint->SetDrawSnap(g_bAssisitantSnap);
|
|
m_pOsnapPoint->SetLocation(ptTemp);
|
|
m_pOsnapPoint->SetEntityEx(m_pDrawEnt);
|
|
if (IsPosChanged(ptTemp))
|
|
{
|
|
m_ptResult=ptTemp;
|
|
}
|
|
else
|
|
return AcEdJig::kNoChange;
|
|
}
|
|
|
|
return stat;
|
|
}
|
|
|
|
|