Branch data Line data Source code
1 : : #ifndef _GEOMETRYFEATURETOOL_HPP
2 : : #define _GEOMETRYFEATURETOOL_HPP
3 : :
4 : : // *** BEGIN INCLUDES *** //
5 : : #include "CubitDefines.h"
6 : : #include "DLIList.hpp"
7 : : #include "CGMGeomConfigure.h"
8 : : #include "GeometryFeatureEngine.hpp"
9 : : // *** END INCLUDES *** //
10 : :
11 : : // *** BEGIN FORWARD DECLARATIONS *** //
12 : : class TopologyBridge;
13 : : class TopologyEntity;
14 : : class RefEntity;
15 : : class RefFace;
16 : : class RefEdge;
17 : : class Body;
18 : : class BasicTopologyEntity;
19 : : // *** END FORWARD DECLARATIONS *** //
20 : :
21 : : //! This is a singleton pattern class for the feature functions
22 : : class CUBIT_GEOM_EXPORT GeometryFeatureTool
23 : : {
24 : : public:
25 : : //! singleton pattern class instance interface
26 : : //! \return
27 : : //! the one and only instace
28 : : static GeometryFeatureTool* instance( GeometryFeatureEngine* GFEPtr = NULL );
29 : :
30 : : //! destructor
31 : : ~GeometryFeatureTool();
32 : :
33 : 322 : static void delete_instance()
34 : : {
35 [ - + ]: 322 : if(instance_)
36 [ # # ]: 0 : delete instance_;
37 : 322 : instance_ = NULL;
38 : 322 : };
39 : :
40 : : //! add a feature engine to the list
41 : : void add_gfe( GeometryFeatureEngine *gfe_ptr );
42 : :
43 : : //! Returns the feature type that created the entity
44 : : GeometryFeatureEngine::FeatureType
45 : : feature_type(BasicTopologyEntity* bte);
46 : :
47 : : //! Get all of the entities related to 'entity_in' by the same source feature
48 : : CubitStatus get_related_by_feature(
49 : : BasicTopologyEntity* bte,
50 : : DLIList<GeometryEntity*>& return_list);
51 : :
52 : : //! Get the feature types available from this FeatureEngine
53 : : DLIList<GeometryFeatureEngine::FeatureType>
54 : : available_feature_types(BasicTopologyEntity* bte);
55 : :
56 : : private:
57 : : //! returns the feature engine of an entity
58 : : GeometryFeatureEngine* get_engine( TopologyBridge *tb_ptr ) const;
59 : :
60 : : //! returns the feature engine of an entity
61 : : GeometryFeatureEngine* get_engine( TopologyEntity *te_ptr ) const;
62 : :
63 : : //! determines if entities belong to the same engine
64 : : CubitBoolean same_feature_engine( DLIList<RefEntity*> &ref_entity_list,
65 : : CubitBoolean check_children ) const;
66 : :
67 : : //! determines if entities belong to the same engine
68 : : CubitBoolean same_feature_engine( DLIList<TopologyEntity*> &topo_list ) const;
69 : :
70 : : public:
71 : :
72 : :
73 : : protected:
74 : :
75 : : //! constructor
76 : : GeometryFeatureTool( GeometryFeatureEngine *GFEPtr );
77 : :
78 : : private:
79 : :
80 : : //! singleton pattern class instance interface
81 : : static GeometryFeatureTool* instance_;
82 : :
83 : : //! list of feature engines
84 : : DLIList<GeometryFeatureEngine*> gfeList;
85 : :
86 : : };
87 : : #endif
88 : :
|