LCOV - code coverage report
Current view: top level - geom - CAEntitySense.cpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 28 69 40.6 %
Date: 2020-06-30 00:58:45 Functions: 7 10 70.0 %
Branches: 28 102 27.5 %

           Branch data     Line data    Source code
       1                 :            : //- File:           CAEntitySense.cpp
       2                 :            : //- Owner:          Corey Ernst
       3                 :            : //- Description:    Cubit Attribute for entity colors.
       4                 :            : //- Checked By:
       5                 :            : //- Version:
       6                 :            : 
       7                 :            : #include "CAEntitySense.hpp"
       8                 :            : #include "RefEntity.hpp"
       9                 :            : #include "RefEdge.hpp"
      10                 :            : #include "RefFace.hpp"
      11                 :            : #include "BridgeManager.hpp"
      12                 :            : #include "BasicTopologyEntity.hpp"
      13                 :            : #include "CastTo.hpp"
      14                 :            : #include "CubitMessage.hpp"
      15                 :            : 
      16                 :            : 
      17                 :      26892 : CubitAttrib* CAEntitySense_creator(RefEntity* entity, const CubitSimpleAttrib &p_csa)
      18                 :            : {
      19         [ +  - ]:      26892 :   return new CAEntitySense(entity, p_csa);
      20                 :            : }
      21                 :            : 
      22                 :      26892 : CAEntitySense::CAEntitySense(RefEntity* new_attrib_owner,
      23                 :            :                        const CubitSimpleAttrib &csa_ptr)
      24                 :      26892 :         : CubitAttrib(new_attrib_owner)
      25                 :            : {
      26 [ +  - ][ +  - ]:      26892 :   std::vector<int, std::allocator<int> > i_list = csa_ptr.int_data_list();
      27                 :            : 
      28 [ +  - ][ -  + ]:      26892 :   if( i_list.size() > 0)
      29                 :            :   {
      30         [ #  # ]:          0 :     int i =  i_list[0];
      31         [ #  # ]:          0 :     if( i == -1 )
      32                 :          0 :       entitySense = CUBIT_UNKNOWN;
      33         [ #  # ]:          0 :     else if( i == 0 )
      34                 :          0 :       entitySense = CUBIT_FORWARD;
      35         [ #  # ]:          0 :     else if( i == 1 )
      36                 :          0 :       entitySense = CUBIT_REVERSED;
      37                 :            :   }
      38                 :            :   else
      39         [ +  - ]:      26892 :     entitySense = CUBIT_UNKNOWN;
      40                 :      26892 : }
      41                 :            : 
      42                 :          0 : CAEntitySense::CAEntitySense(RefEntity* new_attrib_owner)
      43                 :          0 :        : CubitAttrib(new_attrib_owner)
      44                 :            : {
      45                 :          0 :  entitySense = CUBIT_FORWARD;
      46                 :          0 : }
      47                 :            : 
      48                 :      80676 : CAEntitySense::~CAEntitySense()
      49                 :            : {
      50         [ -  + ]:      53784 : }
      51                 :            : 
      52                 :            : 
      53                 :          0 : CubitStatus CAEntitySense::actuate()
      54                 :            : {
      55         [ #  # ]:          0 :    if ( hasActuated)
      56                 :          0 :       return CUBIT_SUCCESS;
      57                 :            :    
      58         [ #  # ]:          0 :    if ( !attribOwnerEntity )
      59                 :          0 :       return CUBIT_FAILURE;
      60                 :            :    
      61                 :          0 :    deleteAttrib = CUBIT_FALSE;  
      62                 :            : 
      63                 :          0 :    int dimension = attribOwnerEntity->dimension();
      64 [ #  # ][ #  # ]:          0 :    if( 1 == dimension || 2 == dimension )
      65                 :            :    {
      66         [ #  # ]:          0 :      BasicTopologyEntity* bte_ptr = CAST_TO(attribOwnerEntity, BasicTopologyEntity);
      67                 :          0 :      CubitSense tmp_sense = CUBIT_UNKNOWN;
      68         [ #  # ]:          0 :      if( bte_ptr )     
      69                 :            :      {
      70                 :          0 :        tmp_sense = bte_ptr->bridge_manager()->topology_bridge()->bridge_sense();
      71         [ #  # ]:          0 :        if( tmp_sense != entitySense )
      72                 :            :        {
      73         [ #  # ]:          0 :          if( 1==dimension )
      74                 :            :          {
      75         [ #  # ]:          0 :            RefEdge *ref_edge = dynamic_cast<RefEdge*>( bte_ptr );
      76                 :          0 :            ref_edge->reverse_tangent();
      77                 :            :          }
      78         [ #  # ]:          0 :          else if( 2 == dimension )
      79                 :            :          {
      80         [ #  # ]:          0 :            RefFace *ref_face = dynamic_cast<RefFace*>( bte_ptr );
      81                 :          0 :            ref_face->reverse_normal();
      82                 :            :          }
      83                 :            :        }
      84                 :            :      }
      85                 :            :    }
      86                 :            :    
      87                 :          0 :    hasActuated = CUBIT_TRUE;
      88                 :          0 :    return CUBIT_SUCCESS;
      89                 :            : }
      90                 :            : 
      91                 :      26892 : CubitStatus CAEntitySense::update()
      92                 :            : {
      93                 :      26892 :   int dimension = attribOwnerEntity->dimension();
      94 [ +  + ][ +  + ]:      26892 :   if( 1 == dimension || 2 == dimension )
      95                 :            :   {
      96         [ -  + ]:      15312 :     BasicTopologyEntity* bte_ptr = CAST_TO(attribOwnerEntity, BasicTopologyEntity);
      97                 :      15312 :     entitySense = CUBIT_UNKNOWN;
      98         [ +  - ]:      15312 :     if( bte_ptr )     
      99                 :      15312 :       entitySense = bte_ptr->bridge_manager()->topology_bridge()->bridge_sense();
     100                 :            :   }  
     101                 :            : 
     102 [ +  + ][ +  - ]:      26892 :   if( entitySense == CUBIT_FORWARD || entitySense == CUBIT_UNKNOWN )  
     103                 :      26892 :     delete_attrib(CUBIT_TRUE);
     104                 :            : 
     105                 :      26892 :   return CUBIT_SUCCESS;
     106                 :            : }
     107                 :            : 
     108                 :      26892 : CubitSimpleAttrib CAEntitySense::cubit_simple_attrib()
     109                 :            : {
     110         [ +  - ]:      26892 :   std::vector<CubitString> cs_list;
     111 [ +  - ][ +  - ]:      53784 :   std::vector<int, std::allocator<int> >  i_list;
     112                 :            : 
     113         [ +  - ]:      26892 :   i_list.push_back( entitySense );
     114                 :            :     
     115 [ +  - ][ +  - ]:      26892 :   cs_list.push_back(att_internal_name());
         [ +  - ][ +  - ]
     116                 :            : 
     117         [ +  - ]:      26892 :   CubitSimpleAttrib csattrib_ptr(&cs_list, NULL, &i_list);
     118                 :            : 
     119         [ +  - ]:      53784 :   return csattrib_ptr;
     120                 :            : }
     121                 :            : 
     122                 :          0 : void CAEntitySense::print()
     123                 :            : {
     124                 :            :     // print info on this attribute
     125                 :            :   
     126         [ #  # ]:          0 :   PRINT_INFO("CAEntitySense: owner = %s %d:   color ",
     127         [ #  # ]:          0 :              attribOwnerEntity->class_name(), attribOwnerEntity->id());
     128         [ #  # ]:          0 :   if( entitySense == CUBIT_UNKNOWN )
     129 [ #  # ][ #  # ]:          0 :      PRINT_INFO("                             CUBIT_UNKNOWN\n");
     130         [ #  # ]:          0 :   else if( entitySense == CUBIT_FORWARD )
     131 [ #  # ][ #  # ]:          0 :     PRINT_INFO("                             CUBIT_FORWARD\n");
     132         [ #  # ]:          0 :   else if( entitySense == CUBIT_REVERSED )
     133 [ #  # ][ #  # ]:          0 :     PRINT_INFO("                             CUBIT_REVERSED\n");  
     134 [ +  - ][ +  - ]:       6540 : }

Generated by: LCOV version 1.11