Files
envi-code/SourceCode/Code2026/Dimension/TGGiDrawStreamBase.h
T

127 lines
3.0 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#pragma once
2026-09-28 15:28:50 +08:00
#include "GePoly2D.h"
#include "ADSGePoint3d.h"
#include "GeCurveSegment.h"
#include "ADSGePointList.h"
#include "Ge3DFace.h"
#include "EntitySet.h"
#include "GeLine.h"
#include "GeArc.h"
#include "GeCircle.h"
#include "GeHatch.h"
#include "GeRectAngle.h"
#include "GeSolid.h"
#include "GeSolidCurve.h"
#include "GiClipBoundary.h"
#include "TAcDbBlockRefData.h"
#include "superlist.h"
2026-10-04 00:04:20 +08:00
// 设备流
// 用来存储几何
2026-09-28 15:28:50 +08:00
class TGGiDrawStreamBase
{
public:
friend class TGGiPushDrawStream;
TGGiDrawStreamBase();
virtual ~TGGiDrawStreamBase();
virtual void PushClip(const GePoly2D& poly,int flag = 0);
virtual void PopClip();
virtual void DrawXPoint(const ADSGePoint3d&);
virtual void DrawXCurve(const GeCurveSegment&curve,double nThick = 0) = 0;
virtual void DrawXPoly(const GePoly2D&,double nThick = 0);
virtual void DrawXPoints(const ADSGePointList&pts);
virtual void DrawX3DFace(const Ge3DFace&);
virtual void DrawXEntity(const EntitySet&);
virtual void DrawSolid(const GePoly2D &polyOutline);
virtual void DrawHatch(const GePoly2D &polyOutline, const TCHAR *pszPattern, double nScale);
virtual void DrawHatchEx(const GePoly2D &polyOutline, const TCHAR *pszPattern, double nScale,double rotation);
virtual void DrawHatchEx(const GeHatch &hatch);
virtual void DrawEntity(const AcDbEntity& ent)const;
virtual void DrawBlock(const AcDbBlockTableRecord &blockRec, const ADSGePoint3d &ptInsert,const AcGeScale3d &scales, double nRot, BOOL bMakeBlock);
virtual const TCHAR * Desc();
virtual Adesk::Boolean IsDragging() const;
// add by xlc on 100714 TArch8.5
bool GetClipFlg();
void SetClipFlg(bool bTrue);
TGGiDrawStreamBase & operator << (const ADSGePointList &pts);
TGGiDrawStreamBase & operator << (const Ge3DFace &face);
TGGiDrawStreamBase & operator << (const EntitySet &e);
2026-10-04 00:04:20 +08:00
public://带裁剪
2026-09-28 15:28:50 +08:00
TGGiDrawStreamBase & operator << (const ADSGePoint3d &pt);
TGGiDrawStreamBase & operator << (const GeCurveSegment &seg);
TGGiDrawStreamBase & operator << (const GeLine &l);
TGGiDrawStreamBase & operator << (const GeArc &arc);
TGGiDrawStreamBase & operator << (const GeCircle &cir);
TGGiDrawStreamBase & operator << (const PtrList<GeCurveSegment> &);
TGGiDrawStreamBase & operator << (const GePoly2D &poly);
TGGiDrawStreamBase & operator << (const GeRectAngle &box);
TGGiDrawStreamBase & operator << (const GeHatch &hatch);
TGGiDrawStreamBase & operator << (const GeSolid &solid);
TGGiDrawStreamBase & operator << (const GeSolidCurve &curve);
TGGiDrawStreamBase & operator << (const TAcDbBlockRefData& block);
TGGiDrawStreamBase & operator << (const AcDbEntity&ent);
protected:
bool HasClip()const;
void DeleteAll();
protected:
2026-10-04 00:04:20 +08:00
CPtrArray m_lstClip; //所有裁剪物性
2026-09-28 15:28:50 +08:00
2026-10-04 00:04:20 +08:00
// add by xlc on 100714 解决门窗和柱加粗时墙体缺口问题时添加TArch8.5
// 裁剪输出时,可能会有裁剪边界是不想裁剪的,此时可以在绘制时临时设置为false直接输出,用后记得恢复为true
bool m_bClip; //是否裁剪输出(默认为true)
2026-09-28 15:28:50 +08:00
};