128 lines
2.9 KiB
C++
128 lines
2.9 KiB
C++
#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)
|
||
};
|