LCOV - code coverage report
Current view: top level - geom - GeomDataObserver.cpp (source / functions) Hit Total Coverage
Test: coverage_sk.info Lines: 30 32 93.8 %
Date: 2020-06-30 00:58:45 Functions: 7 7 100.0 %
Branches: 22 42 52.4 %

           Branch data     Line data    Source code
       1                 :            : //------------------------------------------------------------------------
       2                 :            : // Class GeomDataObserver
       3                 :            : // Description:  Observer class that stores/caches specific geometric
       4                 :            : //               information (for example, the area for a surface.
       5                 :            : //
       6                 :            : // Author: David White
       7                 :            : // Creation Date: 9/7/2003
       8                 :            : //------------------------------------------------------------------------
       9                 :            : #include "GeomDataObserver.hpp"
      10                 :            : #include "RefEntity.hpp"
      11                 :            : #include "GeometryEvent.hpp"
      12                 :            : 
      13                 :        370 : GeomDataObserver::GeomDataObserver(RefEntity* watched)
      14                 :        370 :     : myRefEntity(watched)
      15                 :            : {
      16                 :        370 :   measureSet = CUBIT_FALSE;
      17                 :            :     //initialize to something weird.
      18                 :        370 :   myMeasure = -CUBIT_DBL_MAX;
      19                 :        370 : }
      20                 :            : 
      21                 :        120 : GeomDataObserver::~GeomDataObserver()
      22                 :            : { 
      23 [ +  - ][ +  - ]:         40 :   unregister_observable( myRefEntity ); 
      24         [ -  + ]:         80 : }
      25                 :            : 
      26                 :       1090 : GeomDataObserver* GeomDataObserver::get( RefEntity* on_this )
      27                 :            : {
      28         [ +  - ]:       1090 :    DLIList<CubitObserver*> list;
      29                 :       1090 :    GeomDataObserver* eo = NULL;
      30                 :            : 
      31         [ +  - ]:       1090 :    on_this->get_observer_list(list);
      32 [ +  - ][ +  + ]:       1090 :    for (int i = list.size(); i--; )
      33                 :            :    {
      34 [ +  - ][ -  + ]:        350 :      if ( (eo = dynamic_cast<GeomDataObserver*>(list.step_and_get()) ))
                 [ +  - ]
      35                 :        350 :         break;
      36                 :            :    }
      37         [ +  - ]:       1090 :    return eo;
      38                 :            : }
      39                 :            : 
      40                 :        370 : GeomDataObserver* GeomDataObserver::create( RefEntity* on_this ) {
      41                 :        370 :    GeomDataObserver* eo = get(on_this);
      42         [ -  + ]:        370 :    if (eo)
      43                 :          0 :      return eo;
      44                 :            : 
      45         [ +  - ]:        370 :    eo = new GeomDataObserver(on_this);
      46         [ +  - ]:        370 :    eo->register_observable(on_this);
      47                 :        370 :    return eo;
      48                 :            : }
      49                 :            : 
      50                 :         40 : void GeomDataObserver::notify_observer(const CubitEvent* event)
      51                 :            : {
      52         [ -  + ]:         40 :    const GeometryEvent* geom_event = dynamic_cast<const GeometryEvent*>(event);
      53                 :            : 
      54         [ +  - ]:         40 :    if(geom_event)
      55                 :            :    {
      56         [ -  + ]:         40 :      assert(geom_event->get_entity() == myRefEntity);
      57                 :            : 
      58         [ +  - ]:         40 :      switch (geom_event->get_type())
      59                 :            :      {
      60                 :            :        case GeometryEvent::GEOMETRY_TOPOLOGY_MODIFIED:
      61                 :            :        case GeometryEvent::TOPOLOGY_MODIFIED:
      62                 :            :        case GeometryEvent::GEOMETRY_MODIFIED:
      63                 :            :        case GeometryEvent::TOPOLOGY_ENTITY_DESTRUCTED:
      64                 :         40 :          break;
      65                 :            :        default:
      66                 :          0 :          return;
      67                 :            :      }
      68                 :            : 
      69                 :            :      /* don't call virtual functions or access
      70                 :            :         class data after this! */
      71         [ +  - ]:         40 :      delete this;
      72                 :            :    }
      73 [ +  - ][ +  - ]:       6540 : }
      74                 :            : 

Generated by: LCOV version 1.11