00001 //============================================================================== 00015 #ifndef MDS_TRIMEMBERSHIPFUNC_H 00016 #define MDS_TRIMEMBERSHIPFUNC_H 00017 00018 #include "mdsTriFeatures.h" 00019 00020 // VCTL 00021 #include <VectorEntity/mcentity.h> 00022 00023 00024 namespace mds 00025 { 00026 namespace seg 00027 { 00028 00029 //============================================================================== 00030 /* 00031 * Global definitions. 00032 */ 00033 00035 //#ifndef MDS_SEG_LOGGING_ENABLED 00036 //# define MDS_SEG_LOGGING_ENABLED 00037 //#endif 00038 00039 00040 //============================================================================== 00044 class CTriMembershipFunc : public CTriBase 00045 { 00046 public: 00048 typedef CTriFeatures tFeatures; 00049 00051 typedef CTriFeatures::tFeature tFeature; 00052 00054 enum { NUM_OF_FEATURES = tFeatures::NUM_OF_FEATURES }; 00055 00056 public: 00058 CTriMembershipFunc() : m_NumOfSegments(0) {} 00059 00061 virtual ~CTriMembershipFunc() {} 00062 00065 virtual bool operator()(vctl::MCTri *pFirstTriangle) = 0; 00066 00070 virtual bool operator()(vctl::MCTri *pFirstTriangle, 00071 tSize NumOfClasses 00072 ) = 0; 00073 00075 mds::tSize getNumOfSegments() { return m_NumOfSegments; } 00076 00077 protected: 00079 mds::tSize m_NumOfSegments; 00080 }; 00081 00082 00083 } // namespace seg 00084 } // namespace mds 00085 00086 #endif // MDS_TRIMEMBERSHIPFUNC_H 00087