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

53 lines
1.4 KiB
C++

#pragma once
#include "GePoly2D.h"
class GeHatch : public GeEntity
{
public:
GeHatch(GePoly2D poly,const TCHAR* sName,double nScale = 1.0);
GeHatch(GePoly2D poly,const TCHAR* sName,double nScale,double nAngle);
virtual ~GeHatch();
virtual bool IsKindOf(TEntityId entType) const;
virtual TEntityId Type() const;
virtual void CopyFrom(const GeEntity* pImpSrc);
virtual bool IsSolid()const;
virtual GePoly2D GetHatchPoly()const;
virtual void SetHatchPoly(GePoly2D 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 GePoly2D &poly);
void AppendPoly(const std::vector<GePoly2D> &polys);
const std::vector<GePoly2D>& GetPolys() const { return m_polys; }
public:
// 此变量独立出来而没有存入 vector 内是有原因的。
// 当 GeHatch 被用于房间实体时,在填充中可能会为文字而挖出几个洞口。
// 当上述情况出现时,m_polys 就会发挥作用。
// m_poly 保存的就是最外面的曲线,m_polys则保存洞口的曲线。
// 要保证 m_polys 全部都在 m_poly 曲线内部。
GePoly2D m_poly;
std::vector<GePoly2D> m_polys;
CString m_sHatchName;
double m_dScale;
double m_dRotation;
};