//-------------------------------------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : 导出全局函数头文件 // = Version : ver2.0 // = Author : lfy // = CreateDate : 2002-09-09 // = Description: 全局函数的声明 // = Maintainers: // //-------------------------------------------------------------------------------------------------------+ #ifndef _TCHSUBGLOBALFUNC_H_ #define _TCHSUBGLOBALFUNC_H_ #ifndef _TWCSTRINGLIST_H_ #include "TWCStringList.h" #endif #ifndef _TGPLINE2D_H_ #include "TGPLine2D.h" #endif #ifndef _TPGEFITGRAPH_H_ #include "TPGeFitGraph.h" #endif #ifndef _TSQTABLE2_H_ #include "TSqTable2.h" #endif class TGRegion2D; class TGGeRegion2D; namespace TchSubExport { GEOAPI void RegisterClassId(); GEOAPI void GOutput(const TGObject*pObj,int color); //poly是输入也是输出,左为负,右为正 GEOAPI BOOL Offset(double dist,TGGePoly2D &poly); GEOAPI void Offset(double dist,TGGePoly2D poly,TDPtrList&lstRes); GEOAPI TPGeCurve2D* TGGeCurveSegmentToTPGeCurve2D(TGGeCurveSegment cv); GEOAPI void SearchOutline(const TDPtrList&lstSeg,TDPtrList&lstPoly); GEOAPI void TGGePoly2DToTGPLine2D(const TGGePoly2D&poly0,TGPLine2D&poly); GEOAPI void TGMLine2DToTGGePoly2D(const TGMLine2D&poly0,TGGePoly2D&poly); GEOAPI bool IsInter(const TGGePoly2D& poly1,const TGGePoly2D&poly2); GEOAPI bool IsInclude( const TGGePoly2D& poly1,const TGGePoly2D& poly2); GEOAPI void CutPoly2D(const TGGePoly2D&poly2d,double dist,TGObjectList &res); GEOAPI bool GetSubPoly(const TGGePoly2D&poly,TADSGePoint3d pt1,TADSGePoint3d pt2,TGGePoly2D&subPoly); GEOAPI void PolyClip(const TDPtrList &ss,const TGGePoly2D& poly,TDPtrList &ssIn,TDPtrList &ssOut,TDPtrList &ssEdge); //矩形裁剪直线段 日照用 //1.Liang_Barsky算法,由Cyrus_Beck算法而来 GEOAPI bool LB_Clip(const double &left,const double &top,const double &right,const double& bot, const double &x1,const double &y1,const double &dx,const double &dy, double &tMin,double &tMax); GEOAPI TGRegion2D* TGGeRegion2DToTGRegion2D(const TGGeRegion2D&r1); GEOAPI TGGeRegion2D* TGRegion2DToTGGeRegion2D(const TGRegion2D&r1); GEOAPI AcDbEntity *Obj2Entity(TGObject *pObj); // 区域的并 GEOAPI void Union(TDPtrList&); GEOAPI int Union(const TGGePoly2D &poly1, const TGGePoly2D &poly2, TDPtrList &lstResult); //GEOAPI void Union(const TDPtrList &lstSourcePolies, const TDPtrList &lstClipPolies, TDPtrList &lstResultPolies); // 区域的减法 GEOAPI void Subtract(TDPtrList&,const TDPtrList&); GEOAPI int Subtract(const TGGePoly2D &poly1, const TGGePoly2D &poly2, TDPtrList &lstResult); //GEOAPI void Subtract(const TDPtrList &lstSourcePolies, const TDPtrList &lstClipPolies, TDPtrList &lstResultPolies); GEOAPI void Intersect(const TGGeRegion2D &r1,const TGGeRegion2D &r2,TDPtrList &); GEOAPI int Intersect(const TGGePoly2D &poly1, const TGGePoly2D &poly2, TDPtrList &lstDest); //GEOAPI void Intersect(const TDPtrList &lstSourcePolies, const TDPtrList &lstClipPolies, TDPtrList &lstResultPolies); GEOAPI bool PrepareFit(TSqTable2 &ptArray0,TPGeFitGraph &graphFit); GEOAPI bool PrepareFit(TADSGePoint3d ptMin,double nDist,int rowNum,int colNum,TSqTable2& array,TPGeFitGraph&graphFit); } #endif