173 lines
4.0 KiB
C++
173 lines
4.0 KiB
C++
//-----------------------------------------------------------------------------+
|
||
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
|
||
// = FileName : TGGiDrawStreamBase 类
|
||
// = Version : ver2.0
|
||
// = Author : wlw
|
||
// = CreateDate : 2002-09-09
|
||
// = Description: TGGiDrawStreamBase 声明
|
||
// = Maintainers:
|
||
//
|
||
//-----------------------------------------------------------------------------+
|
||
#ifndef _TGGIDRAWSTREAMBASE_H_
|
||
#define _TGGIDRAWSTREAMBASE_H_
|
||
|
||
#ifndef _TGGEPOLY2D_H_
|
||
#include "TGGePoly2D.h"
|
||
#endif
|
||
|
||
#ifndef _TADSGEPOINT3D_H_
|
||
#include "TADSGePoint3d.h"
|
||
#endif
|
||
|
||
#ifndef _TGGECURVESEGMENT_H_
|
||
#include "TGGeCurveSegment.h"
|
||
#endif
|
||
|
||
#ifndef _TADSGEPOINTLIST_H_
|
||
#include "TADSGePointList.h"
|
||
#endif
|
||
|
||
#ifndef _TGGE3DFACE_H_
|
||
#include "TGGe3DFace.h"
|
||
#endif
|
||
|
||
#ifndef _TENTITYSET_H_
|
||
#include "TEntitySet.h"
|
||
#endif
|
||
|
||
#ifndef _TGGELINE_H_
|
||
#include "TGGeLine.h"
|
||
#endif
|
||
|
||
#ifndef _TGGEARC_H_
|
||
#include "TGGeArc.h"
|
||
#endif
|
||
|
||
#ifndef _TGGECIRCLE_H_
|
||
#include "TGGeCircle.h"
|
||
#endif
|
||
|
||
#ifndef _TGGEHATCH_H_
|
||
#include "TGGeHatch.h"
|
||
#endif
|
||
|
||
#ifndef _TGGERECTANGLE_H_
|
||
#include "TGGeRectAngle.h"
|
||
#endif
|
||
|
||
#ifndef _TGGESOLID_H_
|
||
#include "TGGeSolid.h"
|
||
#endif
|
||
|
||
#ifndef _TGGESOLIDCURVE_H_
|
||
#include "TGGeSolidCurve.h"
|
||
#endif
|
||
|
||
#ifndef _TGGICLIPBOUNDARY_H_
|
||
#include "TGGiClipBoundary.h"
|
||
#endif
|
||
|
||
#ifndef _TACDBBLOCKREFDATA_H_
|
||
#include "TAcDbBlockRefData.h"
|
||
#endif
|
||
|
||
#ifndef _TDPTRLIST_H_
|
||
#include "TDPtrList.h"
|
||
#endif
|
||
|
||
// 设备流
|
||
// 用来存储几何
|
||
class GEOAPI TGGiDrawStreamBase
|
||
{
|
||
public:
|
||
|
||
friend class TGGiPushDrawStream;
|
||
|
||
TGGiDrawStreamBase();
|
||
|
||
virtual ~TGGiDrawStreamBase();
|
||
|
||
virtual void PushClip(const TGGePoly2D& poly,int flag = 0);
|
||
|
||
virtual void PopClip();
|
||
|
||
virtual void DrawXPoint(const TADSGePoint3d&);
|
||
|
||
virtual void DrawXCurve(const TGGeCurveSegment&curve,double nThick = 0) = 0;
|
||
|
||
virtual void DrawXPoly(const TGGePoly2D&,double nThick = 0);
|
||
|
||
virtual void DrawXPoints(const TADSGePointList&pts);
|
||
|
||
virtual void DrawX3DFace(const TGGe3DFace&);
|
||
|
||
virtual void DrawXEntity(const TEntitySet&);
|
||
|
||
virtual void DrawSolid(const TGGePoly2D &polyOutline);
|
||
|
||
virtual void DrawHatch(const TGGePoly2D &polyOutline, const TCHAR *pszPattern, double nScale);
|
||
|
||
virtual void DrawHatchEx(const TGGePoly2D &polyOutline, const TCHAR *pszPattern, double nScale,double rotation);
|
||
virtual void DrawHatchEx(const TGGeHatch &hatch);
|
||
|
||
virtual void DrawEntity(const AcDbEntity& ent)const;
|
||
|
||
virtual void DrawBlock(const AcDbBlockTableRecord &blockRec, const TADSGePoint3d &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 TADSGePointList &pts);
|
||
|
||
TGGiDrawStreamBase & operator << (const TGGe3DFace &face);
|
||
|
||
TGGiDrawStreamBase & operator << (const TEntitySet &e);
|
||
|
||
public://带裁剪
|
||
|
||
TGGiDrawStreamBase & operator << (const TADSGePoint3d &pt);
|
||
|
||
TGGiDrawStreamBase & operator << (const TGGeCurveSegment &seg);
|
||
|
||
TGGiDrawStreamBase & operator << (const TGGeLine &l);
|
||
|
||
TGGiDrawStreamBase & operator << (const TGGeArc &arc);
|
||
|
||
TGGiDrawStreamBase & operator << (const TGGeCircle &cir);
|
||
|
||
TGGiDrawStreamBase & operator << (const TDPtrList<TGGeCurveSegment> &);
|
||
|
||
TGGiDrawStreamBase & operator << (const TGGePoly2D &poly);
|
||
|
||
TGGiDrawStreamBase & operator << (const TGGeRectAngle &box);
|
||
|
||
TGGiDrawStreamBase & operator << (const TGGeHatch &hatch);
|
||
|
||
TGGiDrawStreamBase & operator << (const TGGeSolid &solid);
|
||
|
||
TGGiDrawStreamBase & operator << (const TGGeSolidCurve &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)
|
||
};
|
||
|
||
#endif |