mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-26 09:20:34 +05:00
#16914 EDF 19401 - Wrong quadratic mesh (bis)
Bug: SetEventListener() not called when a sub-algo assigned
This commit is contained in:
parent
ecea056f61
commit
eacfc191eb
@ -17,7 +17,7 @@ hypothesis.
|
|||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
.. centered::
|
.. centered::
|
||||||
A mesh of a river model to the left and of a ring-face to the right
|
A mesh of a river model (to the left) and of a ring-face (to the right)
|
||||||
|
|
||||||
The algorithm provides proper shape of quadrangles by constructing Medial
|
The algorithm provides proper shape of quadrangles by constructing Medial
|
||||||
Axis between sinuous borders of the face and using it to
|
Axis between sinuous borders of the face and using it to
|
||||||
|
@ -878,8 +878,11 @@ SMESH_Hypothesis::Hypothesis_Status
|
|||||||
const SMESH_Hypothesis * prevAlgo = _father->GetHypothesis( this, f, true );
|
const SMESH_Hypothesis * prevAlgo = _father->GetHypothesis( this, f, true );
|
||||||
if (prevAlgo &&
|
if (prevAlgo &&
|
||||||
string( algo->GetName()) != prevAlgo->GetName())
|
string( algo->GetName()) != prevAlgo->GetName())
|
||||||
|
{
|
||||||
|
oldAlgoState = NO_ALGO; // force setting event listener (#16648)
|
||||||
modifiedHyp = true;
|
modifiedHyp = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
setAlgoState(MISSING_HYP);
|
setAlgoState(MISSING_HYP);
|
||||||
break;
|
break;
|
||||||
|
@ -758,12 +758,24 @@ protected:
|
|||||||
void StdMeshers_RadialQuadrangle_1D2D::SubmeshRestored(SMESH_subMesh* faceSubMesh)
|
void StdMeshers_RadialQuadrangle_1D2D::SubmeshRestored(SMESH_subMesh* faceSubMesh)
|
||||||
{
|
{
|
||||||
if ( !faceSubMesh->IsEmpty() )
|
if ( !faceSubMesh->IsEmpty() )
|
||||||
{
|
SetEventListener( faceSubMesh );
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
/*!
|
||||||
|
* \brief Sets event listener to a submesh
|
||||||
|
* \param subMesh - submesh where algo is set
|
||||||
|
*
|
||||||
|
* This method is called when a submesh gets HYP_OK algo_state.
|
||||||
|
*/
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
|
void StdMeshers_RadialQuadrangle_1D2D::SetEventListener(SMESH_subMesh* faceSubMesh)
|
||||||
|
{
|
||||||
for ( TopExp_Explorer e( faceSubMesh->GetSubShape(), TopAbs_EDGE ); e.More(); e.Next() )
|
for ( TopExp_Explorer e( faceSubMesh->GetSubShape(), TopAbs_EDGE ); e.More(); e.Next() )
|
||||||
{
|
{
|
||||||
TEdgeMarker::markEdge( TopoDS::Edge( e.Current() ), faceSubMesh );
|
TEdgeMarker::markEdge( TopoDS::Edge( e.Current() ), faceSubMesh );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
@ -50,14 +50,13 @@ public:
|
|||||||
|
|
||||||
virtual bool Evaluate(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape,
|
virtual bool Evaluate(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape,
|
||||||
MapShapeNbElems& aResMap);
|
MapShapeNbElems& aResMap);
|
||||||
/*!
|
|
||||||
* \brief Allow algo to do something after persistent restoration
|
// Allow algo to do something after persistent restoration
|
||||||
* \param subMesh - restored submesh
|
|
||||||
*
|
|
||||||
* This method is called only if a submesh has HYP_OK algo_state.
|
|
||||||
*/
|
|
||||||
virtual void SubmeshRestored(SMESH_subMesh* subMesh);
|
virtual void SubmeshRestored(SMESH_subMesh* subMesh);
|
||||||
|
|
||||||
|
// Sets event listener to a submesh
|
||||||
|
virtual void SetEventListener(SMESH_subMesh* subMesh);
|
||||||
|
|
||||||
virtual bool IsApplicableToShape(const TopoDS_Shape & shape, bool toCheckAll) const
|
virtual bool IsApplicableToShape(const TopoDS_Shape & shape, bool toCheckAll) const
|
||||||
{
|
{
|
||||||
return IsApplicable( shape, toCheckAll );
|
return IsApplicable( shape, toCheckAll );
|
||||||
|
Loading…
Reference in New Issue
Block a user