Files
envi-code/SourceCode/Code2026/tg_shs/inc/geo/TGGeHatch.h
T
2026-09-28 15:28:50 +08:00

68 lines
1.8 KiB
C++

//-----------------------------------------------------------------------------+
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
// = FileName : TGGeHatch 类
// = Version : ver2.0
// = Author : wlw
// = CreateDate : 2002-09-09
// = Description: TGGeHatch 声明
// = Maintainers:
//
//-----------------------------------------------------------------------------+
#ifndef _TGGEHATCH_H_
#define _TGGEHATCH_H_
#ifndef _TGGEPOLY2D_H_
#include "TGGePoly2D.h"
#endif
class GEOAPI TGGeHatch : public TGGeEntity
{
public:
TGGeHatch(TGGePoly2D poly,const TCHAR* sName,double nScale = 1.0);
TGGeHatch(TGGePoly2D poly,const TCHAR* sName,double nScale,double nAngle);
virtual ~TGGeHatch();
virtual bool IsKindOf(TEntityId entType) const;
virtual TEntityId Type() const;
virtual void CopyFrom(const TGGeEntity* pImpSrc);
virtual bool IsSolid()const;
virtual TGGePoly2D GetHatchPoly()const;
virtual void SetHatchPoly(TGGePoly2D poly);
virtual CString GetHatchName()const;
virtual void SetHatchName(CString sHatchName);
virtual double GetHatchScale()const;
virtual void SetHatchScale(double dScale);
virtual double GetHatchRotation()const;
virtual void SetHatchRotation(double dRotation);
void AppendPoly(const TGGePoly2D &poly);
void AppendPoly(const std::vector<TGGePoly2D> &polys);
const std::vector<TGGePoly2D>& GetPolys() const { return m_polys; }
public:
// 此变量独立出来而没有存入 vector 内是有原因的。
// 当 TGGeHatch 被用于房间实体时,在填充中可能会为文字而挖出几个洞口。
// 当上述情况出现时,m_polys 就会发挥作用。
// m_poly 保存的就是最外面的曲线,m_polys则保存洞口的曲线。
// 要保证 m_polys 全部都在 m_poly 曲线内部。
TGGePoly2D m_poly;
std::vector<TGGePoly2D> m_polys;
CString m_sHatchName;
double m_dScale;
double m_dRotation;
};
#endif