//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TGGeDbPolyline 类 // = Version : ver2.0 // = Author : wlw // = CreateDate : 2002-09-09 // = Description: TGGeDbPolyline 定义 // = Maintainers: // //-----------------------------------------------------------------------------+ #include "StdAfx.h" #include "TGGeDbPolyline.h" #include "TchGlobalCurveFunc.h" TGGeDbPolyline::TGGeDbPolyline(const TGGePoly2D &poly,double lw) : m_poly(poly),m_nLineWeight(lw) { } TGGeDbPolyline::TGGeDbPolyline(const AcDbPolyline &pline) { m_poly.SetAcDbCurve((AcDbPolyline*)&pline); m_nLineWeight = 0; pline.getConstantWidth(m_nLineWeight); } AcDbEntity *TGGeDbPolyline::CreateAcDbEntity()const { AcDbPolyline *pline = new AcDbPolyline; PolyConvert(m_poly, *pline); pline->setConstantWidth(m_nLineWeight); return pline; } void TGGeDbPolyline::CutBy(const TGGePoly2D &poly,TDPtrList&lstIn,TDPtrList&lstOut,TDPtrList&lstEdge)const { TDPtrList lstSeg,lstIn0,lstOut0,lstEdge0; ExplodePoly2D(m_poly,lstSeg); PolyClip(lstSeg,poly,lstIn0,lstOut0,lstEdge0); for (long i = 0; i < lstIn0.Length(); i++) { TGGePoly2D poly1; lstIn0[i]->AsPoly2D(poly1); lstIn.Append(new TGGeDbPolyline(poly1,m_nLineWeight)); } for (i = 0; i < lstOut0.Length(); i++) { TGGePoly2D poly1; lstOut0[i]->AsPoly2D(poly1); lstOut.Append(new TGGeDbPolyline(poly1,m_nLineWeight)); } for (i = 0; i < lstEdge0.Length(); i++) { TGGePoly2D poly1; lstEdge0[i]->AsPoly2D(poly1); lstEdge.Append(new TGGeDbPolyline(poly1,m_nLineWeight)); } } TGGePoly2D TGGeDbPolyline::GetPoly() const { return m_poly; } void TGGeDbPolyline::SetPoly(const TGGePoly2D poly) { m_poly = poly; } double TGGeDbPolyline::GetLineWeight()const { return m_nLineWeight; } void TGGeDbPolyline::SetLineWeight(const double dLineWeight) { m_nLineWeight = dLineWeight; }