LCOV - code coverage report
Current view: top level - geom/virtual/cgm - SubEntitySet.hpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 0 10 0.0 %
Date: 2020-06-30 00:58:45 Functions: 0 6 0.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : #ifndef SUB_ENTITY_SET_HPP
       2                 :            : #define SUB_ENTITY_SET_HPP
       3                 :            : 
       4                 :            : #include "TBOwnerSet.hpp"
       5                 :            : 
       6                 :            : class PartitionEntity;
       7                 :            : class TopologyBridge;
       8                 :            : class CubitSimpleAttrib;
       9                 :            : class CubitVector;
      10                 :            : class PartitionBody;
      11                 :            : 
      12                 :            : class SubEntitySet : public TBOwnerSet
      13                 :            : {
      14                 :            : 
      15                 :            :   public:
      16                 :            :   
      17                 :            :     SubEntitySet( TopologyBridge* real_entity,
      18                 :            :                   PartitionEntity* first_partition );
      19                 :            :     virtual ~SubEntitySet();
      20                 :            :     
      21                 :          0 :     TopologyBridge* get_entity() const
      22                 :          0 :       { return myEntity; }
      23                 :            :     
      24                 :            :     void add_partition( PartitionEntity* partition,
      25                 :            :                         PartitionEntity* insert_after = 0 );
      26                 :            :                       
      27                 :            :     void add_lower_order( PartitionEntity* partition );
      28                 :            :     void add_lower_order( PartitionEntity* entity, 
      29                 :            :                           const CubitSimpleAttrib& attrib,
      30                 :            :                           int dimension,
      31                 :            :                           DLIList<CubitVector*>& points_from_attrib,
      32                 :            :                           DLIList<int>& facets_from_attrib,
      33                 :            :                           DLIList<int>& children_from_attrib,
      34                 :            :                           DLIList<int>& facet_point_owners_from_attrib );
      35                 :            :     
      36                 :            :     void remove( PartitionEntity* partition );
      37                 :            :     
      38                 :            :       
      39                 :          0 :     bool has_lower_order() const
      40                 :          0 :       { return lowerOrderHead != 0; }
      41                 :            :     
      42                 :            :     bool has_multiple_sub_entities() const;
      43                 :            :     
      44                 :          0 :     PartitionBody* body() const
      45                 :          0 :       { return bodyPtr; }
      46                 :            :     
      47                 :            :     void get_owners( DLIList<TopologyBridge*>& owner_list ) const;
      48                 :            :     
      49                 :            :     CubitStatus remove_bridge( TopologyBridge* bridge );
      50                 :            :     CubitStatus swap_bridge( TopologyBridge* remove, 
      51                 :            :                              TopologyBridge* add,
      52                 :            :                              bool reversed );
      53                 :            :     void notify_reversed( TopologyBridge* bridge );
      54                 :            :     CubitStatus bridge_destroyed( TopologyBridge* bridge );
      55                 :            :   
      56                 :            :     void print_debug_info( const char* prefix = 0 ) const;
      57                 :            :   
      58                 :            :     void add_attribute( PartitionEntity* entity, const CubitSimpleAttrib& csa );
      59                 :            :     void rem_attribute( PartitionEntity* entity, const CubitSimpleAttrib& csa );
      60                 :            :     void get_attributes( PartitionEntity* entity, 
      61                 :            :                          DLIList<CubitSimpleAttrib>& list );
      62                 :            :     void get_attributes( PartitionEntity* entity, const char* name,
      63                 :            :                          DLIList<CubitSimpleAttrib>& list );
      64                 :            :     void rem_all_attrib( PartitionEntity* entity );
      65                 :            :     void unwrap_attributes();
      66                 :            :   
      67                 :            :     void get_sub_entities( DLIList<PartitionEntity*>& result_set ) const;
      68                 :            :     void get_lower_order( DLIList<PartitionEntity*>& result_set ) const;
      69                 :            : 
      70                 :            :     int get_id( PartitionEntity* entity ) const;
      71                 :            :     PartitionEntity* entity_from_id( int id ) const;
      72                 :            :     
      73                 :            :       // The following two methods are used by PartitionEngine
      74                 :            :       // when restoring geometry.  Calling them at the wrong
      75                 :            :       // time will result in the loss of attribute data.
      76                 :            :     void set_id( PartitionEntity* entity, int id );
      77                 :            :     void renumerate( int lowest_value, bool only_higher_ids  );
      78                 :            :       // renumerate sets new SubEntitySet ids on owned entities.
      79                 :            :       // The lowest id of any updated entity will be the passed value.
      80                 :            :       // If only_higher_ids is true, only entities with IDs equal to
      81                 :            :       // or higher than the passed value are updated.
      82                 :            :       
      83                 :          0 :     int get_owner_layer() const { return layerNumber; }
      84                 :            :     
      85                 :            :     
      86                 :            :     CubitStatus save_geometry();
      87                 :            :     
      88                 :            :     int get_unique_id();
      89                 :          0 :     void reset_unique_id() { uniqueId = 0; }
      90                 :            :     
      91                 :            :     CubitStatus save_geometry( int id, int dimension,
      92                 :            :                                DLIList<CubitVector*>* point_list,
      93                 :            :                                DLIList<int>* point_connectivity,
      94                 :            :                                DLIList<int>* topo_connectivity,
      95                 :            :                                DLIList<int>* point_owners,
      96                 :            :                                CubitSimpleAttrib& attrib );
      97                 :            : 
      98                 :            :     static CubitStatus read_geometry( int& id, int& dimension,
      99                 :            :                                DLIList<CubitVector*>& point_list,
     100                 :            :                                DLIList<int>& point_connectivity,
     101                 :            :                                DLIList<int>& topo_connectivity,
     102                 :            :                                DLIList<int>& point_owners,
     103                 :            :                                const CubitSimpleAttrib& attrib );
     104                 :            :     
     105                 :            :     static int get_geom_dimension( const CubitSimpleAttrib& attrib );
     106                 :            :       // return the dimension of the geometry stored in the attrib
     107                 :            :     
     108                 :            :     static int get_geom_id( const CubitSimpleAttrib& attrib );
     109                 :            :     
     110                 :            :     static int get_segment_count( const CubitSimpleAttrib& attrib );
     111                 :            :     
     112                 :            :     static void remove_non_geom_attribs( DLIList<CubitSimpleAttrib>& list );
     113                 :            :       // given a list of all the geometry attributes on an entity,
     114                 :            :       // remove and destroy any that are not partition geometry.
     115                 :            :     
     116                 :            :     static void strip_attributes( TopologyBridge* bridge );
     117                 :            :       // remove any attributes related to partition geometry
     118                 :            :       // from the passed bridge.
     119                 :            : 
     120                 :            :     void strip_attributes(); 
     121                 :            :       // remove all attributes on paritioned entities,
     122                 :            :       // sub entities and lower-order entities
     123                 :            :       
     124                 :          0 :     inline SubEntitySet* next_in_body() const
     125                 :          0 :       { return bodyNext; }
     126                 :            :     
     127                 :            :   private:
     128                 :            :     
     129                 :            :     friend class PartitionBody;
     130                 :            :     SubEntitySet* bodyNext;
     131                 :            :     PartitionBody* bodyPtr;
     132                 :            :       
     133                 :            :        // don't allow assignment (make assignment private)
     134                 :            :     SubEntitySet& operator=( const SubEntitySet& ) { return *this;}
     135                 :            :     bool operator==( const SubEntitySet& c ) const { return &c == this; }
     136                 :            :   
     137                 :            :     CubitStatus wrap_attribute( CubitSimpleAttrib& csa, int id ) const;
     138                 :            :     int unwrap_attribute( CubitSimpleAttrib& csa ) const;
     139                 :            :     bool is_attribute( const CubitSimpleAttrib& csa, int id = 0 ) const;
     140                 :            :       
     141                 :            :     TopologyBridge* myEntity;
     142                 :            :     
     143                 :            :     PartitionEntity* subEntityHead;
     144                 :            :     PartitionEntity* lowerOrderHead;
     145                 :            :     
     146                 :            :     int lastId;
     147                 :            :     
     148                 :            :     int layerNumber;
     149                 :            :     
     150                 :            :     int uniqueId;
     151                 :            : };
     152                 :            : 
     153                 :            : #endif

Generated by: LCOV version 1.11