LCOV - code coverage report
Current view: top level - geom/virtual - CompositeLoop.cpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 0 122 0.0 %
Date: 2020-06-30 00:58:45 Functions: 0 18 0.0 %
Branches: 0 90 0.0 %

           Branch data     Line data    Source code
       1                 :            : #include "CompositeLoop.hpp"
       2                 :            : #include "DLIList.hpp"
       3                 :            : 
       4                 :            : #include "CompositeSurface.hpp"
       5                 :            : #include "CompositeCoEdge.hpp"
       6                 :            : #include "VirtualQueryEngine.hpp"
       7                 :            : 
       8                 :            : //-------------------------------------------------------------------------
       9                 :            : // Purpose       : Constructor
      10                 :            : //
      11                 :            : // Special Notes : 
      12                 :            : //
      13                 :            : // Creator       : Jason Kraftcheck
      14                 :            : //
      15                 :            : // Creation Date : 01/11/02
      16                 :            : //-------------------------------------------------------------------------
      17                 :          0 : CompositeLoop::CompositeLoop()
      18                 :          0 :   : mySurface(0), myCoedge(0), loopNext(0), numCoedges(0)
      19                 :            : {
      20                 :          0 : }
      21                 :            : 
      22                 :            : //-------------------------------------------------------------------------
      23                 :            : // Purpose       : Destructor
      24                 :            : //
      25                 :            : // Special Notes : 
      26                 :            : //
      27                 :            : // Creator       : Jason Kraftcheck
      28                 :            : //
      29                 :            : // Creation Date : 01/11/02
      30                 :            : //-------------------------------------------------------------------------
      31                 :          0 : CompositeLoop::~CompositeLoop()
      32                 :            : {
      33         [ #  # ]:          0 :   if( mySurface )
      34                 :            :   {
      35         [ #  # ]:          0 :     mySurface->remove( this );
      36                 :          0 :     mySurface = 0;
      37                 :            :   }
      38                 :            :     
      39         [ #  # ]:          0 :   CubitStatus s = remove_all_coedges();
      40         [ #  # ]:          0 :   assert( s );
      41         [ #  # ]:          0 :   if (CUBIT_SUCCESS != s) {
      42 [ #  # ][ #  # ]:          0 :     PRINT_ERROR("Failed to remove all coedges.\n");
         [ #  # ][ #  # ]
      43                 :            :   }
      44         [ #  # ]:          0 : }
      45                 :            : 
      46                 :            : //-------------------------------------------------------------------------
      47                 :            : // Purpose       : insert a child coedge
      48                 :            : //
      49                 :            : // Special Notes : 
      50                 :            : //
      51                 :            : // Creator       : Jason Kraftcheck
      52                 :            : //
      53                 :            : // Creation Date : 03/23/02
      54                 :            : //-------------------------------------------------------------------------
      55                 :          0 : CubitStatus CompositeLoop::insert_after( CompositeCoEdge* insert,
      56                 :            :                                          CompositeCoEdge* after )
      57                 :            : {
      58         [ #  # ]:          0 :   if( insert->myLoop != 0 )
      59                 :          0 :     return CUBIT_FAILURE;
      60                 :            :   
      61         [ #  # ]:          0 :   if( numCoedges == 0 )
      62                 :            :   {
      63         [ #  # ]:          0 :     if( after )
      64                 :          0 :       return CUBIT_FAILURE;
      65                 :            :     
      66                 :          0 :     insert->nextCoedge = insert;
      67                 :          0 :     insert->prevCoedge = insert;
      68                 :          0 :     myCoedge = insert;
      69                 :            :   }
      70                 :            :   else
      71                 :            :   {
      72 [ #  # ][ #  # ]:          0 :     if( !after || after->myLoop != this )
      73                 :          0 :       return CUBIT_FAILURE;
      74                 :            :     
      75                 :          0 :     insert->prevCoedge = after;
      76                 :          0 :     insert->nextCoedge = after->nextCoedge;
      77                 :          0 :     insert->nextCoedge->prevCoedge = insert;
      78                 :          0 :     insert->prevCoedge->nextCoedge = insert;
      79                 :            :   }
      80                 :            :   
      81                 :          0 :   insert->myLoop = this;
      82                 :          0 :   numCoedges++;
      83                 :          0 :   return CUBIT_SUCCESS;
      84                 :            : }
      85                 :          0 : CubitStatus CompositeLoop::insert_before( CompositeCoEdge* insert,
      86                 :            :                                           CompositeCoEdge* before )
      87                 :            : {
      88         [ #  # ]:          0 :   if( insert->myLoop != 0 )
      89                 :          0 :     return CUBIT_FAILURE;
      90                 :            :   
      91         [ #  # ]:          0 :   if( numCoedges == 0 )
      92                 :            :   {
      93         [ #  # ]:          0 :     if( before ) 
      94                 :          0 :       return CUBIT_FAILURE;
      95                 :            :     
      96                 :          0 :     insert->nextCoedge = insert;
      97                 :          0 :     insert->prevCoedge = insert;
      98                 :          0 :     myCoedge = insert;
      99                 :            :   }
     100                 :            :   else
     101                 :            :   {
     102 [ #  # ][ #  # ]:          0 :     if( !before || before->myLoop != this )
     103                 :          0 :       return CUBIT_FAILURE;
     104                 :            :     
     105                 :          0 :     insert->nextCoedge = before;
     106                 :          0 :     insert->prevCoedge = before->prevCoedge;
     107                 :          0 :     insert->nextCoedge->prevCoedge = insert;
     108                 :          0 :     insert->prevCoedge->nextCoedge = insert;
     109                 :            :   }
     110                 :            :   
     111                 :          0 :   insert->myLoop = this;
     112                 :          0 :   numCoedges++;
     113                 :          0 :   return CUBIT_SUCCESS;
     114                 :            : }
     115                 :            : 
     116                 :            : //-------------------------------------------------------------------------
     117                 :            : // Purpose       : remove a child coedge
     118                 :            : //
     119                 :            : // Special Notes : 
     120                 :            : //
     121                 :            : // Creator       : Jason Kraftcheck
     122                 :            : //
     123                 :            : // Creation Date : 03/23/02
     124                 :            : //-------------------------------------------------------------------------
     125                 :          0 : CubitStatus CompositeLoop::remove( CompositeCoEdge* coedge )
     126                 :            : {
     127         [ #  # ]:          0 :   if( coedge->myLoop != this )
     128                 :          0 :     return CUBIT_FAILURE;
     129                 :            :   
     130         [ #  # ]:          0 :   if( numCoedges == 1 )
     131                 :            :   {
     132         [ #  # ]:          0 :     assert( coedge->nextCoedge == coedge &&
     133         [ #  # ]:          0 :             coedge->prevCoedge == coedge );
     134                 :          0 :     myCoedge = 0;
     135                 :            :   }
     136                 :            :   else
     137                 :            :   {
     138                 :          0 :     coedge->nextCoedge->prevCoedge = coedge->prevCoedge;
     139                 :          0 :     coedge->prevCoedge->nextCoedge = coedge->nextCoedge;
     140         [ #  # ]:          0 :     if( myCoedge == coedge )
     141                 :          0 :       myCoedge = coedge->nextCoedge;
     142                 :            :   }
     143                 :            :   
     144                 :          0 :   numCoedges--;
     145                 :          0 :   coedge->myLoop = 0;
     146                 :          0 :   coedge->nextCoedge = 0;
     147                 :          0 :   coedge->prevCoedge = 0;
     148                 :            :   
     149                 :          0 :   return CUBIT_SUCCESS;
     150                 :            : }
     151                 :            : 
     152                 :            : 
     153                 :            : 
     154                 :            : 
     155                 :            : //-------------------------------------------------------------------------
     156                 :            : // Purpose       : remove (and return) all coedges
     157                 :            : //
     158                 :            : // Special Notes : 
     159                 :            : //
     160                 :            : // Creator       : Jason Kraftcheck
     161                 :            : //
     162                 :            : // Creation Date : 03/24/02
     163                 :            : //-------------------------------------------------------------------------
     164                 :          0 : CubitStatus CompositeLoop::remove_all_coedges( DLIList<CompositeCoEdge*>* list )
     165                 :            : {
     166         [ #  # ]:          0 :   while( myCoedge )
     167                 :            :   {
     168         [ #  # ]:          0 :     if( list )
     169                 :          0 :       list->append( myCoedge );
     170                 :          0 :     remove( myCoedge );
     171                 :            :   }
     172                 :            :   
     173                 :          0 :   return CUBIT_SUCCESS;
     174                 :            : }
     175                 :            : 
     176                 :            : //-------------------------------------------------------------------------
     177                 :            : // Purpose       : The purpose of this function is to see if a loop is an external
     178                 :            : //                  or internal loop of a surface.
     179                 :            : //
     180                 :            : // Special Notes : 
     181                 :            : //
     182                 :            : // Creator       : Jonathan Bugman
     183                 :            : //
     184                 :            : // Creation Date : 9/9/2008
     185                 :            : //-------------------------------------------------------------------------
     186                 :          0 : CubitBoolean CompositeLoop::is_external()
     187                 :            : {
     188 [ #  # ][ #  # ]:          0 :                   PRINT_ERROR( "This command is not supported with this engine.\n");
     189                 :          0 :           return CUBIT_FAILURE;
     190                 :            : }
     191                 :            : 
     192                 :          0 : LoopType CompositeLoop::loop_type()
     193                 :            : {
     194                 :          0 :   return LOOP_TYPE_UNKNOWN;
     195                 :            : }
     196                 :            : 
     197                 :            : //-------------------------------------------------------------------------
     198                 :            : // Purpose       : get parent bridges
     199                 :            : //
     200                 :            : // Special Notes : pure virtual in TopologyBridge
     201                 :            : //
     202                 :            : // Creator       : Jason Kraftcheck
     203                 :            : //
     204                 :            : // Creation Date : 01/11/02
     205                 :            : //-------------------------------------------------------------------------
     206                 :          0 : void CompositeLoop::get_parents_virt( DLIList<TopologyBridge*>& parents )
     207 [ #  # ][ #  # ]:          0 :   { if( mySurface ) parents.append( mySurface ); }
     208                 :            : 
     209                 :            : 
     210                 :            : //-------------------------------------------------------------------------
     211                 :            : // Purpose       : get child bridges
     212                 :            : //
     213                 :            : // Special Notes : pure virtual in TopologyBridge
     214                 :            : //
     215                 :            : // Creator       : Jason Kraftcheck
     216                 :            : //
     217                 :            : // Creation Date : 01/11/02
     218                 :            : //-------------------------------------------------------------------------
     219                 :          0 : void CompositeLoop::get_children_virt( DLIList<TopologyBridge*>& children )
     220                 :            : {
     221                 :          0 :   CompositeCoEdge* coedge = myCoedge;
     222                 :            :   
     223   [ #  #  #  # ]:          0 :   if( coedge ) do
     224                 :            :   {
     225         [ #  # ]:          0 :     children.append( coedge );
     226                 :          0 :     coedge = next_coedge( coedge );
     227                 :          0 :   } while( coedge != myCoedge );
     228                 :          0 : }
     229                 :            : 
     230                 :            : 
     231                 :            : //-------------------------------------------------------------------------
     232                 :            : // Purpose       : Get CompositeEngine
     233                 :            : //
     234                 :            : // Special Notes : 
     235                 :            : //
     236                 :            : // Creator       : Jason Kraftcheck
     237                 :            : //
     238                 :            : // Creation Date : 01/11/02
     239                 :            : //-------------------------------------------------------------------------
     240                 :          0 : GeometryQueryEngine* CompositeLoop::get_geometry_query_engine() const
     241                 :          0 :   { return VirtualQueryEngine::instance(); }
     242                 :            : 
     243                 :            : //-------------------------------------------------------------------------
     244                 :            : // Purpose       : Attribute functions
     245                 :            : //
     246                 :            : // Special Notes : 
     247                 :            : //
     248                 :            : // Creator       : Jason Kraftcheck
     249                 :            : //
     250                 :            : // Creation Date : 01/11/02
     251                 :            : //-------------------------------------------------------------------------
     252                 :          0 : void CompositeLoop::append_simple_attribute_virt( const CubitSimpleAttrib& )
     253                 :          0 : { }
     254                 :          0 : void CompositeLoop::remove_simple_attribute_virt( const CubitSimpleAttrib& )
     255                 :          0 : { }
     256                 :          0 : void CompositeLoop::remove_all_simple_attribute_virt()
     257                 :          0 : { }
     258                 :          0 : CubitStatus CompositeLoop::get_simple_attribute( DLIList<CubitSimpleAttrib>& )
     259                 :          0 : { return CUBIT_FAILURE; }
     260                 :          0 : CubitStatus CompositeLoop::get_simple_attribute(
     261                 :            :           const CubitString& , DLIList<CubitSimpleAttrib>& )
     262                 :          0 : { return CUBIT_FAILURE; }
     263                 :            : 
     264                 :            :   
     265                 :            :   
     266                 :            : //-------------------------------------------------------------------------
     267                 :            : // Purpose       : Reverse order and sense of coedges
     268                 :            : //
     269                 :            : // Special Notes : 
     270                 :            : //
     271                 :            : // Creator       : Jason Kraftcheck
     272                 :            : //
     273                 :            : // Creation Date : 03/17/02
     274                 :            : //-------------------------------------------------------------------------
     275                 :          0 : void CompositeLoop::reverse(bool b_reverse_coedges)
     276                 :            : {
     277                 :          0 :   CompositeCoEdge* coedge = myCoedge;
     278 [ #  # ][ #  # ]:          0 :   if( coedge ) do
     279                 :            :   {
     280                 :          0 :     CompositeCoEdge* temp = coedge->nextCoedge;
     281                 :          0 :     coedge->nextCoedge = coedge->prevCoedge;
     282                 :          0 :     coedge->prevCoedge = temp;
     283         [ #  # ]:          0 :     if (b_reverse_coedges) coedge->reverse();
     284                 :          0 :     coedge = temp;
     285                 :          0 :   } while( coedge != myCoedge );
     286                 :          0 : }
     287                 :            : 
     288                 :            : 
     289                 :          0 : void CompositeLoop::print_debug_info( const char* line_prefix )
     290                 :            : {
     291         [ #  # ]:          0 :   if( line_prefix == 0 )
     292                 :          0 :     line_prefix = "";
     293                 :            :     
     294                 :          0 :   char* new_prefix = new char[strlen(line_prefix)+3];
     295                 :          0 :   strcpy( new_prefix, line_prefix );
     296                 :          0 :   strcat( new_prefix, "  " );
     297                 :            :   
     298 [ #  # ][ #  # ]:          0 :   PRINT_INFO("%sCompositeLoop @ %p : \n", line_prefix, (void*)this );
     299                 :          0 :   CompositeCoEdge* coedge = first_coedge();
     300         [ #  # ]:          0 :   if( !coedge )
     301 [ #  # ][ #  # ]:          0 :     PRINT_INFO("%s  No CoEdges!!\n", line_prefix);
     302         [ #  # ]:          0 :   else do
     303                 :            :   {
     304                 :          0 :     coedge->print_debug_info( new_prefix );
     305                 :          0 :     coedge = next_coedge( coedge );
     306                 :          0 :   } while( coedge != first_coedge() );
     307                 :            :   
     308         [ #  # ]:          0 :   delete [] new_prefix;
     309                 :          0 : }
     310                 :            : 

Generated by: LCOV version 1.11