68 lines
1.8 KiB
C++
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 |