00001 /*========================================================================= 00002 00003 Program: 3DMed 00004 Date: $Date: 2014-02-25 18:30:00 +0800 $ 00005 Version: $Version: 4.6.0 $ 00006 Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences 00007 00008 =========================================================================*/ 00009 00010 00011 #ifndef __mitkTriangleMesh_h 00012 #define __mitkTriangleMesh_h 00013 00014 #include "mitkMesh.h" 00015 00016 class mitkHETriangleMesh; 00017 00022 class MITK_COMMON_API mitkTriangleMesh : public mitkMesh 00023 { 00024 public: 00025 MITK_TYPE(mitkTriangleMesh, mitkMesh) 00026 00027 virtual void PrintSelf(ostream& os); 00028 00032 mitkTriangleMesh(); 00033 00041 bool CreateFrom(mitkHETriangleMesh *mesh); 00042 00047 virtual int GetDataObjectType() const { return MITK_TRIANGLE_MESH; } 00048 00052 virtual void Initialize(); 00053 00058 virtual void ShallowCopy(mitkDataObject *src); 00059 00064 virtual void DeepCopy(mitkDataObject *src); 00065 00070 virtual size_type GetVertexNumber() const { return m_VertNum; } 00071 00076 virtual size_type GetFaceNumber() const { return m_FaceNum; } 00077 00094 index_type AddFace(TriangleFace &face) { return this->_addFace(face.vertNum, face.verts); } 00095 00096 00097 protected: 00098 virtual ~mitkTriangleMesh(); 00099 00100 size_type m_VertNum; 00101 size_type m_FaceNum; 00102 size_type m_MaxVertNum; 00103 size_type m_MaxFaceNum; 00104 00105 private: 00106 mitkTriangleMesh(const mitkTriangleMesh&); 00107 void operator=(const mitkTriangleMesh&); 00108 00109 }; 00110 00111 00112 00113 //#define DEFINED_mitkTriangleMesh 00114 00115 00116 00117 #endif 00118