//-------------------------------------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TPGeCurveMesh3D 类 // = Version : ver2.0 // = Author : wlw // = CreateDate : 2002-09-09 // = Description: TPGeCurveMesh3D 声明 // = Maintainers: // //-------------------------------------------------------------------------------------------------------+ #ifndef _TPGECURVEMESH3D_H_ #define _TPGECURVEMESH3D_H_ #ifndef _TGPOINT_H_ #include "TGPoint.h" #endif #ifndef _TGOBJECTLIST_H_ #include "TGObjectList.h" #endif #ifndef _TPDLIST_H_ #include "TPDList.h" #endif #ifndef _TGMESHNODE3D_H_ #include "TGMeshNode3D.h" #endif #ifndef _TGMESHEDGE3D_H_ #include "TGMeshEdge3D.h" #endif #ifndef _TGMESH3D_H_ #include "TGMesh3D.h" #endif class TPGeCurve3D; class GEOAPI TPGeCurveMesh3D { friend class TPGeCurveMesh3D; public: //要求输入曲线是完全打断的,但允许有重线 TPGeCurveMesh3D(const TGObjectList &buf,bool bOnlyClose = true); virtual ~TPGeCurveMesh3D(); void AppendCurve(const TPGeCurve3D* pCurve); //去开放边 void RemoveOpenEdge(); void FindAllMesh(); //按原曲线方向搜索边界路径 void FindAllSDMesh(); void CreateRegion(TGObjectList& lstRegion,TGObjectList& lstHole); //根据连接关系分解为独立的子网 void Explode(TPDList &lstChildMesh); bool operator > (const TPGeCurveMesh3D&) const; bool operator < (const TPGeCurveMesh3D&) const; public: TPDList m_allMesh; protected: TPGeCurveMesh3D(); TGMeshNode3D* FindOrAddNode(const TGPoint& pt); protected: //所有节点 TPDListEx m_allNode; //所有边 TPDList m_allEdge; }; #endif