cgma
GeometryFeatureTool.hpp
Go to the documentation of this file.
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines