Version: 6.3.1
Public Member Functions | Private Attributes | Friends

SMESH_subMeshEventListener Class Reference

A base for objects reacting on submesh events. More...

#include <SMESH_subMeshEventListener.hxx>

Inheritance diagram for SMESH_subMeshEventListener:
Inheritance graph
[legend]

Public Member Functions

 SMESH_subMeshEventListener (bool isDeletable)
bool IsDeletable () const
virtual void ProcessEvent (const int event, const int eventType, SMESH_subMesh *subMesh, SMESH_subMeshEventListenerData *data, const SMESH_Hypothesis *hyp=0)
 Do something on a certain event.

Private Attributes

bool myIsDeletable
 if true, it will be deleted by SMESH_subMesh
std::set< SMESH_subMesh * > myBusySM
 to avoid infinite recursion via events

Friends

class SMESH_subMesh

Detailed Description

A base for objects reacting on submesh events.

Definition at line 45 of file SMESH_subMeshEventListener.hxx.


Constructor & Destructor Documentation

SMESH_subMeshEventListener.SMESH_subMeshEventListener ( bool  isDeletable)

Definition at line 51 of file SMESH_subMeshEventListener.hxx.

:myIsDeletable(isDeletable) {}

Member Function Documentation

bool SMESH_subMeshEventListener.IsDeletable ( ) const

Definition at line 52 of file SMESH_subMeshEventListener.hxx.

{ return myIsDeletable; }
void SMESH_subMeshEventListener::ProcessEvent ( const int  event,
const int  eventType,
SMESH_subMesh subMesh,
SMESH_subMeshEventListenerData data,
const SMESH_Hypothesis hyp = 0 
) [virtual]

Do something on a certain event.

Parameters:
event- algo_event or compute_event itself (of SMESH_subMesh)
eventType- ALGO_EVENT or COMPUTE_EVENT (of SMESH_subMesh)
subMesh- the submesh where the event occures
data- listener data stored in the subMesh
hyp- hypothesis, if eventType is algo_event

The base implementation (see SMESH_subMesh.cxx) translates CLEAN event to the subMesh stored in the listener data. Also it sends SUBMESH_COMPUTED event in case of successful COMPUTE event.

Parameters:
event- algo_event or compute_event itself
eventType- algo_event or compute_event
subMesh- the submesh where the event occures
data- listener data stored in the subMesh
hyp- hypothesis, if eventType is algo_event

The base implementation translates CLEAN event to the subMesh stored in listener data. Also it sends SUBMESH_COMPUTED event in case of successful COMPUTE event.

Reimplemented in VISCOUS._SrinkShapeListener, and VISCOUS._ViscousListener.

Definition at line 2143 of file SMESH_subMesh.cxx.

References SMESH_subMesh.CLEAN, SMESH_subMesh.COMPUTE, SMESH_subMesh.COMPUTE_EVENT, SMESH_subMesh.COMPUTE_OK, SMESH_subMeshEventListenerData.mySubMeshes, and SMESH_subMesh.SUBMESH_COMPUTED.

Referenced by VISCOUS._SrinkShapeListener.ProcessEvent().

{
  if ( data && !data->mySubMeshes.empty() &&
       eventType == SMESH_subMesh::COMPUTE_EVENT)
  {
    ASSERT( data->mySubMeshes.front() != subMesh );
    list<SMESH_subMesh*>::iterator smIt = data->mySubMeshes.begin();
    list<SMESH_subMesh*>::iterator smEnd = data->mySubMeshes.end();
    switch ( event ) {
    case SMESH_subMesh::CLEAN:
      for ( ; smIt != smEnd; ++ smIt)
        (*smIt)->ComputeStateEngine( event );
      break;
    case SMESH_subMesh::COMPUTE:
      if ( subMesh->GetComputeState() == SMESH_subMesh::COMPUTE_OK )
        for ( ; smIt != smEnd; ++ smIt)
          (*smIt)->ComputeStateEngine( SMESH_subMesh::SUBMESH_COMPUTED );
      break;
    default:;
    }
  }
}

Friends And Related Function Documentation

friend class SMESH_subMesh [friend]

Definition at line 49 of file SMESH_subMeshEventListener.hxx.


Field Documentation

std::set<SMESH_subMesh*> SMESH_subMeshEventListener.myBusySM [mutable, private]

to avoid infinite recursion via events

Definition at line 48 of file SMESH_subMeshEventListener.hxx.

if true, it will be deleted by SMESH_subMesh

Definition at line 47 of file SMESH_subMeshEventListener.hxx.

Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS