//-------------------------------------------------------------------------------------------------------+ // Copyright (C), 1998-2007, SH Software Co. Ltd. // = FileName : AecDbGripDistDim。cpp // = Version : ver2.0 // = Author : zjq // = CreateDate : 2002-09-09 // = Description: 夹点直线端标注类定义文件 // = Maintainers: // //-------------------------------------------------------------------------------------------------------+ #include "StdAfx.h" #include "AecDbGripDistDim.h" #include "XCurveSegment.h" #if ARX > 17 AecDbGripDistDim::AecDbGripDistDim(int flag,bool bHover): AecDbGripDim(flag,bHover) { } AecDbGripDistDim::~AecDbGripDistDim() { } AcDbDimension* AecDbGripDistDim::CreateDimEnt()const { return new AcDbAlignedDimension; } void AecDbGripDistDim::SetData(AcGePoint3d ptStart,AcGePoint3d ptEnd,double dist) { m_ptStart = ptStart; m_ptEnd = ptEnd; AcGeVector3d vt = m_ptStart-m_ptEnd; if (dist < 0) { dist = m_fDimScale * 0.5; } m_fDist = dist; } void AecDbGripDistDim::UpdateDimEnt() { AecDbGripDim::UpdateDimEnt(); AcDbAlignedDimension*pDim = AcDbAlignedDimension::cast(DimEnt()); if (pDim == NULL) { return; } pDim->setXLine1Point(m_ptStart); pDim->setXLine2Point(m_ptEnd); XCurveSegment seg(m_ptStart,m_ptEnd,0); XCurveSegment seg1 = seg.Offset(fabs(m_fDist),m_fDist > 0 ? OFFSET_RIGHT : OFFSET_LEFT); pDim->setDimLinePoint(seg1.MidPoint().AsAcGePoint3d()); } #endif