LCOV - code coverage report
Current view: top level - geom/cgm - TopologyEntity.hpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 4 9 44.4 %
Date: 2020-06-30 00:58:45 Functions: 2 5 40.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : //-------------------------------------------------------------------------
       2                 :            : // Filename      : TopologyEntity.hpp
       3                 :            : //
       4                 :            : // Purpose       : This file contains the declarations of the class 
       5                 :            : //                 TopologyEntity.
       6                 :            : //                 This class is the base class of all the topological 
       7                 :            : //                 entities in the Virtual Geometry Interface subsystem.
       8                 :            : //
       9                 :            : // Special Notes : This is a pure virtual class.
      10                 :            : //
      11                 :            : // Creator       : Malcolm Panthaki 
      12                 :            : //
      13                 :            : // Creation Date : 07/11/96
      14                 :            : //
      15                 :            : // Owner         : Malcolm J. Panthaki
      16                 :            : //-------------------------------------------------------------------------
      17                 :            : 
      18                 :            : #ifndef TOPOLOGY_ENTITY_HPP
      19                 :            : #define TOPOLOGY_ENTITY_HPP
      20                 :            : 
      21                 :            : // ********** BEGIN STANDARD INCLUDES      **********
      22                 :            : // ********** END STANDARD INCLUDES        **********
      23                 :            : 
      24                 :            : // ********** BEGIN CUBIT INCLUDES         **********
      25                 :            : #include "BridgeManager.hpp"
      26                 :            : #include "DagType.hpp"
      27                 :            : // ********** END CUBIT INCLUDES           **********
      28                 :            : 
      29                 :            : // ********** BEGIN FORWARD DECLARATIONS   **********
      30                 :            : class RefEntity ;
      31                 :            : template <class X> class DLIList ;
      32                 :            : class RefVolume ;
      33                 :            : class RefFace ;
      34                 :            : class RefEdge ;
      35                 :            : class RefVertex ;
      36                 :            : class Shell;
      37                 :            : class Loop;
      38                 :            : class Chain;
      39                 :            : class CoVolume;
      40                 :            : class CoFace;
      41                 :            : class CoEdge;
      42                 :            : class CoVertex;
      43                 :            : class GeometryQueryEngine ;
      44                 :            : class RefVertex;
      45                 :            : class RefEdge;
      46                 :            : class RefFace;
      47                 :            : class RefVolume;
      48                 :            : class Body;
      49                 :            : class RefGroup;
      50                 :            : 
      51                 :            : // ********** END FORWARD DECLARATIONS     **********
      52                 :            : 
      53                 :            : // ********** BEGIN MACROS DEFINITIONS     **********
      54                 :            : // ********** END MACROS DEFINITIONS       **********
      55                 :            : 
      56                 :            : class CUBIT_GEOM_EXPORT TopologyEntity
      57                 :            : {
      58                 :            : public :
      59                 :            :   
      60                 :            :   TopologyEntity() ;
      61                 :            :     //- The default constructor
      62                 :            :   
      63                 :            :   virtual ~TopologyEntity();
      64                 :            :     //- A pure virtual destructor - this ensures that the class is
      65                 :            :     //- non-instantiable.
      66                 :            : 
      67                 :          0 :   static const char* get_class_name()
      68                 :          0 :      { return "TopologyEntity"; }
      69                 :            :   
      70                 :          0 :   virtual const char* class_name() const
      71                 :          0 :      { return get_class_name(); }
      72                 :            :   
      73                 :            :   GeometryQueryEngine* get_geometry_query_engine() const;
      74                 :            :     //R GeometryQueryEngine*
      75                 :            :     //R- A pointer to the geometry query engine associated with
      76                 :            :     //R- the object.
      77                 :            :     //- This function returns a pointer to the geometry query engine
      78                 :            :     //- associated with the object.  If this TE has been merged, the
      79                 :            :     //- merged TEs may have different GQEs.  In that case, the GQE used
      80                 :            :     //- for evaluations is returned.
      81                 :            :   
      82                 :            :   CubitBoolean is_directly_related( TopologyEntity* entity );
      83                 :            :     //- Return TRUE if entity is this or a direct parent or child of this.
      84                 :            :   
      85                 :            :   CubitStatus bodies(DLIList<Body*>& body_list);
      86                 :            :   CubitStatus shells(DLIList<Shell*>& shell_list);
      87                 :            :   CubitStatus loops( DLIList<Loop*>& loop_list );
      88                 :            :   CubitStatus chains(DLIList<Chain*>& chain_list);
      89                 :            :   CubitStatus ref_volumes(DLIList<RefVolume*>& ref_volume_list);
      90                 :            :   CubitStatus ref_faces(DLIList<RefFace*>& ref_face_list);
      91                 :            :   CubitStatus ref_edges(DLIList<RefEdge*>& ref_edge_list);
      92                 :            :   CubitStatus ref_vertices(DLIList<RefVertex*>& ref_vertex_list);
      93                 :            :   CubitStatus co_volumes(DLIList<CoVolume*>& co_volume_list);
      94                 :            :   CubitStatus co_faces(DLIList<CoFace*>& co_face_list);
      95                 :            :   CubitStatus co_edges(DLIList<CoEdge*>& co_edge_list);
      96                 :            :   CubitStatus co_vertices(DLIList<CoVertex*>& co_vertex_list);
      97                 :            : 
      98                 :            :   RefVertex *ref_vertex();
      99                 :            :   RefEdge *ref_edge();
     100                 :            :   RefFace *ref_face();
     101                 :            :   RefVolume *ref_volume();
     102                 :            :   Body *body();
     103                 :            :     //R CubitStatus
     104                 :            :     //R- CUBIT_SUCCESS/FAILURE
     105                 :            :     //O body/ref_volume/ref_face/ref_edge/ref_vertex/shell/loop/chain/covolume/
     106                 :            :     //O coface/coedge/covertex _list
     107                 :            :     //O- List of Bodies/RefVolumes/RefFaces/RefEdges/RefVertex'es/Loops/
     108                 :            :     //O- Shells/Chains/CoVolumes/CoFaces/CoEdge/CoVertices
     109                 :            :     //- Append the appropriate list of TopologyEntities associated with
     110                 :            :     //- this TopologyEntity.  
     111                 :            :     //- There are 2 types of queries involved:
     112                 :            :     //- a) Return all "owned" entities such as all the RefFaces owned by
     113                 :            :     //-    a RefVolume.
     114                 :            :     //- b) Return all "owning" entities such as all the Refvolumes that
     115                 :            :     //-    own this RefFace
     116                 :            :     //- CUBIT_FAILURE is returned if this entity has the same type as
     117                 :            :     //- the requested list - e.g., if ref_edges is called on a RefEdge
     118                 :            :     //- object. 
     119                 :            :     //-
     120                 :            : 
     121                 :            :   CoEdge *co_edge();
     122                 :            :   int num_loops();
     123                 :            :   int num_ref_volumes();
     124                 :            :   int num_ref_faces();
     125                 :            :   int num_ref_edges();
     126                 :            :   int num_ref_vertices();
     127                 :            : 
     128                 :     608196 :   const BridgeManager* bridge_manager() const
     129                 :     608196 :     { return &bridgeMan; }
     130                 :     673228 :   BridgeManager* bridge_manager()
     131                 :     673228 :     { return &bridgeMan; }
     132                 :            : /*  
     133                 :            :   virtual EntityType get_topology_bridge_type() const
     134                 :            :     { return TopologyBridge_TYPE; }
     135                 :            :     // Returns the generic TB type associated with this TE.
     136                 :            : */  
     137                 :          0 :   virtual void reverse_topology() {}
     138                 :            :     // This method is used by owned BridgeManagers to
     139                 :            :     // notify their owning TopologyEntity when the sense
     140                 :            :     // of the geometry has changed (due to a different
     141                 :            :     // TopologyBridge being used as the primary rep.)
     142                 :            : 
     143                 :            :   virtual int get_children( DLIList<TopologyEntity*>* list = 0 ) const = 0;
     144                 :            :   virtual int get_parents ( DLIList<TopologyEntity*>* list = 0 ) const = 0;
     145                 :            :      //- Returns number of parents/children.
     146                 :            :      //- If a list is passed, pointers to parents/children will
     147                 :            :      //- be appended to the passed list.
     148                 :            : 
     149                 :            :   virtual DagType dag_type() const = 0;
     150                 :            : 
     151                 :            :   void deactivated(CubitBoolean flag) ;
     152                 :            :   CubitBoolean deactivated() const ;
     153                 :            :      //- Get and set funtions for the deactivation flag.
     154                 :            : 
     155                 :            :   CubitStatus remove_from_DAG(CubitBoolean recursive_flag = CUBIT_FALSE);
     156                 :            :   void disconnect_from_DAG();
     157                 :            :   virtual CubitStatus remove_child_link( TopologyEntity* child_ptr ) = 0;
     158                 :            : 
     159                 :            :   virtual CubitStatus
     160                 :            :    disconnect_all_children( DLIList<TopologyEntity*>* children = 0 ) = 0;
     161                 :            :   virtual CubitStatus
     162                 :            :    disconnect_all_parents( DLIList<TopologyEntity*>* parents = 0 ) = 0;
     163                 :            : 
     164                 :            : protected:
     165                 :            : 
     166                 :            :   CubitStatus set_topology_bridge(TopologyBridge* TB_ptr);
     167                 :            :     // Sets the TB for this TE to be TB_ptr ONLY (removes other TBs).
     168                 :            : 
     169                 :            :   friend class ModelQueryEngine ;
     170                 :            :   //friend class GroupingEntity;
     171                 :            : 
     172                 :            :   virtual CubitBoolean query_append_parents( DLIList<TopologyEntity*>& list ) = 0;
     173                 :            :   virtual CubitBoolean query_append_children(DLIList<TopologyEntity*>& list ) = 0;
     174                 :            : 
     175                 :            :   cBit deactivatedStatus_ : 1;
     176                 :            :     //- The deactivated flag
     177                 :            : 
     178                 :            :   cBit encountered_ : 1;
     179                 :            :    // Indicates if it has already been found in
     180                 :            :    // in a DAG query.
     181                 :            : 
     182                 :            :   
     183                 :            : private:
     184                 :            :   BridgeManager bridgeMan;
     185                 :            :   
     186                 :            :   TopologyEntity( const TopologyEntity& );
     187                 :            :   void operator=( const TopologyEntity& );
     188                 :            : };
     189                 :            : 
     190                 :            : // ********** BEGIN INLINE FUNCTIONS       **********
     191                 :            : // ********** END INLINE FUNCTIONS         **********
     192                 :            :  
     193                 :            : // ********** BEGIN FRIEND FUNCTIONS       **********
     194                 :            : // ********** END FRIEND FUNCTIONS         **********
     195                 :            :  
     196                 :            : // ********** BEGIN EXTERN FUNCTIONS       **********
     197                 :            : // ********** END EXTERN FUNCTIONS         **********
     198                 :            :  
     199                 :            : // ********** BEGIN HELPER CLASSES         **********
     200                 :            : // ********** END   HELPER CLASSES         **********
     201                 :            : 
     202                 :            : #endif
     203                 :            : 

Generated by: LCOV version 1.11