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

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

Generated by: LCOV version 1.11