//-------------------------------------------------------------------------------------------------------+ // 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; }