LCOV - code coverage report
Current view: top level - geom/cgm - GeometryFeatureTool.hpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 4 5 80.0 %
Date: 2020-06-30 00:58:45 Functions: 1 1 100.0 %
Branches: 1 4 25.0 %

           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                 :            : 

Generated by: LCOV version 1.11