LCOV - code coverage report
Current view: top level - geom - CoFace.cpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 8 30 26.7 %
Date: 2020-06-30 00:58:45 Functions: 5 9 55.6 %
Branches: 5 28 17.9 %

           Branch data     Line data    Source code
       1                 :            : //-------------------------------------------------------------------------
       2                 :            : // Copyright Notice
       3                 :            : //
       4                 :            : // Copyright (c) 1996 
       5                 :            : // by Malcolm J. Panthaki, DBA, and the University of New Mexico.
       6                 :            : //-------------------------------------------------------------------------
       7                 :            : //
       8                 :            : //-------------------------------------------------------------------------
       9                 :            : // Filename      : CoFace.cc
      10                 :            : //
      11                 :            : // Purpose       : 
      12                 :            : //
      13                 :            : // Special Notes :
      14                 :            : //
      15                 :            : // Creator       : Xuechen Liu
      16                 :            : //
      17                 :            : // Creation Date : 08/02/96
      18                 :            : //
      19                 :            : // Owner         : Jihong Ma
      20                 :            : //-------------------------------------------------------------------------
      21                 :            : 
      22                 :            : // ********** BEGIN STANDARD INCLUDES      **********
      23                 :            : // ********** END STANDARD INCLUDES        **********
      24                 :            : 
      25                 :            : // ********** BEGIN MOTIF INCLUDES         **********
      26                 :            : // ********** END MOTIF INCLUDES           **********
      27                 :            : 
      28                 :            : // ********** BEGIN OPEN INVENTOR INCLUDES **********
      29                 :            : // ********** END OPEN INVENTOR INCLUDES   **********
      30                 :            : 
      31                 :            : // ********** BEGIN CUBIT INCLUDES         **********
      32                 :            : 
      33                 :            : #include "CoFace.hpp"
      34                 :            : #include "RefFace.hpp"
      35                 :            : #include "RefVolume.hpp"
      36                 :            : #include "GroupingEntity.hpp"
      37                 :            : #include "CastTo.hpp"
      38                 :            : #include "GeometryDefines.h"
      39                 :            : #include "Shell.hpp"
      40                 :            : 
      41                 :            : // ********** END CUBIT INCLUDES           **********
      42                 :            : 
      43                 :            : // ********** BEGIN STATIC DECLARATIONS    **********
      44                 :            : // ********** END STATIC DECLARATIONS      **********
      45                 :            : 
      46                 :            : 
      47                 :            : // ********** BEGIN PUBLIC FUNCTIONS       **********
      48                 :            : //-------------------------------------------------------------------------
      49                 :            : // Purpose       : The default constructor.
      50                 :            : //
      51                 :            : // Special Notes :
      52                 :            : //
      53                 :            : // Creator       : Xuechen Liu
      54                 :            : //
      55                 :            : // Creation Date : 08/02/96
      56                 :            : //-------------------------------------------------------------------------
      57                 :      34550 : CoFace::CoFace() 
      58                 :            : {
      59                 :      17275 : }
      60                 :            : 
      61                 :            : //-------------------------------------------------------------------------
      62                 :            : // Purpose       : The destructor.
      63                 :            : //
      64                 :            : // Special Notes :
      65                 :            : //
      66                 :            : // Creator       : Raikanta Sahu
      67                 :            : //
      68                 :            : // Creation Date : 10/22/96
      69                 :            : //-------------------------------------------------------------------------
      70                 :      31596 : CoFace::~CoFace() 
      71                 :            : {
      72         [ -  + ]:      21064 : }
      73                 :            : 
      74                 :            : //-------------------------------------------------------------------------
      75                 :            : // Purpose       : The constructor with a pointer to a face and the
      76                 :            : //                 sense of this CoFace. 
      77                 :            : //
      78                 :            : // Special Notes :
      79                 :            : //
      80                 :            : // Creator       : Xuechen Liu
      81                 :            : //
      82                 :            : // Creation Date : 08/02/96
      83                 :            : //-------------------------------------------------------------------------
      84                 :          0 : CoFace::CoFace(RefFace* facePtr, CubitSense sense) 
      85                 :            : {
      86         [ #  # ]:          0 :    attach_basic_topology_entity(facePtr) ;
      87         [ #  # ]:          0 :    set_sense(sense) ;
      88                 :          0 : }
      89                 :            : 
      90                 :            : //-------------------------------------------------------------------------
      91                 :            : // Purpose       : This function returns a pointer to the RefFace which
      92                 :            : //                 the current CoFace is associated with.
      93                 :            : //
      94                 :            : // Special Notes :
      95                 :            : //
      96                 :            : // Creator       : Malcolm J. Panthaki
      97                 :            : //
      98                 :            : // Creation Date : 08/02/96
      99                 :            : //-------------------------------------------------------------------------
     100                 :          0 : RefFace* CoFace::get_ref_face_ptr()  
     101                 :            : {
     102                 :            :    // Call the generic function defined in the SenseEntity class to
     103                 :            :    // do the real work
     104                 :          0 :    BasicTopologyEntity* BTEPtr = get_basic_topology_entity_ptr();
     105                 :            : 
     106                 :            :    // Cast the returned pointer to RefFace and return it
     107         [ #  # ]:          0 :    return CAST_TO( BTEPtr, RefFace );   
     108                 :            : }
     109                 :            : 
     110                 :            : //-------------------------------------------------------------------------
     111                 :            : // Purpose       : Get the parent Shell.
     112                 :            : //
     113                 :            : // Special Notes :
     114                 :            : //
     115                 :            : // Creator       : Jason Kraftcheck
     116                 :            : //
     117                 :            : // Creation Date : 06/09/99
     118                 :            : //-------------------------------------------------------------------------
     119                 :       2437 : Shell* CoFace::get_shell_ptr()  
     120                 :            : {
     121                 :       2437 :    GroupingEntity* gpe_ptr = get_grouping_entity_ptr();
     122                 :            : 
     123                 :            :    // Cast the returned pointer to RefFace and return it
     124         [ +  + ]:       2437 :    return CAST_TO( gpe_ptr, Shell );   
     125                 :            : }
     126                 :            : 
     127                 :            : //-------------------------------------------------------------------------
     128                 :            : // Purpose       : This function returns a pointer to the RefVolume which
     129                 :            : //                 the current CoFace is associated with.
     130                 :            : //
     131                 :            : // Special Notes :
     132                 :            : //
     133                 :            : // Creator       : David White
     134                 :            : //
     135                 :            : // Creation Date : 03/14/97
     136                 :            : //-------------------------------------------------------------------------
     137                 :          0 : RefVolume* CoFace::get_ref_volume()
     138                 :            : {
     139                 :          0 :    BasicTopologyEntity* bte_ptr = get_parent_basic_topology_entity_ptr();
     140                 :            : 
     141                 :            :    // Cast the returned pointer to RefFace and return it
     142         [ #  # ]:          0 :    return dynamic_cast<RefVolume*>(bte_ptr);
     143                 :            : }
     144                 :            : 
     145                 :            : 
     146                 :            : //-------------------------------------------------------------------------
     147                 :            : // Purpose       : This function is called after a child of a TopologyEntity
     148                 :            : //                 is switched. The sense of a CoFace may change if one 
     149                 :            : //                 of its RefFace changes. This function takes care of 
     150                 :            : //                 that. If the sense of the RefFaces that were switched 
     151                 :            : //                 is same, nothing is done. If the RefFaces are of 
     152                 :            : //                 opposite sense, the sense of this object is switched, 
     153                 :            : //                 i.e. if it was FORWARD, it is made REVERSE, and vice
     154                 :            : //                 versa.
     155                 :            : //
     156                 :            : // Special Notes : This function assumes the RefFaces are equivalent...
     157                 :            : //
     158                 :            : // Creator       : David White
     159                 :            : //
     160                 :            : // Creation Date : 4/3/97
     161                 :            : //-------------------------------------------------------------------------
     162                 :            : 
     163                 :          0 : void CoFace::switch_child_notify(TopologyEntity const* newChild,
     164                 :            :                                  TopologyEntity const* oldChild )
     165                 :            : {
     166                 :            :    // Make sure the entities being switched are RefFaces. If not,
     167                 :            :    // get out of this function.
     168                 :          0 :   TopologyEntity* tmp_new_child = const_cast<TopologyEntity*>(newChild);
     169                 :          0 :   TopologyEntity* tmp_old_child = const_cast<TopologyEntity*>(oldChild);
     170         [ #  # ]:          0 :    RefFace* new_child_ref_face = CAST_TO(tmp_new_child, RefFace) ;
     171         [ #  # ]:          0 :    RefFace* old_child_ref_face = CAST_TO(tmp_old_child, RefFace) ;
     172                 :            : 
     173 [ #  # ][ #  # ]:          0 :    if ( ( new_child_ref_face == NULL ) || ( old_child_ref_face == NULL ) )
     174                 :            :    {
     175                 :          0 :       return ;
     176                 :            :    }
     177                 :            : 
     178                 :            :    CubitSense sense =
     179                 :          0 :        old_child_ref_face->compare_alignment( new_child_ref_face );
     180                 :            :    
     181                 :            :      // If the sense of the old RefFace relative to the new RefFace is 
     182                 :            :      // same, nothing needs to be done. However, if the relative sense
     183                 :            :      // is reversed, switch the sense of the CoFace.
     184         [ #  # ]:          0 :    if ( sense == CUBIT_REVERSED ) 
     185                 :            :    {
     186         [ #  # ]:          0 :      if ( get_sense() == CUBIT_FORWARD )
     187                 :            :      {
     188                 :          0 :        set_sense(CUBIT_REVERSED) ;
     189                 :            :      }
     190                 :            :      else
     191                 :            :      {
     192                 :          0 :        set_sense(CUBIT_FORWARD) ;
     193                 :            :      }
     194                 :            :    }
     195 [ +  - ][ +  - ]:       6540 : }
     196                 :            : 
     197                 :            : 
     198                 :            : // ********** END PUBLIC FUNCTIONS         **********
     199                 :            : 
     200                 :            : // ********** BEGIN PROTECTED FUNCTIONS    **********
     201                 :            : // ********** END PROTECTED FUNCTIONS      **********
     202                 :            : 
     203                 :            : // ********** BEGIN PRIVATE FUNCTIONS      **********
     204                 :            : // ********** END PRIVATE FUNCTIONS        **********
     205                 :            : 
     206                 :            : // ********** BEGIN HELPER CLASSES         **********
     207                 :            : // ********** END HELPER CLASSES           **********
     208                 :            : 
     209                 :            : // ********** BEGIN EXTERN FUNCTIONS       **********
     210                 :            : // ********** END EXTERN FUNCTIONS         **********
     211                 :            : 
     212                 :            : // ********** BEGIN STATIC FUNCTIONS       **********
     213                 :            : // ********** END STATIC FUNCTIONS         **********
     214                 :            : 

Generated by: LCOV version 1.11