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 __mitkTriangleMeshSimplification_h 00012 #define __mitkTriangleMeshSimplification_h 00013 00014 #include "mitkMeshToMeshFilter.h" 00015 00016 class mitkHETriangleMesh; 00017 00031 class MITK_COMMON_API mitkTriangleMeshSimplification : public mitkMeshToMeshFilter 00032 { 00033 public: 00034 MITK_TYPE(mitkTriangleMeshSimplification, mitkMeshToMeshFilter) 00035 00036 virtual void PrintSelf(ostream &os); 00037 00042 void SetTargetFaceNumber(size_type num) { m_TargetFaceNumber = num; } 00043 00044 00045 protected: 00046 mitkTriangleMeshSimplification(); 00047 virtual ~mitkTriangleMeshSimplification(); 00048 00049 virtual mitkMesh* _createOutMesh(); 00050 00051 virtual bool _simplificationProcess(mitkHETriangleMesh *mesh) = 0; 00052 00053 virtual bool Execute(); 00054 00055 size_type m_TargetFaceNumber; 00056 00057 private: 00058 mitkTriangleMeshSimplification(const mitkTriangleMeshSimplification&); 00059 void operator = (const mitkTriangleMeshSimplification&); 00060 00061 }; 00062 00063 00064 //#define DEFINED_mitkTriangleMeshSimplification 00065 00066 00067 00068 #endif 00069