Files
envi-code/SourceCode/Code2026/tg_shs/inc/subgeo/TchSubGlobalFunc.h
T
2026-09-28 15:28:50 +08:00

88 lines
3.5 KiB
C++

//-------------------------------------------------------------------------------------------------------+
// 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<TGGePoly2D>&lstRes);
GEOAPI TPGeCurve2D* TGGeCurveSegmentToTPGeCurve2D(TGGeCurveSegment cv);
GEOAPI void SearchOutline(const TDPtrList<TGGeCurveSegment>&lstSeg,TDPtrList<TGGePoly2D>&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<TGGePoly2D> &ss,const TGGePoly2D& poly,TDPtrList<TGGePoly2D> &ssIn,TDPtrList<TGGePoly2D> &ssOut,TDPtrList<TGGePoly2D> &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<TGGeRegion2D>&);
GEOAPI int Union(const TGGePoly2D &poly1, const TGGePoly2D &poly2, TDPtrList<TGGePoly2D> &lstResult);
//GEOAPI void Union(const TDPtrList<TGGePoly2D> &lstSourcePolies, const TDPtrList<TGGePoly2D> &lstClipPolies, TDPtrList<TGGePoly2D> &lstResultPolies);
// 区域的减法
GEOAPI void Subtract(TDPtrList<TGGeRegion2D>&,const TDPtrList<TGGeRegion2D>&);
GEOAPI int Subtract(const TGGePoly2D &poly1, const TGGePoly2D &poly2, TDPtrList<TGGePoly2D> &lstResult);
//GEOAPI void Subtract(const TDPtrList<TGGePoly2D> &lstSourcePolies, const TDPtrList<TGGePoly2D> &lstClipPolies, TDPtrList<TGGePoly2D> &lstResultPolies);
GEOAPI void Intersect(const TGGeRegion2D &r1,const TGGeRegion2D &r2,TDPtrList<TGGeRegion2D> &);
GEOAPI int Intersect(const TGGePoly2D &poly1, const TGGePoly2D &poly2, TDPtrList<TGGePoly2D> &lstDest);
//GEOAPI void Intersect(const TDPtrList<TGGePoly2D> &lstSourcePolies, const TDPtrList<TGGePoly2D> &lstClipPolies, TDPtrList<TGGePoly2D> &lstResultPolies);
GEOAPI bool PrepareFit(TSqTable2<TADSGePoint3d> &ptArray0,TPGeFitGraph &graphFit);
GEOAPI bool PrepareFit(TADSGePoint3d ptMin,double nDist,int rowNum,int colNum,TSqTable2<float>& array,TPGeFitGraph&graphFit);
}
#endif