-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
+
// SMESH SMESH : implementaion of SMESH idl descriptions
// File : StdMeshers_Propagation.cxx
// Module : SMESH
-
+//
#include "StdMeshers_Propagation.hxx"
#include "utilities.h"
#include "SMDS_SetIterator.hxx"
#include "SMESH_Algo.hxx"
+#include "SMESH_Gen.hxx"
#include "SMESH_HypoFilter.hxx"
#include "SMESH_Mesh.hxx"
#include "SMESH_subMesh.hxx"
#include <TopoDS.hxx>
#define DBGMSG(txt) \
-// cout << txt << endl;
+ // cout << txt << endl;
using namespace std;
oppSM->ComputeStateEngine( SMESH_subMesh::CLEAN );
oppData->SetState( IN_CHAIN );
DBGMSG( "set IN_CHAIN on " << oppSM->GetId() );
+ if ( oppSM->GetAlgoState() != SMESH_subMesh::HYP_OK )
+ // make oppSM check algo state
+ if ( SMESH_Algo* algo = mesh->GetGen()->GetAlgo( *mesh, anOppE ))
+ oppSM->AlgoStateEngine(SMESH_subMesh::ADD_FATHER_ALGO,algo);
}
else {
oppData->SetState( LAST_IN_CHAIN );
void PropagationMgr::Set(SMESH_subMesh * submesh)
{
+ if ( findData( submesh )) return;
DBGMSG( "PropagationMgr::Set() on " << submesh->GetId() );
EventListenerData* data = new PropagationMgrData();
submesh->SetEventListener( getListener(), data, submesh );