!TAssocTool::IsSubShape( _sourceHypo->GetTargetVertex(), aShape ) ||
!TAssocTool::IsSubShape( _sourceHypo->GetSourceVertex(),
_sourceHypo->GetSourceEdge() ))
+ {
aStatus = SMESH_Hypothesis::HYP_BAD_PARAMETER;
+ SCRUTE((TAssocTool::IsSubShape( _sourceHypo->GetSourceVertex(), srcMesh )));
+ SCRUTE((TAssocTool::IsSubShape( _sourceHypo->GetTargetVertex(), tgtMesh )));
+ SCRUTE((TAssocTool::IsSubShape( _sourceHypo->GetTargetVertex(), aShape ) ));
+ SCRUTE((TAssocTool::IsSubShape( _sourceHypo->GetSourceVertex(),
+ _sourceHypo->GetSourceEdge() )));
+ }
}
// check source edge
- if ( !TAssocTool::IsSubShape( _sourceHypo->GetSourceEdge(), srcMesh ))
- aStatus = SMESH_Hypothesis::HYP_BAD_PARAMETER;
+ if ( !TAssocTool::IsSubShape( _sourceHypo->GetSourceEdge(), srcMesh ) ||
+ ( srcMesh == tgtMesh && aShape == _sourceHypo->GetSourceEdge() ))
+ {
+ aStatus = HYP_BAD_PARAMETER;
+ SCRUTE((TAssocTool::IsSubShape( _sourceHypo->GetSourceEdge(), srcMesh )));
+ SCRUTE((srcMesh == tgtMesh));
+ SCRUTE(( aShape == _sourceHypo->GetSourceEdge() ));
+ }
}
else
{
void StdMeshers_Projection_1D::SetEventListener(SMESH_subMesh* subMesh)
{
- if ( _sourceHypo && ! _sourceHypo->GetSourceEdge().IsNull() )
- {
- SMESH_Mesh* srcMesh = _sourceHypo->GetSourceMesh();
- if ( !srcMesh )
- srcMesh = subMesh->GetFather();
-
- SMESH_subMesh* srcEdgeSM =
- srcMesh->GetSubMesh( _sourceHypo->GetSourceEdge() );
-
- if ( srcEdgeSM != subMesh )
- subMesh->SetEventListener( new SMESH_subMeshEventListener(),
- SMESH_subMeshEventListenerData::MakeData( subMesh ),
- srcEdgeSM );
- }
+ TAssocTool::SetEventListener( subMesh,
+ _sourceHypo->GetSourceEdge(),
+ _sourceHypo->GetSourceMesh() );
}
-