cgma
|
00001 #ifndef _GEOMETRYFEATURETOOL_HPP 00002 #define _GEOMETRYFEATURETOOL_HPP 00003 00004 // *** BEGIN INCLUDES *** // 00005 #include "CubitDefines.h" 00006 #include "DLIList.hpp" 00007 #include "CGMGeomConfigure.h" 00008 #include "GeometryFeatureEngine.hpp" 00009 // *** END INCLUDES *** // 00010 00011 // *** BEGIN FORWARD DECLARATIONS *** // 00012 class TopologyBridge; 00013 class TopologyEntity; 00014 class RefEntity; 00015 class RefFace; 00016 class RefEdge; 00017 class Body; 00018 class BasicTopologyEntity; 00019 // *** END FORWARD DECLARATIONS *** // 00020 00022 class CUBIT_GEOM_EXPORT GeometryFeatureTool 00023 { 00024 public: 00028 static GeometryFeatureTool* instance( GeometryFeatureEngine* GFEPtr = NULL ); 00029 00031 ~GeometryFeatureTool(); 00032 00033 static void delete_instance() 00034 { 00035 if(instance_) 00036 delete instance_; 00037 instance_ = NULL; 00038 }; 00039 00041 void add_gfe( GeometryFeatureEngine *gfe_ptr ); 00042 00044 GeometryFeatureEngine::FeatureType 00045 feature_type(BasicTopologyEntity* bte); 00046 00048 CubitStatus get_related_by_feature( 00049 BasicTopologyEntity* bte, 00050 DLIList<GeometryEntity*>& return_list); 00051 00053 DLIList<GeometryFeatureEngine::FeatureType> 00054 available_feature_types(BasicTopologyEntity* bte); 00055 00056 private: 00058 GeometryFeatureEngine* get_engine( TopologyBridge *tb_ptr ) const; 00059 00061 GeometryFeatureEngine* get_engine( TopologyEntity *te_ptr ) const; 00062 00064 CubitBoolean same_feature_engine( DLIList<RefEntity*> &ref_entity_list, 00065 CubitBoolean check_children ) const; 00066 00068 CubitBoolean same_feature_engine( DLIList<TopologyEntity*> &topo_list ) const; 00069 00070 public: 00071 00072 00073 protected: 00074 00076 GeometryFeatureTool( GeometryFeatureEngine *GFEPtr ); 00077 00078 private: 00079 00081 static GeometryFeatureTool* instance_; 00082 00084 DLIList<GeometryFeatureEngine*> gfeList; 00085 00086 }; 00087 #endif 00088