初始化提交
This commit is contained in:
commit
345044cb46
7744 files changed
+4018766
No files matched your search
@@ -0,0 +1,85 @@
|
||||
//-----------------------------------------------------------------------------+
|
||||
// Copyright (C), 1998-2007, SH Software Co. Ltd.
|
||||
// = FileName : XPolygonEx类
|
||||
// = Version : ver2.0
|
||||
// = Author : zjq
|
||||
// = CreateDate : 2002-09-09
|
||||
// = Description: XPolygonEx类声明
|
||||
// = Maintainers:
|
||||
//
|
||||
//-----------------------------------------------------------------------------+
|
||||
#ifndef _XPOLYGONEX_H_
|
||||
#define _XPOLYGONEX_H_
|
||||
|
||||
#ifndef _XPOLY_H_
|
||||
#include "XPoly.h"
|
||||
#endif
|
||||
|
||||
#ifndef _ENTITY_H_
|
||||
#include "Entity.h"
|
||||
#endif
|
||||
|
||||
#ifndef _XTRIANGLE_H_
|
||||
#include "XTriangle.h"
|
||||
#endif
|
||||
|
||||
#ifndef _LoopList_H_
|
||||
#include "LoopList.h"
|
||||
#endif
|
||||
|
||||
|
||||
// 多边形的三角形化
|
||||
class GEOAPI XPolygonEx : public XPoly
|
||||
{
|
||||
public:
|
||||
XPolygonEx();
|
||||
XPolygonEx(XPoly &src);
|
||||
XPolygonEx(Entity &ent);
|
||||
XPolygonEx(const XPolygonEx &src);
|
||||
virtual ~XPolygonEx();
|
||||
|
||||
virtual bool IsKindOf(TEntityId entType) const;
|
||||
virtual TEntityId Type() const;
|
||||
virtual void CopyFrom(const XEntity* pSrc);
|
||||
|
||||
XPoint * operator [](int nIndex);
|
||||
const XPoint & operator [](int nIndex) const;
|
||||
XPolygonEx & operator = (const XPolygonEx &src);
|
||||
|
||||
// 求法向量,用来作为坐标变换
|
||||
int GetNormal(XVector3D &vtNormal) const;
|
||||
|
||||
int Make(const TCHAR *szLay);
|
||||
|
||||
// b2D--TRUE, 已经是二维;否则是三维,需要坐标变换
|
||||
int Trianglize(DList<XTriangle> &lstTris, BOOL b2D = FALSE) const;
|
||||
int SubTrianglize(DList<XTriangle> &lstTris);
|
||||
|
||||
int GetInsidePoint(XPoint &ptRet, BOOL b2D = FALSE) const;
|
||||
int SubGetInsidePoint(XPoint &ptRet);
|
||||
|
||||
//是否为凸多边形,2D
|
||||
BOOL IsConvex() const;
|
||||
BOOL IsVisible(int idx) const;
|
||||
|
||||
void Reset();
|
||||
void Reverse();
|
||||
void Ecs2Wcs(XVector3D vtEcs);
|
||||
void Wcs2Ecs(XVector3D vtEcs);
|
||||
|
||||
void SetVisible(int idx, BOOL bVis);
|
||||
|
||||
void RemoveNode(int nIndex);
|
||||
void AppendNode(const XPoint &pt, int nIndex = 1);
|
||||
|
||||
double GetEdgeLength(int idx) const;
|
||||
double GetAngle(int idx) const;
|
||||
XPoint GetVertex(int idx) const;
|
||||
LoopList<int>& GetVisibleFlag();
|
||||
|
||||
public:
|
||||
// 1--visible; 0-invisible
|
||||
LoopList<int> m_lstVisibleFlag;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in new issue
Block a user