61 lines
1.5 KiB
C++
61 lines
1.5 KiB
C++
//-------------------------------------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, SH Software Co. Ltd.
|
|
// = FileName : XAdvanceSampler 类
|
|
// = Version : ver2.0
|
|
// = Author : zjq
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: XAdvanceSampler 定义
|
|
// = Maintainers:
|
|
//
|
|
//-------------------------------------------------------------------------------------------------------+
|
|
#include "StdAfx.h"
|
|
#include "XAdvanceSampler.h"
|
|
#include "XScreenDc.h"
|
|
#include "XGlobalFunc.h"
|
|
#include "XPrivateGlobalFunc.h"
|
|
|
|
XPoint XAdvanceSampler::g_ptLastTemp;
|
|
XPoint XAdvanceSampler::g_ptBase;
|
|
int XAdvanceSampler::g_nCtrlFlag = 0;
|
|
double XAdvanceSampler::g_nDirection = 0.0;
|
|
|
|
XAdvanceSampler::~XAdvanceSampler()
|
|
{
|
|
|
|
}
|
|
|
|
void XAdvanceSampler::Init(XPoint ptBase, int nFlag)
|
|
{
|
|
g_ptBase = g_ptLastTemp = ptBase;
|
|
g_nCtrlFlag = nFlag;
|
|
g_nDirection = 0.0;
|
|
}
|
|
|
|
int XAdvanceSampler::MoveSampler(ads_point pt0, ads_matrix mat)
|
|
{
|
|
// Move操作时,没有基点,正交不起作用
|
|
XPoint pt;
|
|
if(g_nCtrlFlag)
|
|
{
|
|
XExport::CapturePoint(g_ptBase, pt0, pt); //使得正交(Ortho)和捕捉(SNAP)起作用
|
|
}
|
|
else
|
|
{
|
|
XExport::CapturePoint(NULL, pt0, pt); //使得正交(Ortho)和捕捉(SNAP)起作用
|
|
}
|
|
|
|
|
|
if(g_nCtrlFlag)
|
|
{
|
|
XScreenDc dc(-1);
|
|
dc << XLine(g_ptBase, g_ptLastTemp);
|
|
dc << XLine(g_ptBase, pt);
|
|
g_ptLastTemp = pt;
|
|
}
|
|
g_nDirection = ads_angle(g_ptBase, pt);
|
|
|
|
pt = XPrivate::Ucs2Wcs(pt);
|
|
XPrivate::Ucs2Wcs(g_ptBase).GetMoveMatrix(pt, mat);
|
|
return RTNORM;
|
|
}
|