LCOV - code coverage report
Current view: top level - geom/facet - FacetLoop.cpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 19 77 24.7 %
Date: 2020-06-30 00:58:45 Functions: 7 21 33.3 %
Branches: 16 94 17.0 %

           Branch data     Line data    Source code
       1                 :            : //-------------------------------------------------------------------------
       2                 :            : // Filename      : FacetLoop.cpp
       3                 :            : //
       4                 :            : // Purpose       : Loops for Facet-based geometry module
       5                 :            : //
       6                 :            : // Special Notes :
       7                 :            : //
       8                 :            : // Creator       : Steven J. Owen
       9                 :            : //
      10                 :            : // Creation Date : 12/06/00
      11                 :            : //
      12                 :            : // Owner         : Steven J. Owen
      13                 :            : //-------------------------------------------------------------------------
      14                 :            : 
      15                 :            : #include "CastTo.hpp"
      16                 :            : #include "FacetLoop.hpp"
      17                 :            : #include "FacetQueryEngine.hpp"
      18                 :            : #include "CoEdgeSM.hpp"
      19                 :            : 
      20                 :            : #include "FacetBody.hpp"
      21                 :            : #include "FacetLump.hpp"
      22                 :            : #include "FacetShell.hpp"
      23                 :            : #include "FacetSurface.hpp"
      24                 :            : #include "FacetCoEdge.hpp"
      25                 :            : #include "FacetCurve.hpp"
      26                 :            : #include "FacetPoint.hpp"
      27                 :            : // ********** END CUBIT INCLUDES           **********
      28                 :            : 
      29                 :            : // ********** BEGIN STATIC DECLARATIONS    **********
      30                 :            : // ********** END STATIC DECLARATIONS      **********
      31                 :            : 
      32                 :            : // ********** BEGIN PUBLIC FUNCTIONS       **********
      33                 :            : 
      34                 :            : //-------------------------------------------------------------------------
      35                 :            : // Purpose       : The constructor with a pointer to the FacetEvalTool.
      36                 :            : //
      37                 :            : // Special Notes :
      38                 :            : //
      39                 :            : //-------------------------------------------------------------------------
      40                 :        330 : FacetLoop::FacetLoop( Surface *surf_ptr,
      41         [ +  - ]:        330 :                       DLIList<CoEdgeSM*> &coedge_list )
      42                 :            : {
      43                 :        330 :   mySurface = surf_ptr;
      44         [ +  - ]:        330 :   myCoEdges += coedge_list;
      45                 :        330 : }
      46                 :            : 
      47                 :            : //-------------------------------------------------------------------------
      48                 :            : // Purpose       : The constructor with coedges.
      49                 :            : //
      50                 :            : // Special Notes :
      51                 :            : //
      52                 :            : //-------------------------------------------------------------------------
      53         [ +  - ]:        264 : FacetLoop::FacetLoop( DLIList<CoEdgeSM*> &coedge_list )
      54                 :            : {
      55         [ +  - ]:        132 :   myCoEdges += coedge_list;
      56                 :        132 : }
      57                 :            : 
      58                 :            : //-------------------------------------------------------------------------
      59                 :            : // Purpose       : The default destructor.
      60                 :            : //
      61                 :            : // Special Notes :
      62                 :            : //
      63                 :            : //-------------------------------------------------------------------------
      64         [ #  # ]:          0 : FacetLoop::~FacetLoop()
      65                 :            : {
      66         [ #  # ]:          0 : }
      67                 :            : 
      68                 :            : //-------------------------------------------------------------------------
      69                 :            : // Purpose       : The purpose of this function is to see if a loop is an external
      70                 :            : //                  or internal loop of a surface.
      71                 :            : //
      72                 :            : // Special Notes : 
      73                 :            : //
      74                 :            : // Creator       : Jonathan Bugman
      75                 :            : //
      76                 :            : // Creation Date : 9/9/2008
      77                 :            : //-------------------------------------------------------------------------
      78                 :          0 : CubitBoolean FacetLoop::is_external()
      79                 :            : {
      80 [ #  # ][ #  # ]:          0 :                   PRINT_ERROR( "This command is not supported with this engine.\n");
      81                 :          0 :           return CUBIT_FAILURE;
      82                 :            : }
      83                 :            : 
      84                 :          0 : LoopType FacetLoop::loop_type()
      85                 :            : {
      86                 :          0 :   return LOOP_TYPE_UNKNOWN;
      87                 :            : }
      88                 :            : 
      89                 :            : //-------------------------------------------------------------------------
      90                 :            : // Purpose       : The purpose of this function is to append a
      91                 :            : //                 attribute to the GE. The name is attached to the
      92                 :            : //                 underlying solid model entity this one points to.
      93                 :            : //
      94                 :            : //
      95                 :            : // Special Notes :
      96                 :            : //
      97                 :            : //-------------------------------------------------------------------------
      98                 :          0 : void FacetLoop::append_simple_attribute_virt(const CubitSimpleAttrib& /*csattrib_ptr*/)
      99                 :            : {
     100                 :            :   //PRINT_ERROR("FacetLoop::append_simple_attribute_virt not defined\n");
     101                 :          0 :   return;
     102                 :            : 
     103                 :            : }
     104                 :            : 
     105                 :            : //-------------------------------------------------------------------------
     106                 :            : // Purpose       : The purpose of this function is to remove a simple
     107                 :            : //                 attribute attached to this geometry entity. The name is
     108                 :            : //                 removed from the underlying BODY this points to.
     109                 :            : //
     110                 :            : // Special Notes :
     111                 :            : //
     112                 :            : //-------------------------------------------------------------------------
     113                 :          0 : void FacetLoop::remove_simple_attribute_virt(const CubitSimpleAttrib& /*csattrib_ptr*/)
     114                 :            : {
     115                 :            :   //PRINT_ERROR("FacetLoop::remove_simple_attribute_virt not defined\n");
     116                 :          0 :   return;
     117                 :            : }
     118                 :            : 
     119                 :            : //-------------------------------------------------------------------------
     120                 :            : // Purpose       : The purpose of this function is to remove all simple
     121                 :            : //                 attributes attached to this geometry entity.  Also
     122                 :            : //                 removes lingering GTC attributes.
     123                 :            : //
     124                 :            : //
     125                 :            : // Special Notes :
     126                 :            : //
     127                 :            : //-------------------------------------------------------------------------
     128                 :          0 : void FacetLoop::remove_all_simple_attribute_virt()
     129                 :            : {
     130                 :            :   //PRINT_ERROR(" FacetLoop::remove_all_simple_attribute_virt not defined\n");
     131                 :          0 :   return;
     132                 :            : }
     133                 :            : 
     134                 :            : //-------------------------------------------------------------------------
     135                 :            : // Purpose       : The purpose of this function is to get the
     136                 :            : //                 attributes attached to this geometry entity. The name is
     137                 :            : //                 attached to the underlying BODY this points to.
     138                 :            : //
     139                 :            : // Special Notes :
     140                 :            : //
     141                 :            : //-------------------------------------------------------------------------
     142                 :          0 : CubitStatus FacetLoop::get_simple_attribute(DLIList<CubitSimpleAttrib>&
     143                 :            :                                                  /*cubit_simple_attrib_list*/)
     144                 :            : {
     145                 :            :   //PRINT_ERROR("FacetLoop::get_simple_attribute not defined\n");
     146                 :          0 :   return CUBIT_FAILURE;
     147                 :            : }
     148                 :          0 : CubitStatus FacetLoop::get_simple_attribute(const CubitString&,
     149                 :            :                                               DLIList<CubitSimpleAttrib>&)
     150                 :          0 :   { return CUBIT_FAILURE; }
     151                 :            : 
     152                 :            : //-------------------------------------------------------------------------
     153                 :            : // Purpose       : compute bounding box of loop
     154                 :            : //
     155                 :            : // Special Notes :
     156                 :            : //
     157                 :            : //-------------------------------------------------------------------------
     158                 :          0 : CubitBox FacetLoop::bounding_box() const
     159                 :            : {
     160                 :          0 :    CubitBox box;
     161                 :            :    //PRINT_ERROR("FacetLoop::bounding_box not implemented\n");
     162                 :          0 :    return box;
     163                 :            : }
     164                 :            : 
     165                 :            : //-------------------------------------------------------------------------
     166                 :            : // Purpose       : Get geometry modeling engine: FacetQueryEngine
     167                 :            : //
     168                 :            : // Special Notes :
     169                 :            : //
     170                 :            : //-------------------------------------------------------------------------
     171                 :          0 : GeometryQueryEngine* FacetLoop::get_geometry_query_engine() const
     172                 :            : {
     173                 :          0 :    return FacetQueryEngine::instance();
     174                 :            : }                
     175                 :            : 
     176                 :            : /*
     177                 :            : void FacetLoop::bodysms(DLIList<BodySM*> &bodies)
     178                 :            : {
     179                 :            :   mySurface->bodysms(bodies);
     180                 :            : }
     181                 :            : 
     182                 :            : void FacetLoop::lumps(DLIList<Lump*> &lumps)
     183                 :            : {
     184                 :            :   mySurface->lumps(lumps);
     185                 :            : }
     186                 :            : 
     187                 :            : void FacetLoop::shellsms(DLIList<ShellSM*> &shellsms)
     188                 :            : {
     189                 :            :   mySurface->shellsms(shellsms);
     190                 :            : }
     191                 :            : 
     192                 :            : void FacetLoop::surfaces(DLIList<Surface*> &surfaces)
     193                 :            : {
     194                 :            :   surfaces.append_unique( mySurface );
     195                 :            : }
     196                 :            : 
     197                 :            : void FacetLoop::loopsms(DLIList<LoopSM*> &loopsms)
     198                 :            : {
     199                 :            :   loopsms.append_unique( this );
     200                 :            : }
     201                 :            : void FacetLoop::coedgesms(DLIList<CoEdgeSM*> &coedgesms)
     202                 :            : {
     203                 :            :   int ii;
     204                 :            :   for ( ii = myCoEdges.size(); ii > 0; ii-- )
     205                 :            :   {
     206                 :            :     coedgesms.append_unique(myCoEdges.get_and_step());
     207                 :            :   }
     208                 :            : }
     209                 :            : 
     210                 :            : void FacetLoop::curves(DLIList<Curve*> &curves)
     211                 :            : {
     212                 :            :   int ii;
     213                 :            :   for ( ii = myCoEdges.size(); ii > 0; ii-- )
     214                 :            :   {
     215                 :            :     myCoEdges.get_and_step()->curves(curves);
     216                 :            :   }
     217                 :            : }
     218                 :            : void FacetLoop::points(DLIList<Point*> &points)
     219                 :            : {
     220                 :            :   int ii;
     221                 :            :   for ( ii = myCoEdges.size(); ii > 0; ii-- )
     222                 :            :   {
     223                 :            :     myCoEdges.get_and_step()->points(points);
     224                 :            :   }
     225                 :            : }
     226                 :            : */
     227                 :            : 
     228                 :            : 
     229                 :         55 : void FacetLoop::get_parents_virt( DLIList<TopologyBridge*>& parents )
     230         [ +  - ]:         55 :   { parents.append( mySurface ); }
     231                 :       1936 : void FacetLoop::get_children_virt( DLIList<TopologyBridge*>& children )
     232 [ +  - ][ +  + ]:       9284 :   { CAST_LIST_TO_PARENT( myCoEdges, children ); }
     233                 :            : 
     234                 :            : 
     235                 :          0 : void FacetLoop::get_lumps( DLIList<FacetLump*>& result_list )
     236                 :            : {
     237         [ #  # ]:          0 :   DLIList<FacetShell*> shell_list;
     238         [ #  # ]:          0 :   get_shells( shell_list );
     239         [ #  # ]:          0 :   shell_list.reset();
     240 [ #  # ][ #  # ]:          0 :   for ( int i = shell_list.size(); i--; )
     241                 :            :   {
     242         [ #  # ]:          0 :     FacetShell* shell = shell_list.get_and_step();
     243         [ #  # ]:          0 :     shell->get_lumps( result_list );
     244 [ #  # ][ #  # ]:          0 :     FacetLump* lump = dynamic_cast<FacetLump*>(shell->get_lump());
     245         [ #  # ]:          0 :     if (lump)
     246         [ #  # ]:          0 :       result_list.append_unique(lump);
     247         [ #  # ]:          0 :   }
     248                 :          0 : }
     249                 :            : 
     250                 :          0 : void FacetLoop::get_shells( DLIList<FacetShell*>& result_list )
     251                 :            : {
     252 [ #  # ][ #  # ]:          0 :   if ( FacetSurface* surf = dynamic_cast<FacetSurface*>(mySurface) )
     253                 :          0 :     surf->get_shells( result_list );
     254                 :          0 : }
     255                 :            : 
     256                 :        924 : void FacetLoop::get_coedges( DLIList<FacetCoEdge*>& result_list )
     257                 :            : {
     258                 :        924 :   myCoEdges.reset();
     259         [ +  + ]:       4026 :   for ( int i = 0; i < myCoEdges.size(); i++ )
     260 [ +  - ][ -  + ]:       3102 :     if (FacetCoEdge* coedge = dynamic_cast<FacetCoEdge*>(myCoEdges.next(i)))
                 [ +  - ]
     261         [ +  - ]:       3102 :       result_list.append( coedge );
     262                 :        924 : }
     263                 :            : 
     264                 :          0 : void FacetLoop::get_curves( DLIList<FacetCurve*>& result_list )
     265                 :            : {
     266         [ #  # ]:          0 :   DLIList<FacetCoEdge*> coedge_list;
     267         [ #  # ]:          0 :   get_coedges( coedge_list );
     268         [ #  # ]:          0 :   coedge_list.reset();
     269 [ #  # ][ #  # ]:          0 :   for ( int i = coedge_list.size(); i--; )
     270                 :            :   {
     271         [ #  # ]:          0 :     FacetCoEdge* coedge = coedge_list.get_and_step();
     272 [ #  # ][ #  # ]:          0 :     FacetCurve* curve = dynamic_cast<FacetCurve*>(coedge->curve());
     273         [ #  # ]:          0 :     if (curve)
     274         [ #  # ]:          0 :       result_list.append_unique(curve);
     275         [ #  # ]:          0 :   }
     276                 :          0 : }
     277                 :            : 
     278                 :            : 
     279                 :            : //-------------------------------------------------------------------------
     280                 :            : // Purpose       : Tear down topology
     281                 :            : //
     282                 :            : // Special Notes : 
     283                 :            : //
     284                 :            : // Creator       : Jason Kraftcheck
     285                 :            : //
     286                 :            : // Creation Date : 09/29/03
     287                 :            : //-------------------------------------------------------------------------
     288                 :          0 : void FacetLoop::disconnect_all_coedges()
     289                 :            : {
     290                 :          0 :   myCoEdges.reset();
     291         [ #  # ]:          0 :   for (int i = myCoEdges.size(); i--; )
     292                 :            :   {
     293                 :          0 :     CoEdgeSM* sm_ptr = myCoEdges.get_and_step();
     294         [ #  # ]:          0 :     FacetCoEdge* coedge = dynamic_cast<FacetCoEdge*>(sm_ptr);
     295         [ #  # ]:          0 :     if (coedge)
     296                 :            :     {
     297         [ #  # ]:          0 :       assert(coedge->get_loop() == this);
     298                 :          0 :       coedge->remove_loop();
     299                 :            :     }
     300                 :            :   }
     301                 :          0 :   myCoEdges.clean_out();
     302 [ +  - ][ +  - ]:       6540 : }
     303                 :            : 
     304                 :            : 

Generated by: LCOV version 1.11