cgma
|
00001 #ifndef _GEOMETRYFEATUREENGINE_HPP 00002 #define _GEOMETRYFEATUREENGINE_HPP 00003 00004 // *** BEGIN INCLUDES *** // 00005 #include "CubitDefines.h" 00006 #include "CGMGeomConfigure.h" 00007 #include "DLIList.hpp" 00008 // *** END INCLUDES *** // 00009 00010 // *** BEGIN FORWARD DECLARATIONS *** // 00011 class TopologyBridge; 00012 class TopologyEntity; 00013 class GeometryEntity; 00014 // *** END FORWARD DECLARATIONS *** // 00015 00017 class CUBIT_GEOM_EXPORT GeometryFeatureEngine 00018 { 00019 public: 00020 00021 enum FeatureType 00022 { 00023 FEATURE_UNDEFINED, 00024 FEATURE_HOLE, 00025 FEATURE_ROUND, 00026 FEATURE_CHAMFER, 00027 FEATURE_SLOT , 00028 FEATURE_CUT, 00029 FEATURE_IMPRINT 00030 }; 00031 00033 virtual ~GeometryFeatureEngine() {} 00034 00036 virtual CubitBoolean is_feature_engine( const TopologyBridge* ) = 0; 00037 00039 virtual CubitBoolean is_feature_engine( const TopologyEntity* ) = 0; 00040 00042 00044 virtual CubitStatus get_related_by_feature( 00045 GeometryEntity *entity_in, 00046 DLIList<GeometryEntity*> &list_out) = 0; 00047 00049 00050 #if _MSC_VER <= 1200 00051 virtual DLIList<FeatureType> 00052 #else 00053 virtual DLIList<GeometryFeatureEngine::FeatureType> 00054 #endif 00055 available_feature_types(GeometryEntity* entity) = 0; 00056 00057 virtual GeometryFeatureEngine::FeatureType 00058 feature_type(GeometryEntity* entity) = 0; 00059 00060 protected: 00061 00062 private: 00063 00064 }; 00065 00066 #endif 00067