www.pudn.com > cad3d.zip > ISurfTopology.h


#ifndef __ISurfTopology_h__ 
#define __ISurfTopology_h__ 
 
#include "Topology/ITopology.h" 
 
class CControlPoint; 
class CControlFace; 
 
//surface specific topology 
class ISurfTopology : public ITopology 
{ 
public: 
	virtual ~ISurfTopology() {}; 
 
	virtual bool				IsTriangular() const = 0; 
	virtual bool				IsValencySupported(top_int nVertsCount) const = 0; 
	virtual top_int				GetMaxValency() const = 0;		 
	virtual top_int				GetMinValency() const = 0;		 
 
	//faces handling 
	virtual CControlFace&		AddFace(top_int nVertsCount = -1) = 0; 
	virtual CControlFace&		AddTriangle(CControlPoint* pVer0, CControlPoint* pVer1, CControlPoint* pVer2) = 0; 
	virtual CControlFace&		AddQuad(CControlPoint* pVer0, CControlPoint* pVer1,CControlPoint* pVer2, CControlPoint* pVer3) = 0; 
 
	virtual void				RemoveFace(CControlFace& rFace) = 0; 
	virtual void				DeleteFace(CControlFace& rFace) = 0; 
	virtual CControlFace*		GetFacePtrById(CID nId) = 0; 
 
	virtual void				CreateLinks() = 0; 
	virtual void				CreateLinks(CControlFace& rFace) = 0; 
}; 
 
 
#endif // __ISurfTopology_h__