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

173 lines
4.1 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.
//-----------------------------------------------------------------------------+
// 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