A base for objects reacting on submesh events. More...
#include <SMESH_subMeshEventListener.hxx>

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 |
A base for objects reacting on submesh events.
Definition at line 45 of file SMESH_subMeshEventListener.hxx.
| SMESH_subMeshEventListener.SMESH_subMeshEventListener | ( | bool | isDeletable | ) |
Definition at line 51 of file SMESH_subMeshEventListener.hxx.
:myIsDeletable(isDeletable) {}
| 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.
| 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.
| 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:;
}
}
}
friend class SMESH_subMesh [friend] |
Definition at line 49 of file SMESH_subMeshEventListener.hxx.
std::set<SMESH_subMesh*> SMESH_subMeshEventListener.myBusySM [mutable, private] |
to avoid infinite recursion via events
Definition at line 48 of file SMESH_subMeshEventListener.hxx.
bool SMESH_subMeshEventListener.myIsDeletable [private] |
if true, it will be deleted by SMESH_subMesh
Definition at line 47 of file SMESH_subMeshEventListener.hxx.