LCOV - code coverage report
Current view: top level - geom - BoundingBoxTool.cpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 6 199 3.0 %
Date: 2020-06-30 00:58:45 Functions: 3 27 11.1 %
Branches: 2 418 0.5 %

           Branch data     Line data    Source code
       1                 :            : //- Class: BoundingBoxTool
       2                 :            : //- Description: Class for bounding boxes (primarily for "tight" bounding boxes)
       3                 :            : //- Owner: Steve Storm
       4                 :            : //- Created: 06-October-2000
       5                 :            : 
       6                 :            : #include "CubitBox.hpp"
       7                 :            : #include "Body.hpp"
       8                 :            : #include "RefVolume.hpp"
       9                 :            : #include "RefFace.hpp"
      10                 :            : #include "RefEdge.hpp"
      11                 :            : #include "RefVertex.hpp"
      12                 :            : #include "RefGroup.hpp"
      13                 :            : 
      14                 :            : #include "BoundingBoxTool.hpp"
      15                 :            : #include "AnalyticGeometryTool.hpp"
      16                 :            : #include "GMem.hpp"
      17                 :            : 
      18                 :            : #include "GeometryQueryEngine.hpp"
      19                 :            : 
      20                 :            : #include "DLIList.hpp"
      21                 :            : 
      22                 :            : #include "SettingHandler.hpp"
      23                 :            : 
      24                 :            : CubitBoolean BoundingBoxTool::useTriangles = CUBIT_TRUE;
      25                 :            : CubitBoolean BoundingBoxTool::useCurves = CUBIT_FALSE;
      26                 :            : CubitBoolean BoundingBoxTool::useVertices = CUBIT_FALSE;
      27                 :            : 
      28                 :          0 : BoundingBoxTool::BoundingBoxTool()
      29                 :          0 : {}
      30                 :            : 
      31                 :            : // Destructor
      32                 :          0 : BoundingBoxTool::~BoundingBoxTool()
      33                 :          0 : {}
      34                 :            : 
      35                 :            : CubitStatus 
      36                 :          0 : BoundingBoxTool::get_tight_bounding_box( DLIList<RefEntity*> &ref_entity_list,
      37                 :            :                                          CubitVector &center,
      38                 :            :                                          CubitVector axes[3],
      39                 :            :                                          CubitVector &extension,
      40                 :            :                                          double ang_facet_tol,
      41                 :            :                                          double abs_facet_tol )
      42                 :            : {
      43         [ #  # ]:          0 :    DLIList<CubitVector*> vec_list;
      44                 :            : 
      45                 :            :    // Expand out groups in the list
      46 [ #  # ][ #  # ]:          0 :    DLIList<RefEntity*> ref_entity_list_expanded = ref_entity_list;
      47         [ #  # ]:          0 :    expand_groups_in_list( ref_entity_list_expanded );
      48                 :            : 
      49                 :            :    // Get the facet points from all the objects in the list
      50         [ #  # ]:          0 :    append_ref_entity_points( ref_entity_list_expanded, vec_list, ang_facet_tol, abs_facet_tol );
      51                 :            :    
      52                 :            :    // Get the smallest box that fits around the points making up the facetted geometry
      53                 :            :    AnalyticGeometryTool::instance()->get_tight_bounding_box( vec_list, center, 
      54 [ #  # ][ #  # ]:          0 :                                                              axes, extension );
      55                 :            : 
      56                 :            :    // Free memory
      57 [ #  # ][ #  # ]:          0 :    for( int i=0; i<vec_list.size(); i++ )
      58                 :            :    {
      59                 :            :       CubitVector* cubit_vector_ptr =
      60         [ #  # ]:          0 :          vec_list.get_and_step();
      61                 :          0 :       delete cubit_vector_ptr;
      62                 :            :    }
      63                 :            :    
      64         [ #  # ]:          0 :    return CUBIT_SUCCESS;
      65                 :            : }
      66                 :            : 
      67                 :            : CubitStatus 
      68                 :          0 : BoundingBoxTool::get_axis_bounding_box( DLIList<RefEntity*> &ref_entity_list,
      69                 :            :                                         CubitVector &center,
      70                 :            :                                         CubitVector axes[3],
      71                 :            :                                         CubitVector &extension )
      72                 :            : {
      73                 :          0 :    CubitBoolean bounding_box_found = CUBIT_FALSE;
      74         [ #  # ]:          0 :    CubitBox bounding_box;
      75                 :            : 
      76                 :            :    // Expand out groups in the list
      77 [ #  # ][ #  # ]:          0 :    DLIList<RefEntity*> ref_entity_list_expanded = ref_entity_list;
      78         [ #  # ]:          0 :    expand_groups_in_list( ref_entity_list_expanded );
      79                 :            : 
      80         [ #  # ]:          0 :    ref_entity_list_expanded.reset();
      81 [ #  # ][ #  # ]:          0 :    for( int i = ref_entity_list_expanded.size(); i>0; i-- )
      82                 :            :    {
      83         [ #  # ]:          0 :       RefEntity* ref_entity_ptr = ref_entity_list_expanded.get_and_step();
      84         [ #  # ]:          0 :       if( bounding_box_found == CUBIT_FALSE ) 
      85                 :            :       {
      86 [ #  # ][ #  # ]:          0 :          bounding_box = ref_entity_ptr->bounding_box();
                 [ #  # ]
      87                 :          0 :          bounding_box_found = CUBIT_TRUE;
      88                 :            :       }
      89                 :            :       else {
      90 [ #  # ][ #  # ]:          0 :          bounding_box |= ref_entity_ptr->bounding_box();
                 [ #  # ]
      91                 :            :       }     
      92                 :            :    }
      93                 :            : 
      94         [ #  # ]:          0 :    axes[0].set( 1.0, 0.0, 0.0 );
      95         [ #  # ]:          0 :    axes[1].set( 0.0, 1.0, 0.0 );
      96         [ #  # ]:          0 :    axes[2].set( 0.0, 0.0, 1.0 );
      97                 :            :    
      98         [ #  # ]:          0 :    if( bounding_box_found ) 
      99                 :            :    {
     100 [ #  # ][ #  # ]:          0 :       extension.set( bounding_box.x_range()/2.0, bounding_box.y_range()/2.0,
     101 [ #  # ][ #  # ]:          0 :          bounding_box.z_range()/2.0 );
     102 [ #  # ][ #  # ]:          0 :       center = bounding_box.center();
     103                 :            :    }
     104                 :            :    else
     105                 :            :    {
     106         [ #  # ]:          0 :       extension.set( 0.0, 0.0, 0.0 );
     107         [ #  # ]:          0 :       center.set( 0.0, 0.0, 0.0 );
     108                 :            :    }
     109                 :            : 
     110         [ #  # ]:          0 :    return CUBIT_SUCCESS;   
     111                 :            : }
     112                 :            : 
     113                 :            : CubitStatus 
     114                 :          0 : BoundingBoxTool::append_ref_entity_points( DLIList<RefEntity*> &ref_entity_list, 
     115                 :            :                                            DLIList<CubitVector*> &vec_list,
     116                 :            :                                            double ang_facet_tol, double abs_facet_tol )
     117                 :            : {
     118         [ #  # ]:          0 :    DLIList<Body*> body_list;
     119 [ #  # ][ #  # ]:          0 :    CAST_LIST( ref_entity_list, body_list, Body );
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     120 [ #  # ][ #  # ]:          0 :    if( body_list.size() )
     121         [ #  # ]:          0 :       append_body_points( body_list, vec_list, ang_facet_tol, abs_facet_tol );
     122                 :            : 
     123 [ #  # ][ #  # ]:          0 :    DLIList<RefVolume*> vol_list;
     124 [ #  # ][ #  # ]:          0 :    CAST_LIST( ref_entity_list, vol_list, RefVolume );
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     125 [ #  # ][ #  # ]:          0 :    if( vol_list.size() )
     126         [ #  # ]:          0 :       append_volume_points( vol_list, vec_list, ang_facet_tol, abs_facet_tol );
     127                 :            : 
     128 [ #  # ][ #  # ]:          0 :    DLIList<RefFace*> surface_list;
     129 [ #  # ][ #  # ]:          0 :    CAST_LIST( ref_entity_list, surface_list, RefFace );
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     130 [ #  # ][ #  # ]:          0 :    if( surface_list.size() )
     131         [ #  # ]:          0 :       append_surface_points( surface_list, vec_list, ang_facet_tol, abs_facet_tol );
     132                 :            : 
     133 [ #  # ][ #  # ]:          0 :    DLIList<RefEdge*> curve_list;
     134 [ #  # ][ #  # ]:          0 :    CAST_LIST( ref_entity_list, curve_list, RefEdge );
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     135 [ #  # ][ #  # ]:          0 :    if( curve_list.size() )
     136         [ #  # ]:          0 :       append_curve_points( curve_list, vec_list );
     137                 :            : 
     138 [ #  # ][ #  # ]:          0 :    DLIList<RefVertex*> vertex_list;
     139 [ #  # ][ #  # ]:          0 :    CAST_LIST( ref_entity_list, vertex_list, RefVertex );
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
                 [ #  # ]
     140 [ #  # ][ #  # ]:          0 :    if( vertex_list.size() )
     141         [ #  # ]:          0 :       append_vertex_points( vertex_list, vec_list );
     142                 :            : 
     143         [ #  # ]:          0 :    return CUBIT_SUCCESS;
     144                 :            : }
     145                 :            : 
     146                 :            : CubitStatus 
     147                 :          0 : BoundingBoxTool::append_body_points( DLIList<Body*> &body_list, 
     148                 :            :                                      DLIList<CubitVector*> &vec_list,
     149                 :            :                                      double ang_tol, double abs_tol )
     150                 :            : {
     151                 :            :    int i;
     152                 :            :    Body *body_ptr;
     153         [ #  # ]:          0 :    DLIList<RefFace*> ref_face_list;
     154                 :            : 
     155         [ #  # ]:          0 :    body_list.reset();
     156 [ #  # ][ #  # ]:          0 :    for( i=0; i<body_list.size(); i++ )
     157                 :            :    {
     158         [ #  # ]:          0 :       body_ptr = body_list.get_and_step();
     159                 :            : 
     160         [ #  # ]:          0 :       DLIList<RefFace*> ref_face_list_tmp;
     161         [ #  # ]:          0 :       body_ptr->ref_faces( ref_face_list_tmp );
     162                 :            : 
     163         [ #  # ]:          0 :       ref_face_list.merge_unique( ref_face_list_tmp );
     164         [ #  # ]:          0 :    }
     165                 :            : 
     166         [ #  # ]:          0 :    append_surface_points( ref_face_list, vec_list, ang_tol, abs_tol);
     167                 :            :    
     168         [ #  # ]:          0 :    return CUBIT_SUCCESS;
     169                 :            : }
     170                 :            : 
     171                 :            : CubitStatus 
     172                 :          0 : BoundingBoxTool::append_volume_points( DLIList<RefVolume*> &vol_list, 
     173                 :            :                                        DLIList<CubitVector*> &vec_list,
     174                 :            :                                        double ang_tol, double abs_tol )
     175                 :            : {
     176                 :            :    int i;
     177                 :            :    RefVolume *vol_ptr;
     178         [ #  # ]:          0 :    DLIList<RefFace*> ref_face_list;
     179                 :            : 
     180         [ #  # ]:          0 :    vol_list.reset();
     181 [ #  # ][ #  # ]:          0 :    for( i=0; i<vol_list.size(); i++ )
     182                 :            :    {
     183         [ #  # ]:          0 :       vol_ptr = vol_list.get_and_step();
     184                 :            : 
     185         [ #  # ]:          0 :       DLIList<RefFace*> ref_face_list_tmp;
     186         [ #  # ]:          0 :       vol_ptr->ref_faces( ref_face_list_tmp );
     187                 :            : 
     188         [ #  # ]:          0 :       ref_face_list.merge_unique( ref_face_list_tmp );
     189         [ #  # ]:          0 :    }
     190                 :            : 
     191         [ #  # ]:          0 :    append_surface_points( ref_face_list, vec_list, ang_tol, abs_tol);
     192                 :            :    
     193         [ #  # ]:          0 :    return CUBIT_SUCCESS;
     194                 :            : }
     195                 :            : 
     196                 :            : CubitStatus 
     197                 :          0 : BoundingBoxTool::append_surface_points( DLIList<RefFace*> &ref_face_list, 
     198                 :            :                                         DLIList<CubitVector*> &vec_list,
     199                 :            :                                         double ang_tol, double abs_tol)
     200                 :            : {
     201                 :            :    int i;
     202                 :            :    RefFace *ref_face_ptr;
     203         [ #  # ]:          0 :    DLIList<RefEdge*> ref_edge_list;
     204 [ #  # ][ #  # ]:          0 :    DLIList<RefVertex*> ref_vertex_list;
     205                 :            :    
     206         [ #  # ]:          0 :    ref_face_list.reset();
     207 [ #  # ][ #  # ]:          0 :    for( i=0; i<ref_face_list.size(); i++ )
     208                 :            :    {
     209         [ #  # ]:          0 :       ref_face_ptr = ref_face_list.get_and_step();
     210                 :            : 
     211         [ #  # ]:          0 :       if( useTriangles == CUBIT_TRUE )
     212                 :            :       {
     213                 :            :          int num_pnt;
     214 [ #  # ][ #  # ]:          0 :          GMem *g_mem = new GMem;
     215                 :            :       
     216         [ #  # ]:          0 :          ref_face_ptr->get_graphics( *g_mem, (int)ang_tol, abs_tol );
     217                 :          0 :          num_pnt = g_mem->pointListCount;
     218                 :            : 
     219         [ #  # ]:          0 :          GPoint* point_list = g_mem->point_list();
     220                 :            :          //int num_pnts = g_mem->point_list_size();
     221                 :            :          int y;
     222         [ #  # ]:          0 :          for( y=0; y<num_pnt; y++ )
     223                 :            :          {
     224                 :            :             CubitVector* cubit_vector_ptr = new CubitVector(
     225 [ #  # ][ #  # ]:          0 :                point_list[y].x, point_list[y].y, point_list[y].z );
     226         [ #  # ]:          0 :             vec_list.append( cubit_vector_ptr );
     227                 :            :          }
     228 [ #  # ][ #  # ]:          0 :          delete g_mem;
     229                 :            :       }
     230                 :            :       
     231         [ #  # ]:          0 :       if( useCurves == CUBIT_TRUE )
     232                 :            :       {
     233                 :            :          // Grab the curves from the surface
     234         [ #  # ]:          0 :          DLIList<RefEdge*> ref_edge_list_tmp;
     235         [ #  # ]:          0 :          ref_face_ptr->ref_edges( ref_edge_list_tmp );
     236 [ #  # ][ #  # ]:          0 :          ref_edge_list.merge_unique( ref_edge_list_tmp );
     237                 :            :       }
     238                 :            : 
     239                 :            :       // Only need vertices if both surfaces and curves are false
     240 [ #  # ][ #  # ]:          0 :       if( useTriangles == CUBIT_FALSE && useCurves == CUBIT_FALSE &&
                 [ #  # ]
     241                 :          0 :          useVertices == CUBIT_TRUE )
     242                 :            :       {
     243                 :            :          // Grab the vertices from the surface
     244         [ #  # ]:          0 :          DLIList<RefVertex*> ref_vertex_list_tmp;
     245         [ #  # ]:          0 :          ref_face_ptr->ref_vertices( ref_vertex_list_tmp );
     246 [ #  # ][ #  # ]:          0 :          ref_vertex_list.merge_unique( ref_vertex_list_tmp );
     247                 :            :       }
     248                 :            :    }
     249                 :            : 
     250         [ #  # ]:          0 :    if( useCurves == CUBIT_TRUE )
     251         [ #  # ]:          0 :       append_curve_points( ref_edge_list, vec_list );
     252                 :            : 
     253 [ #  # ][ #  # ]:          0 :    if( useTriangles == CUBIT_FALSE && useCurves == CUBIT_FALSE &&
                 [ #  # ]
     254                 :          0 :        useVertices == CUBIT_TRUE )
     255         [ #  # ]:          0 :        append_vertex_points( ref_vertex_list, vec_list );
     256                 :            : 
     257         [ #  # ]:          0 :    return CUBIT_SUCCESS;
     258                 :            : }
     259                 :            : 
     260                 :            : CubitStatus 
     261                 :          0 : BoundingBoxTool::append_curve_points( DLIList<RefEdge*> &ref_edge_list, 
     262                 :            :                                       DLIList<CubitVector*> &vec_list )
     263                 :            : {
     264                 :            :    // First grab all the vertices and append their coordinates to vec_list.
     265                 :            :    // Then do the curves, but just put inside points in.  This avoids duplicate
     266                 :            :    // points at the vertices.
     267                 :            : 
     268                 :            :    int i;
     269                 :            :    RefEdge *ref_edge_ptr;
     270         [ #  # ]:          0 :    DLIList<RefVertex*> ref_vertex_list;
     271         [ #  # ]:          0 :    ref_edge_list.reset();
     272 [ #  # ][ #  # ]:          0 :    for( i=0; i<ref_edge_list.size(); i++ )
     273                 :            :    {
     274         [ #  # ]:          0 :       ref_edge_ptr = ref_edge_list.get_and_step();
     275         [ #  # ]:          0 :       DLIList<RefVertex*> ref_vertex_list_temp;
     276         [ #  # ]:          0 :       ref_edge_ptr->ref_vertices( ref_vertex_list_temp );
     277         [ #  # ]:          0 :       ref_vertex_list.merge_unique( ref_vertex_list_temp );
     278         [ #  # ]:          0 :    }
     279         [ #  # ]:          0 :    append_vertex_points( ref_vertex_list, vec_list );
     280                 :            : 
     281                 :            :    // Now add the *inside* curve points
     282                 :            : 
     283                 :            :    int j, num_pnts;
     284         [ #  # ]:          0 :    ref_edge_list.reset();
     285 [ #  # ][ #  # ]:          0 :    for( i=0; i<ref_edge_list.size(); i++ )
     286                 :            :    {
     287         [ #  # ]:          0 :       ref_edge_ptr = ref_edge_list.get_and_step();
     288 [ #  # ][ #  # ]:          0 :       GMem *g_mem = new GMem;
     289                 :            :       
     290         [ #  # ]:          0 :       ref_edge_ptr->get_graphics( *g_mem );
     291                 :          0 :       num_pnts = g_mem->pointListCount;
     292                 :            : 
     293         [ #  # ]:          0 :       GPoint* point_list = g_mem->point_list();
     294                 :            : 
     295         [ #  # ]:          0 :       for( j=1; j<num_pnts-1; j++ )
     296                 :            :       {
     297                 :            :          CubitVector* cubit_vector_ptr = new CubitVector(
     298 [ #  # ][ #  # ]:          0 :             point_list[j].x, point_list[j].y, point_list[j].z );
     299         [ #  # ]:          0 :          vec_list.append( cubit_vector_ptr );
     300                 :            :       }
     301 [ #  # ][ #  # ]:          0 :       delete g_mem;
     302                 :            :    }
     303                 :            : 
     304         [ #  # ]:          0 :    return CUBIT_SUCCESS;
     305                 :            : }
     306                 :            : 
     307                 :            : CubitStatus 
     308                 :          0 : BoundingBoxTool::append_vertex_points( DLIList<RefVertex*> &ref_vertex_list, 
     309                 :            :                                        DLIList<CubitVector*> &vec_list )
     310                 :            : {
     311                 :            :    int i;
     312                 :            :    RefVertex *ref_vertex_ptr;
     313                 :          0 :    ref_vertex_list.reset();
     314         [ #  # ]:          0 :    for( i=0; i<ref_vertex_list.size(); i++ )
     315                 :            :    {
     316         [ #  # ]:          0 :       ref_vertex_ptr = ref_vertex_list.get_and_step();
     317         [ #  # ]:          0 :       CubitVector coords = ref_vertex_ptr->coordinates();
     318 [ #  # ][ #  # ]:          0 :       CubitVector* cubit_vector_ptr = new CubitVector( coords );
     319         [ #  # ]:          0 :       vec_list.append( cubit_vector_ptr );
     320                 :            :    }
     321                 :          0 :    return CUBIT_SUCCESS;
     322                 :            : }
     323                 :            : 
     324                 :            : 
     325                 :            : CubitStatus 
     326                 :          0 : BoundingBoxTool::get_corner_points( CubitVector &center,
     327                 :            :                                     CubitVector axes[3],
     328                 :            :                                     CubitVector &extension,
     329                 :            :                                     CubitVector& p1, CubitVector& p2,
     330                 :            :                                     CubitVector& p3, CubitVector& p4,
     331                 :            :                                     CubitVector& p5, CubitVector& p6,
     332                 :            :                                     CubitVector& p7, CubitVector& p8)
     333                 :            : {
     334                 :          0 :    double x = extension.x(); double y = extension.y(); double z = extension.z();
     335                 :            : 
     336                 :            :    // Front, Bottom, Left
     337 [ #  # ][ #  # ]:          0 :    center.next_point( -axes[0], x, p1 ); p1.next_point( -axes[1], y, p1 );
     338                 :          0 :    p1.next_point( axes[2], z, p1 );
     339                 :            :    
     340                 :            :    // Front, Top, Left
     341         [ #  # ]:          0 :    center.next_point( -axes[0], x, p2 ); p2.next_point( axes[1], y, p2 );
     342                 :          0 :    p2.next_point( axes[2], z, p2 );
     343                 :            :    
     344                 :            :    // Front, Top, Right
     345                 :          0 :    center.next_point( axes[0], x, p3 ); p3.next_point( axes[1], y, p3 );
     346                 :          0 :    p3.next_point( axes[2], z, p3 );
     347                 :            :    
     348                 :            :    // Front, Bottom, Right
     349         [ #  # ]:          0 :    center.next_point( axes[0], x, p4 ); p4.next_point( -axes[1], y, p4 );
     350                 :          0 :    p4.next_point( axes[2], z, p4 );
     351                 :            :    
     352                 :            :    // Back, Bottom, Left
     353 [ #  # ][ #  # ]:          0 :    center.next_point( -axes[0], x, p5 ); p5.next_point( -axes[1], y, p5 );
     354         [ #  # ]:          0 :    p5.next_point( -axes[2], z, p5 );
     355                 :            :    
     356                 :            :    // Back, Top, Left
     357         [ #  # ]:          0 :    center.next_point( -axes[0], x, p6 ); p6.next_point( axes[1], y, p6 );
     358         [ #  # ]:          0 :    p6.next_point( -axes[2], z, p6 );
     359                 :            :    
     360                 :            :    // Back, Top, Right
     361                 :          0 :    center.next_point( axes[0], x, p7 ); p7.next_point( axes[1], y, p7 );
     362         [ #  # ]:          0 :    p7.next_point( -axes[2], z, p7 );
     363                 :            :    
     364                 :            :    // Back, Bottom, Right
     365         [ #  # ]:          0 :    center.next_point( axes[0], x, p8 ); p8.next_point( -axes[1], y, p8 );
     366         [ #  # ]:          0 :    p8.next_point( -axes[2], z, p8 );
     367                 :            : 
     368                 :          0 :    return CUBIT_SUCCESS;
     369                 :            : }
     370                 :            : 
     371                 :            : 
     372                 :            : //Initialize all settings in this class
     373                 :        874 : void BoundingBoxTool::initialize_settings()
     374                 :            : {
     375                 :            : 
     376                 :            :   SettingHandler::instance()->add_setting("Tight Surface", 
     377                 :            :                                           BoundingBoxTool::set_use_triangles_setting, 
     378                 :        874 :                                           BoundingBoxTool::get_use_triangles_setting ); 
     379                 :            : 
     380                 :            :   SettingHandler::instance()->add_setting("Tight Curve", 
     381                 :            :                                           BoundingBoxTool::set_use_curves_setting, 
     382                 :        874 :                                           BoundingBoxTool::get_use_curves_setting);
     383                 :            :    
     384                 :            :   SettingHandler::instance()->add_setting("Tight Vertex", 
     385                 :            :                                          BoundingBoxTool::set_use_vertices_setting, 
     386                 :        874 :                                          BoundingBoxTool::get_use_vertices_setting);  
     387                 :            : 
     388                 :            : 
     389                 :        874 : }
     390                 :            : 
     391                 :            : 
     392                 :            : 
     393                 :            : CubitBoolean 
     394                 :          0 : BoundingBoxTool::expand_groups_in_list( DLIList<RefEntity*> &ref_entity_list )
     395                 :            : {
     396                 :          0 :    CubitBoolean group_found = CUBIT_FALSE;
     397                 :            :    // just have to step through original entity_list, not the expanded list
     398         [ #  # ]:          0 :    for (int i = ref_entity_list.size(); i>0; i--)  
     399                 :            :    {
     400                 :          0 :       RefEntity *entity = ref_entity_list.get();
     401         [ #  # ]:          0 :       RefGroup *group = CAST_TO( entity, RefGroup );      
     402         [ #  # ]:          0 :       if ( group ) 
     403                 :            :       {
     404                 :          0 :          ref_entity_list.remove();
     405                 :          0 :          group->expand_group( ref_entity_list );
     406                 :          0 :          group_found = CUBIT_TRUE;
     407                 :            :       }
     408                 :            :       else
     409                 :          0 :          ref_entity_list.step();
     410                 :            :    }
     411                 :          0 :    return group_found;
     412                 :            : }
     413                 :            : 
     414                 :            : 
     415                 :          0 : int BoundingBoxTool::get_use_triangles_setting()
     416                 :          0 : {return useTriangles;}
     417                 :            : 
     418                 :          0 : void BoundingBoxTool::set_use_triangles_setting( int val )
     419         [ #  # ]:          0 : {useTriangles = (val) ? CUBIT_TRUE : CUBIT_FALSE;}
     420                 :            : 
     421                 :          0 : int BoundingBoxTool::get_use_curves_setting()
     422                 :          0 : {return useCurves;}
     423                 :            : 
     424                 :          0 : void BoundingBoxTool::set_use_curves_setting( int val )
     425         [ #  # ]:          0 : {useCurves = (val) ? CUBIT_TRUE : CUBIT_FALSE;}
     426                 :            : 
     427                 :          0 : int BoundingBoxTool::get_use_vertices_setting()
     428                 :          0 : {return useVertices;}
     429                 :            : 
     430                 :          0 : void BoundingBoxTool::set_use_vertices_setting( int val )
     431         [ #  # ]:          0 : {useVertices = (val) ? CUBIT_TRUE : CUBIT_FALSE;}
     432                 :            : 
     433                 :            : 
     434                 :          0 : CubitBoolean BoundingBoxTool::get_use_triangles()
     435                 :          0 : {return useTriangles;}
     436                 :            : 
     437                 :          0 : void BoundingBoxTool::set_use_triangles( CubitBoolean val )
     438                 :          0 : {useTriangles=val;}
     439                 :            : 
     440                 :          0 : CubitBoolean BoundingBoxTool::get_use_curves()
     441                 :          0 : {return useCurves;}
     442                 :            : 
     443                 :          0 : void BoundingBoxTool::set_use_curves( CubitBoolean val )
     444                 :          0 : {useCurves=val;}
     445                 :            : 
     446                 :          0 : CubitBoolean BoundingBoxTool::get_use_vertices()
     447                 :          0 : {return useVertices;}
     448                 :            : 
     449                 :          0 : void BoundingBoxTool::set_use_vertices( CubitBoolean val )
     450 [ +  - ][ +  - ]:       6540 : {useVertices=val;}
     451                 :            : 
     452                 :            : 

Generated by: LCOV version 1.11