LCOV - code coverage report
Current view: top level - geom/facet - FacetLump.cpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 34 197 17.3 %
Date: 2020-06-30 00:58:45 Functions: 13 27 48.1 %
Branches: 16 418 3.8 %

           Branch data     Line data    Source code
       1                 :            : //-------------------------------------------------------------------------
       2                 :            : // Filename      : FacetLump.cpp
       3                 :            : //
       4                 :            : // Purpose       : 
       5                 :            : //
       6                 :            : // Creator       : David White
       7                 :            : //
       8                 :            : // Creation Date : 7/18/2000
       9                 :            : //
      10                 :            : //-------------------------------------------------------------------------
      11                 :            : 
      12                 :            : // ********** BEGIN STANDARD INCLUDES      **********
      13                 :            : #include <assert.h>
      14                 :            : // ********** END STANDARD INCLUDES        **********
      15                 :            : 
      16                 :            : 
      17                 :            : // ********** BEGIN CUBIT INCLUDES         **********
      18                 :            : #include "FacetQueryEngine.hpp"
      19                 :            : #include "FacetLump.hpp"
      20                 :            : #include "CastTo.hpp"
      21                 :            : #include "Surface.hpp"
      22                 :            : #include "DLIList.hpp"
      23                 :            : #include "CubitFacet.hpp"
      24                 :            : #include "CubitPoint.hpp"
      25                 :            : #include "CubitVector.hpp"
      26                 :            : #include "CubitString.hpp"
      27                 :            : #include "ShellSM.hpp"
      28                 :            : #include "BodySM.hpp"
      29                 :            : #include "Body.hpp"
      30                 :            : 
      31                 :            : #include "FacetBody.hpp"
      32                 :            : #include "FacetShell.hpp"
      33                 :            : #include "FacetSurface.hpp"
      34                 :            : #include "FacetLoop.hpp"
      35                 :            : #include "FacetCoEdge.hpp"
      36                 :            : #include "FacetCurve.hpp"
      37                 :            : #include "FacetPoint.hpp"
      38                 :            : 
      39                 :            : // ********** END CUBIT INCLUDES           **********
      40                 :            : 
      41                 :            : // ********** BEGIN FORWARD DECLARATIONS   **********
      42                 :            : class RefVolume;
      43                 :            : // ********** END FORWARD DECLARATIONS     **********
      44                 :            : 
      45                 :            : // ********** BEGIN STATIC DECLARATIONS    **********
      46                 :            : // ********** END STATIC DECLARATIONS      **********
      47                 :            : 
      48                 :            : // ********** BEGIN PUBLIC FUNCTIONS       **********
      49                 :            : 
      50                 :            : //-------------------------------------------------------------------------
      51                 :            : // Purpose       : The constructor with a pointer to the owning shells and body.
      52                 :            : //
      53                 :            : // Special Notes :
      54                 :            : //
      55                 :            : //-------------------------------------------------------------------------
      56                 :         99 : FacetLump::FacetLump(DLIList<ShellSM*> &shells,
      57 [ +  - ][ +  - ]:         99 :                      BodySM *body_ptr )
      58                 :            : {
      59                 :         99 :   myBodyPtr = body_ptr;
      60         [ +  - ]:         99 :   myShells += shells;
      61                 :         99 : }
      62                 :            : 
      63                 :            : 
      64 [ #  # ][ #  # ]:          0 : FacetLump::~FacetLump()
      65         [ #  # ]:          0 : {}
      66                 :            : 
      67                 :            : //-------------------------------------------------------------------------
      68                 :            : // Purpose       : The purpose of this function is to append a
      69                 :            : //                 attribute to the GE. The name is attached to the 
      70                 :            : //                 underlying solid model entity this one points to.
      71                 :            : //
      72                 :            : //
      73                 :            : // Special Notes : 
      74                 :            : //
      75                 :            : // Creator       : Malcolm J. Panthaki
      76                 :            : //
      77                 :            : // Creation Date : 11/21/96
      78                 :            : //-------------------------------------------------------------------------
      79                 :         22 : void FacetLump::append_simple_attribute_virt(const CubitSimpleAttrib &csa)
      80                 :         22 :   { attribSet.append_attribute(csa); }
      81                 :            : 
      82                 :            : //-------------------------------------------------------------------------
      83                 :            : // Purpose       : The purpose of this function is to remove a simple 
      84                 :            : //                 attribute attached to this geometry entity. The name is 
      85                 :            : //                 removed from the underlying BODY this points to.
      86                 :            : //
      87                 :            : // Special Notes : 
      88                 :            : //
      89                 :            : // Creator       : David R. White
      90                 :            : //
      91                 :            : // Creation Date : 03/18/97
      92                 :            : //-------------------------------------------------------------------------
      93                 :        286 : void FacetLump::remove_simple_attribute_virt(const CubitSimpleAttrib &csa )
      94                 :        286 :   { attribSet.remove_attribute(csa); }
      95                 :            : 
      96                 :            : //-------------------------------------------------------------------------
      97                 :            : // Purpose       : The purpose of this function is to remove all simple 
      98                 :            : //                 attributes attached to this geometry entity.  Also
      99                 :            : //                 removes lingering GTC attributes.
     100                 :            : //
     101                 :            : //
     102                 :            : // Special Notes : 
     103                 :            : //
     104                 :            : // Creator       : Greg Nielson
     105                 :            : //
     106                 :            : // Creation Date : 07/10/98
     107                 :            : //-------------------------------------------------------------------------
     108                 :        143 : void FacetLump::remove_all_simple_attribute_virt()
     109                 :        143 : { attribSet.remove_all_attributes(); }
     110                 :            : 
     111                 :            : //-------------------------------------------------------------------------
     112                 :            : // Purpose       : The purpose of this function is to get the  
     113                 :            : //                 attributes attached to this geometry entity. The name is 
     114                 :            : //                 attached to the underlying BODY this points to.
     115                 :            : //
     116                 :            : // Special Notes : 
     117                 :            : //
     118                 :            : //-------------------------------------------------------------------------
     119                 :         99 : CubitStatus FacetLump::get_simple_attribute(DLIList<CubitSimpleAttrib>& csa_list)
     120                 :         99 :   { return attribSet.get_attributes( csa_list ); }
     121                 :            : 
     122                 :         44 : CubitStatus FacetLump::get_simple_attribute( const CubitString& name,
     123                 :            :                                         DLIList<CubitSimpleAttrib>& csa_list )
     124                 :         44 :   { return attribSet.get_attributes( name, csa_list ); }
     125                 :            : 
     126                 :         66 : CubitStatus FacetLump::save_attribs( FILE *file_ptr )
     127                 :         66 :   { return attribSet.save_attributes( file_ptr ); }
     128                 :            : 
     129                 :         22 : CubitStatus FacetLump::restore_attribs( FILE *file_ptr, unsigned int endian )
     130                 :         22 :   { return attribSet.restore_attributes( file_ptr, endian ); }
     131                 :            : 
     132                 :            : 
     133                 :            : 
     134                 :            : 
     135                 :            : //-------------------------------------------------------------------------
     136                 :            : // Purpose       : Get the bounding box of the object.
     137                 :            : //
     138                 :            : // Special Notes :
     139                 :            : //
     140                 :            : //-------------------------------------------------------------------------
     141                 :          0 : CubitBox FacetLump::bounding_box() const 
     142                 :            : {
     143 [ #  # ][ #  # ]:          0 :   CubitBox my_box, temp_box;
                 [ #  # ]
     144 [ #  # ][ #  # ]:          0 :   DLIList<FacetSurface*> surfaces;
     145                 :            :   int ii;
     146         [ #  # ]:          0 :   const_cast<FacetLump*>(this)->get_surfaces(surfaces);
     147 [ #  # ][ #  # ]:          0 :   if (surfaces.size() > 0)
     148                 :            :   {
     149         [ #  # ]:          0 :     Surface* surface = surfaces.get_and_step();
     150 [ #  # ][ #  # ]:          0 :     my_box = surface->bounding_box();
                 [ #  # ]
     151 [ #  # ][ #  # ]:          0 :     for ( ii = surfaces.size(); ii > 1; ii-- )
     152                 :            :     {
     153         [ #  # ]:          0 :       surface = surfaces.get_and_step();
     154 [ #  # ][ #  # ]:          0 :       temp_box = surface->bounding_box();
                 [ #  # ]
     155                 :            :         //unite the boxes..
     156         [ #  # ]:          0 :       my_box |= temp_box;
     157                 :            :     }
     158                 :            :   }
     159                 :          0 :   return my_box;
     160                 :            : }
     161                 :            : 
     162                 :            : //-------------------------------------------------------------------------
     163                 :            : // Purpose       : Get geometry modeling engine: FacetGeometryEngine
     164                 :            : //
     165                 :            : // Special Notes :
     166                 :            : //
     167                 :            : //-------------------------------------------------------------------------
     168                 :            : GeometryQueryEngine* 
     169                 :          0 :                  FacetLump::get_geometry_query_engine() const
     170                 :            : {
     171                 :          0 :    return FacetQueryEngine::instance();
     172                 :            : }                 
     173                 :            : 
     174                 :            : //-------------------------------------------------------------------------
     175                 :            : // Purpose       : Returns the volume of the Lump
     176                 :            : //
     177                 :            : // Special Notes :
     178                 :            : //
     179                 :            : // Creator       : 
     180                 :            : //
     181                 :            : // Creation Date : 
     182                 :            : //-------------------------------------------------------------------------
     183                 :          0 : double FacetLump::measure()
     184                 :            : {
     185         [ #  # ]:          0 :   DLIList<CubitFacet*> bounding_facets;
     186 [ #  # ][ #  # ]:          0 :   DLIList<CubitPoint*> bounding_points;
     187 [ #  # ][ #  # ]:          0 :   DLIList<FacetSurface*> surfaces;
     188                 :            :   Surface *curr_surface;
     189                 :            :   FacetSurface *facet_surface;
     190                 :            :     //if this is a sheet body... return 0.0
     191                 :            :   
     192                 :            :     //Body *tmp_body = CAST_TO(myBodyPtr->topology_entity(), Body);
     193 [ #  # ][ #  # ]:          0 :   if( is_sheet() ) 
     194                 :          0 :     return 0.0;
     195                 :            :   
     196                 :            :   int ii;
     197         [ #  # ]:          0 :   get_surfaces(surfaces);
     198 [ #  # ][ #  # ]:          0 :   if (surfaces.size() > 0)
     199                 :            :   { 
     200 [ #  # ][ #  # ]:          0 :     for ( ii = surfaces.size(); ii > 0; ii-- )
     201                 :            :     {
     202         [ #  # ]:          0 :       curr_surface = surfaces.get_and_step();
     203         [ #  # ]:          0 :       facet_surface = CAST_TO(curr_surface, FacetSurface);
     204         [ #  # ]:          0 :       if ( facet_surface == NULL )
     205                 :            :       {
     206 [ #  # ][ #  # ]:          0 :         PRINT_ERROR("Facet lump has surfaces that aren't facets?");
         [ #  # ][ #  # ]
     207                 :          0 :         return 1;
     208                 :            :       }
     209         [ #  # ]:          0 :       facet_surface->get_my_facets(bounding_facets, bounding_points);
     210                 :            :     }
     211                 :            :   }
     212                 :          0 :   double volume, curr_facet_area, summation = 0.0;
     213                 :            :   CubitFacet *curr_facet;
     214 [ #  # ][ #  # ]:          0 :   CubitVector normal_of_curr_facet, vector_of_point;
     215                 :            :   CubitPoint *point_1, *point_2, *point_3;
     216                 :            : 
     217 [ #  # ][ #  # ]:          0 :   for( int jj = bounding_facets.size(); jj > 0; jj-- )
     218                 :            :   {
     219         [ #  # ]:          0 :     curr_facet = bounding_facets.get_and_step();
     220         [ #  # ]:          0 :     curr_facet_area = curr_facet->area();  // Current facet's area
     221                 :            :     
     222 [ #  # ][ #  # ]:          0 :     normal_of_curr_facet = curr_facet->normal(); // Current facet's normal
     223                 :            : 
     224         [ #  # ]:          0 :     curr_facet->points(point_1, point_2, point_3); // Current facet's points
     225                 :            : 
     226 [ #  # ][ #  # ]:          0 :     vector_of_point = point_1->coordinates(); // One point's vector
     227                 :            : 
     228         [ #  # ]:          0 :     summation += ( double(vector_of_point % normal_of_curr_facet) * curr_facet_area);
     229                 :            :   }
     230                 :            : 
     231                 :          0 :   volume = summation / 3;
     232                 :            :   
     233         [ #  # ]:          0 :   return volume;
     234                 :            : }
     235                 :         22 : void FacetLump::get_parents_virt(DLIList<TopologyBridge*> &bodies) 
     236                 :            : {
     237         [ +  - ]:         22 :   if (myBodyPtr != NULL )
     238         [ +  - ]:         22 :     bodies.append_unique(myBodyPtr);
     239                 :         22 : }
     240                 :            : 
     241                 :        352 : void FacetLump::get_children_virt(DLIList<TopologyBridge*> &shellsms)
     242                 :            : {
     243                 :            :   int ii;
     244         [ +  + ]:        704 :   for ( ii = myShells.size(); ii > 0; ii-- )
     245                 :            :   {
     246         [ +  - ]:        352 :     shellsms.append_unique(myShells.get_and_step());
     247                 :            :   }
     248                 :        352 : }
     249                 :            : 
     250                 :          0 : void FacetLump::get_bodies( DLIList<FacetBody*>& result_list )
     251                 :            : {
     252         [ #  # ]:          0 :   FacetBody* body = dynamic_cast<FacetBody*>(myBodyPtr);
     253         [ #  # ]:          0 :   if (body)
     254         [ #  # ]:          0 :     result_list.append(body);
     255                 :          0 : }
     256                 :            : 
     257                 :        154 : void FacetLump::get_shells( DLIList<FacetShell*>& result_list )
     258                 :            : {
     259                 :        154 :   myShells.reset();
     260         [ +  + ]:        308 :   for ( int i = 0; i < myShells.size(); i++ )
     261 [ +  - ][ -  + ]:        154 :     if ( FacetShell* shell = dynamic_cast<FacetShell*>(myShells.next(i)) )
                 [ +  - ]
     262         [ +  - ]:        154 :       result_list.append(shell);
     263                 :        154 : }
     264                 :            : 
     265                 :          0 : void FacetLump::get_surfaces( DLIList<FacetSurface*>& result_list )
     266                 :            : {
     267         [ #  # ]:          0 :   DLIList<FacetShell*> shell_list;
     268 [ #  # ][ #  # ]:          0 :   DLIList<FacetSurface*> tmp_list;
     269         [ #  # ]:          0 :   get_shells(shell_list);
     270         [ #  # ]:          0 :   shell_list.reset();
     271 [ #  # ][ #  # ]:          0 :   for ( int i = 0; i < shell_list.size(); i++ )
     272                 :            :   {
     273         [ #  # ]:          0 :     tmp_list.clean_out();
     274 [ #  # ][ #  # ]:          0 :     shell_list.next(i)->get_surfaces( tmp_list );
     275         [ #  # ]:          0 :     result_list.merge_unique( tmp_list );
     276         [ #  # ]:          0 :   }
     277                 :          0 : }
     278                 :            : 
     279                 :            : 
     280                 :          0 : void FacetLump::get_coedges( DLIList<FacetCoEdge*>& result_list )
     281                 :            : {
     282         [ #  # ]:          0 :   DLIList<FacetSurface*> surface_list;
     283         [ #  # ]:          0 :   get_surfaces( surface_list );
     284         [ #  # ]:          0 :   surface_list.reset();
     285 [ #  # ][ #  # ]:          0 :   for ( int i = 0; i < surface_list.size(); i++ )
     286 [ #  # ][ #  # ]:          0 :     surface_list.next(i)->get_coedges( result_list );
                 [ #  # ]
     287                 :          0 : }
     288                 :            : 
     289                 :          0 : void FacetLump::get_curves( DLIList<FacetCurve*>& result_list )
     290                 :            : {
     291         [ #  # ]:          0 :   DLIList<FacetCoEdge*> coedge_list;
     292         [ #  # ]:          0 :   get_coedges( coedge_list );
     293         [ #  # ]:          0 :   coedge_list.reset();
     294 [ #  # ][ #  # ]:          0 :   for ( int i = coedge_list.size(); i--; )
     295                 :            :   {
     296         [ #  # ]:          0 :     FacetCoEdge* coedge = coedge_list.get_and_step();
     297 [ #  # ][ #  # ]:          0 :     FacetCurve* curve = dynamic_cast<FacetCurve*>(coedge->curve());
     298         [ #  # ]:          0 :     if (curve)
     299         [ #  # ]:          0 :       result_list.append_unique(curve);
     300         [ #  # ]:          0 :   }
     301                 :          0 : }
     302                 :            : 
     303                 :            : 
     304                 :          0 : void FacetLump::add_shell( FacetShell *shell )
     305                 :            : {
     306                 :            :     ShellSM* sm_ptr; 
     307                 :          0 :     sm_ptr = dynamic_cast<ShellSM*>(shell);
     308                 :            :     
     309         [ #  # ]:          0 :     if( sm_ptr )
     310         [ #  # ]:          0 :       myShells.append( sm_ptr );
     311                 :            : 
     312         [ #  # ]:          0 :     shell->add_lump( this );
     313                 :          0 : }
     314                 :            : 
     315                 :          0 : void FacetLump::remove_shell( FacetShell *shell )
     316                 :            : {
     317                 :            :     ShellSM* sm_ptr; 
     318                 :          0 :     sm_ptr = dynamic_cast<ShellSM*>(shell);
     319                 :            :     
     320         [ #  # ]:          0 :     if( sm_ptr )
     321         [ #  # ]:          0 :       myShells.remove( sm_ptr );
     322                 :            : 
     323         [ #  # ]:          0 :     shell->remove_lump();
     324                 :          0 : }
     325                 :            : 
     326                 :            : //-------------------------------------------------------------------------
     327                 :            : // Purpose       : Tear down topology
     328                 :            : //
     329                 :            : // Special Notes : 
     330                 :            : //
     331                 :            : // Creator       : Jason Kraftcheck
     332                 :            : //
     333                 :            : // Creation Date : 09/29/03
     334                 :            : //-------------------------------------------------------------------------
     335                 :          0 : void FacetLump::disconnect_all_shells()
     336                 :            : {
     337                 :          0 :   myShells.reset();
     338         [ #  # ]:          0 :   for (int i = myShells.size(); i--; )
     339                 :            :   {
     340                 :          0 :     ShellSM* sm_ptr = myShells.get_and_step();
     341         [ #  # ]:          0 :     FacetShell* shell = dynamic_cast<FacetShell*>(sm_ptr);
     342         [ #  # ]:          0 :     if (shell)
     343                 :            :     {
     344         [ #  # ]:          0 :       assert(shell->get_lump() == this);
     345                 :          0 :       shell->remove_lump();
     346                 :            :     }
     347                 :            :   }
     348                 :          0 :   myShells.clean_out();
     349                 :          0 : }
     350                 :            : 
     351                 :            : //-------------------------------------------------------------------------
     352                 :            : // Purpose       : Calculate centroid
     353                 :            : //
     354                 :            : // Special Notes : 
     355                 :            : //
     356                 :            : // Creator       : Jason Kraftcheck
     357                 :            : //
     358                 :            : // Creation Date : 05/12/04
     359                 :            : //-------------------------------------------------------------------------
     360                 :            : #include "GfxDebug.hpp"
     361                 :          0 : CubitStatus FacetLump::mass_properties( CubitVector& centroid, double& volume )
     362                 :            : {
     363                 :            :   int i;
     364                 :            :   
     365 [ #  # ][ #  # ]:          0 :   DLIList<FacetShell*> shells( myShells.size() );
     366 [ #  # ][ #  # ]:          0 :   CAST_LIST( myShells, shells, FacetShell );
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     367 [ #  # ][ #  # ]:          0 :   assert( myShells.size() == shells.size() );
                 [ #  # ]
     368                 :            :   
     369 [ #  # ][ #  # ]:          0 :   DLIList<FacetSurface*> surfaces;
     370 [ #  # ][ #  # ]:          0 :   DLIList<FacetShell*> surf_shells;
     371         [ #  # ]:          0 :   get_surfaces( surfaces );
     372                 :            :   
     373 [ #  # ][ #  # ]:          0 :   DLIList<CubitFacet*> facets, surf_facets;
         [ #  # ][ #  # ]
     374 [ #  # ][ #  # ]:          0 :   DLIList<CubitPoint*> junk;
     375 [ #  # ][ #  # ]:          0 :   DLIList<CubitSense> senses;
     376 [ #  # ][ #  # ]:          0 :   for (i = surfaces.size(); i--; )
     377                 :            :   {
     378         [ #  # ]:          0 :     FacetSurface* surf = surfaces.step_and_get();
     379         [ #  # ]:          0 :     surf_shells.clean_out();
     380         [ #  # ]:          0 :     surf->get_shells( surf_shells );
     381         [ #  # ]:          0 :     surf_shells.intersect( shells );
     382 [ #  # ][ #  # ]:          0 :     assert( surf_shells.size() );
     383 [ #  # ][ #  # ]:          0 :     CubitSense sense = surf->get_shell_sense( surf_shells.get() );
     384 [ #  # ][ #  # ]:          0 :     if (surf_shells.size() == 1 && CUBIT_UNKNOWN != sense)
         [ #  # ][ #  # ]
     385                 :            :     {
     386         [ #  # ]:          0 :       surf_facets.clean_out();
     387         [ #  # ]:          0 :       junk.clean_out();
     388         [ #  # ]:          0 :       surf->get_my_facets( surf_facets, junk );
     389         [ #  # ]:          0 :       facets += surf_facets;
     390                 :            :       
     391 [ #  # ][ #  # ]:          0 :       for (int j = surf_facets.size(); j--; )
     392         [ #  # ]:          0 :         senses.append(sense);
     393                 :            :     }
     394                 :            :   }
     395                 :            :   
     396 [ #  # ][ #  # ]:          0 :   const CubitVector p0 = bounding_box().center();
                 [ #  # ]
     397 [ #  # ][ #  # ]:          0 :   CubitVector p1, p2, p3, normal;
         [ #  # ][ #  # ]
     398         [ #  # ]:          0 :   centroid.set( 0.0, 0.0, 0.0 );
     399                 :          0 :   volume = 0.0;
     400                 :            :   
     401         [ #  # ]:          0 :   facets.reset();
     402         [ #  # ]:          0 :   senses.reset();
     403 [ #  # ][ #  # ]:          0 :   for (i = facets.size(); i--; )
     404                 :            :   {
     405         [ #  # ]:          0 :     CubitFacet* facet = facets.get_and_step();
     406         [ #  # ]:          0 :     CubitSense sense = senses.get_and_step();
     407 [ #  # ][ #  # ]:          0 :     p1 = facet->point(0)->coordinates();
                 [ #  # ]
     408 [ #  # ][ #  # ]:          0 :     p2 = facet->point(1)->coordinates();
                 [ #  # ]
     409 [ #  # ][ #  # ]:          0 :     p3 = facet->point(2)->coordinates();
                 [ #  # ]
     410 [ #  # ][ #  # ]:          0 :     normal = (p3 - p1) * (p2 - p1);
         [ #  # ][ #  # ]
     411                 :            : 
     412         [ #  # ]:          0 :     double two_area = normal.length();
     413         [ #  # ]:          0 :     if (two_area > CUBIT_RESABS )
     414                 :            :     {
     415         [ #  # ]:          0 :       if (CUBIT_REVERSED == sense)
     416 [ #  # ][ #  # ]:          0 :         normal = -normal;
     417                 :            : 
     418         [ #  # ]:          0 :       normal /= two_area;
     419                 :            : 
     420 [ #  # ][ #  # ]:          0 :       double height = normal % (p0 - p1);
     421                 :          0 :       double vol = two_area * height;
     422                 :            : 
     423                 :          0 :       volume += vol;
     424 [ #  # ][ #  # ]:          0 :       centroid += vol * (p0 + p1 + p2 + p3);
         [ #  # ][ #  # ]
                 [ #  # ]
     425                 :            :     }
     426                 :            :   }
     427                 :            :   
     428         [ #  # ]:          0 :   if (volume > CUBIT_RESABS)
     429         [ #  # ]:          0 :     centroid /= 4.0 * volume;
     430                 :          0 :   volume /= 6.0;
     431         [ #  # ]:          0 :   return CUBIT_SUCCESS;
     432                 :            : }
     433                 :            : 
     434                 :          0 : CubitPointContainment FacetLump::point_containment( const CubitVector &point, 
     435                 :            :   double tolerance )
     436                 :            : {
     437                 :            :   CubitPointContainment pc_value; 
     438                 :            :   FacetShell *facet_shell;
     439                 :            : 
     440                 :            :   int i;
     441         [ #  # ]:          0 :   for(i=myShells.size(); i--;)
     442                 :            :   {
     443         [ #  # ]:          0 :     facet_shell = dynamic_cast<FacetShell*>(myShells.get_and_step()); 
     444                 :          0 :     pc_value = facet_shell->point_containment( point, tolerance );
     445         [ #  # ]:          0 :     if( pc_value == CUBIT_PNT_OUTSIDE )
     446                 :          0 :       return CUBIT_PNT_OUTSIDE;
     447         [ #  # ]:          0 :     else if( pc_value == CUBIT_PNT_BOUNDARY )
     448                 :          0 :       return CUBIT_PNT_BOUNDARY;
     449                 :            :   }
     450                 :            : 
     451                 :          0 :   return CUBIT_PNT_INSIDE;
     452                 :            :   
     453                 :            : }
     454                 :            : 
     455                 :            : //Determine whether this lump is really a sheet (that is, sheet-body).
     456                 :          0 : CubitBoolean FacetLump::is_sheet( )
     457                 :            : {
     458                 :            :   FacetShell *facet_shell;
     459                 :            :   int i;
     460                 :            :     //if any of the shells are sheets, the body is assume to be a sheet
     461                 :            :     // for our purposes...
     462         [ #  # ]:          0 :   for(i=myShells.size(); i--;)
     463                 :            :   {
     464         [ #  # ]:          0 :     facet_shell = dynamic_cast<FacetShell*>(myShells.get_and_step()); 
     465         [ #  # ]:          0 :     if(facet_shell->is_sheet()){
     466                 :          0 :       return CUBIT_TRUE;
     467                 :            :     }
     468                 :            :   }
     469                 :          0 :   return CUBIT_FALSE;
     470 [ +  - ][ +  - ]:       6540 : }
     471                 :            : 

Generated by: LCOV version 1.11