Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

128 lines
3.0 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
#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"
// 设备流
// 用来存储几何
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);
public://带裁剪
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:
CPtrArray m_lstClip; //所有裁剪物性
// add by xlc on 100714 解决门窗和柱加粗时墙体缺口问题时添加TArch8.5
// 裁剪输出时,可能会有裁剪边界是不想裁剪的,此时可以在绘制时临时设置为false直接输出,用后记得恢复为true
bool m_bClip; //是否裁剪输出(默认为true)
};