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

           Branch data     Line data    Source code
       1                 :            : //-------------------------------------------------------------------------
       2                 :            : // Filename      : CompositeShell.cpp
       3                 :            : //
       4                 :            : // Purpose       : ShellSM used in composite TopologyBridge graph
       5                 :            : //
       6                 :            : // Special Notes : 
       7                 :            : //
       8                 :            : // Creator       : Jason Kraftcheck
       9                 :            : //
      10                 :            : // Creation Date : 01/11/02
      11                 :            : //-------------------------------------------------------------------------
      12                 :            : 
      13                 :            : #include "CompositeShell.hpp"
      14                 :            : #include "CompositeCoSurf.hpp"
      15                 :            : #include "CompositeSurface.hpp"
      16                 :            : #include "VirtualQueryEngine.hpp"
      17                 :            : #include "CompositeLump.hpp"
      18                 :            : 
      19                 :          0 : CompositeShell::CompositeShell()
      20                 :          0 :   : myLump(0), lumpNext(0), firstCoSurf(0)
      21                 :            : {
      22                 :          0 : }
      23                 :            : 
      24                 :          0 : CompositeShell::~CompositeShell()
      25                 :            : {
      26                 :            : //  if( myLump ) 
      27                 :            : //    myLump->remove( this );
      28                 :            :   
      29         [ #  # ]:          0 :   while( firstCoSurf )
      30                 :            :   {
      31                 :          0 :     CompositeCoSurf* cosurf = firstCoSurf;
      32         [ #  # ]:          0 :     remove( cosurf );
      33 [ #  # ][ #  # ]:          0 :     if( cosurf->get_surface() )
      34 [ #  # ][ #  # ]:          0 :       cosurf->get_surface()->remove( cosurf );
      35 [ #  # ][ #  # ]:          0 :     delete cosurf;
      36                 :            :   }
      37                 :            :   
      38         [ #  # ]:          0 :   assert( !myLump );
      39         [ #  # ]:          0 : }
      40                 :            : 
      41                 :          0 : CompositeCoSurf* CompositeShell::next_co_surf( CompositeCoSurf* prev ) const
      42                 :            : { 
      43         [ #  # ]:          0 :   if (0 == prev)
      44                 :          0 :     return firstCoSurf;
      45         [ #  # ]:          0 :   else if (this == prev->myShell)
      46                 :          0 :     return prev->shellNext;
      47                 :            :   else
      48                 :          0 :     return 0;
      49                 :            : }
      50                 :            : 
      51                 :          0 : CubitStatus CompositeShell::add( CompositeCoSurf* cosurf )
      52                 :            : {
      53         [ #  # ]:          0 :   if( cosurf->myShell )
      54                 :          0 :     return CUBIT_FAILURE;
      55                 :            :   
      56                 :          0 :   cosurf->shellNext = firstCoSurf;
      57                 :          0 :   firstCoSurf = cosurf;
      58                 :          0 :   cosurf->myShell = this;
      59                 :            : 
      60                 :          0 :   return CUBIT_SUCCESS;
      61                 :            : }
      62                 :            : 
      63                 :          0 : CubitStatus CompositeShell::remove( CompositeCoSurf* cosurf )
      64                 :            : {
      65         [ #  # ]:          0 :   if( cosurf->myShell != this )
      66                 :          0 :     return CUBIT_FAILURE;
      67                 :            :   
      68         [ #  # ]:          0 :   if( firstCoSurf == cosurf )
      69                 :          0 :     firstCoSurf = cosurf->shellNext;
      70                 :            :   else 
      71                 :            :   {
      72                 :          0 :     CompositeCoSurf* prev = firstCoSurf;
      73 [ #  # ][ #  # ]:          0 :     while( prev && prev->shellNext != cosurf )
      74                 :          0 :       prev = prev->shellNext;
      75         [ #  # ]:          0 :     assert( prev != 0 );
      76                 :          0 :     prev->shellNext = cosurf->shellNext;
      77                 :            :   }
      78                 :            :   
      79                 :          0 :   cosurf->myShell = 0;
      80                 :          0 :   cosurf->shellNext = 0;
      81                 :          0 :   return CUBIT_SUCCESS;
      82                 :            : }
      83                 :            : 
      84                 :            : 
      85                 :          0 : CompositeCoSurf* CompositeShell::add( CompositeSurface* surface,
      86                 :            :                                       CubitSense sense )
      87                 :            : {
      88         [ #  # ]:          0 :   CompositeCoSurf* cosurf = new CompositeCoSurf( sense );
      89 [ #  # ][ #  # ]:          0 :   if( !surface->add( cosurf ) || !add( cosurf ) )
                 [ #  # ]
      90                 :            :   {
      91         [ #  # ]:          0 :     delete cosurf;
      92                 :          0 :     cosurf = 0;
      93                 :            :   }
      94                 :          0 :   return cosurf;
      95                 :            : }
      96                 :            : 
      97                 :          0 : CompositeCoSurf* CompositeShell::find_first( const CompositeSurface* surf ) const
      98                 :            : {
      99                 :          0 :   CompositeCoSurf* cosurf = firstCoSurf;
     100 [ #  # ][ #  # ]:          0 :   while( cosurf && cosurf->get_surface() != surf )
                 [ #  # ]
     101                 :          0 :     cosurf = cosurf->shellNext;
     102                 :          0 :   return cosurf;
     103                 :            : }
     104                 :            : 
     105                 :          0 : CompositeCoSurf* CompositeShell::find_next( const CompositeCoSurf* prev ) const
     106                 :            : {
     107                 :          0 :   CompositeCoSurf* cosurf = prev->shellNext;
     108 [ #  # ][ #  # ]:          0 :   while( cosurf && cosurf->get_surface() != prev->get_surface() )
                 [ #  # ]
     109                 :          0 :     cosurf = cosurf->shellNext;
     110                 :          0 :   return cosurf;
     111                 :            : }
     112                 :            : 
     113                 :          0 : CubitSense CompositeShell::find_sense( const CompositeSurface* surf ) const
     114                 :            : {
     115                 :          0 :   CompositeCoSurf* first = find_first( surf );
     116         [ #  # ]:          0 :   if( !first )
     117                 :          0 :     return CUBIT_UNKNOWN;
     118                 :            :   
     119                 :          0 :   CompositeCoSurf* next = first;
     120         [ #  # ]:          0 :   while( (next = find_next( next )) )
     121         [ #  # ]:          0 :     if( next->sense() != first->sense() )
     122                 :          0 :       return CUBIT_UNKNOWN;
     123                 :            :   
     124                 :          0 :   return first->sense();
     125                 :            : }
     126                 :            : 
     127                 :            : 
     128                 :            :   
     129                 :            :   
     130                 :            : 
     131                 :            : 
     132                 :          0 : void CompositeShell::get_parents_virt( DLIList<TopologyBridge*>& parents )
     133 [ #  # ][ #  # ]:          0 :   { if( myLump ) parents.append( static_cast<TopologyBridge*>(myLump) ); }
     134                 :            : 
     135                 :          0 : void CompositeShell::get_children_virt( DLIList<TopologyBridge*>& children )
     136                 :            : { 
     137         [ #  # ]:          0 :   for( CompositeCoSurf* c = firstCoSurf; c; c = c->next_in_shell() )
     138         [ #  # ]:          0 :     children.append( c->get_surface() );
     139                 :          0 : }
     140                 :            : 
     141                 :            : 
     142                 :            : 
     143                 :            : //-------------------------------------------------------------------------
     144                 :            : // Purpose       : Get CompositeEngine
     145                 :            : //
     146                 :            : // Special Notes : 
     147                 :            : //
     148                 :            : // Creator       : Jason Kraftcheck
     149                 :            : //
     150                 :            : // Creation Date : 01/11/02
     151                 :            : //-------------------------------------------------------------------------
     152                 :          0 : GeometryQueryEngine* CompositeShell::get_geometry_query_engine() const
     153                 :          0 :   { return VirtualQueryEngine::instance(); }
     154                 :            : 
     155                 :            : 
     156                 :            : //-------------------------------------------------------------------------
     157                 :            : // Purpose       : Attribute functions
     158                 :            : //
     159                 :            : // Special Notes : 
     160                 :            : //
     161                 :            : // Creator       : Jason Kraftcheck
     162                 :            : //
     163                 :            : // Creation Date : 01/11/02
     164                 :            : //-------------------------------------------------------------------------
     165                 :          0 : void CompositeShell::append_simple_attribute_virt( const CubitSimpleAttrib& )
     166                 :          0 : { }
     167                 :          0 : void CompositeShell::remove_simple_attribute_virt( const CubitSimpleAttrib& )
     168                 :          0 : { }
     169                 :          0 : void CompositeShell::remove_all_simple_attribute_virt()
     170                 :          0 : { }
     171                 :          0 : CubitStatus CompositeShell::get_simple_attribute( DLIList<CubitSimpleAttrib>& )
     172                 :          0 : { return CUBIT_FAILURE; }
     173                 :          0 : CubitStatus CompositeShell::get_simple_attribute(
     174                 :            :           const CubitString& , DLIList<CubitSimpleAttrib>&  )
     175                 :          0 : { return CUBIT_FAILURE; }
     176                 :            : 
     177                 :            : 
     178                 :            : //-------------------------------------------------------------------------
     179                 :            : // Purpose       : Debug output
     180                 :            : //
     181                 :            : // Special Notes : 
     182                 :            : //
     183                 :            : // Creator       : Jason Kraftcheck
     184                 :            : //
     185                 :            : // Creation Date : 09/16/04
     186                 :            : //-------------------------------------------------------------------------
     187                 :          0 : void CompositeShell::print_debug_info( const char* prefix )
     188                 :            : {
     189         [ #  # ]:          0 :   if( prefix == 0 ) prefix = "";
     190 [ #  # ][ #  # ]:          0 :   PRINT_INFO("%sCompositeShell @ %p : \n", prefix, (void*)this );
     191                 :            :     
     192                 :          0 :   char* new_prefix = new char[strlen(prefix)+3];
     193                 :          0 :   strcpy( new_prefix, prefix );
     194                 :          0 :   strcat( new_prefix, "  " );
     195                 :            :   
     196                 :          0 :   CompositeCoSurf* cosurf = first_co_surf();
     197         [ #  # ]:          0 :   if( !cosurf )
     198 [ #  # ][ #  # ]:          0 :     PRINT_INFO("%sNo Surfaces!!\n", prefix);
     199         [ #  # ]:          0 :   else for (; cosurf; cosurf = next_co_surf( cosurf ))
     200                 :          0 :     cosurf->print_debug_info( new_prefix );
     201                 :            :   
     202         [ #  # ]:          0 :   delete [] new_prefix;
     203                 :          0 : }

Generated by: LCOV version 1.11