PAL13473 (Build repetitive mesh):

in CheckHypothesis(), check that src shape is not equal to
	target one in the same mesh
This commit is contained in:
eap 2006-12-08 14:48:16 +00:00
parent 4a217d2243
commit 44a5da549d
2 changed files with 23 additions and 6 deletions

View File

@ -132,11 +132,24 @@ bool StdMeshers_Projection_1D::CheckHypothesis(SMESH_Mesh&
!TAssocTool::IsSubShape( _sourceHypo->GetTargetVertex(), aShape ) || !TAssocTool::IsSubShape( _sourceHypo->GetTargetVertex(), aShape ) ||
!TAssocTool::IsSubShape( _sourceHypo->GetSourceVertex(), !TAssocTool::IsSubShape( _sourceHypo->GetSourceVertex(),
_sourceHypo->GetSourceEdge() )) _sourceHypo->GetSourceEdge() ))
{
aStatus = SMESH_Hypothesis::HYP_BAD_PARAMETER; 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 // check source edge
if ( !TAssocTool::IsSubShape( _sourceHypo->GetSourceEdge(), srcMesh )) if ( !TAssocTool::IsSubShape( _sourceHypo->GetSourceEdge(), srcMesh ) ||
aStatus = SMESH_Hypothesis::HYP_BAD_PARAMETER; ( srcMesh == tgtMesh && aShape == _sourceHypo->GetSourceEdge() ))
{
aStatus = HYP_BAD_PARAMETER;
SCRUTE((TAssocTool::IsSubShape( _sourceHypo->GetSourceEdge(), srcMesh )));
SCRUTE((srcMesh == tgtMesh));
SCRUTE(( aShape == _sourceHypo->GetSourceEdge() ));
}
} }
else else
{ {

View File

@ -133,10 +133,10 @@ bool StdMeshers_Projection_2D::CheckHypothesis(SMESH_Mesh&
!TAssocTool::IsSubShape( edge, srcMesh ) || !TAssocTool::IsSubShape( edge, srcMesh ) ||
!TAssocTool::IsSubShape( edge, _sourceHypo->GetSourceFace() )) !TAssocTool::IsSubShape( edge, _sourceHypo->GetSourceFace() ))
{ {
theStatus = HYP_BAD_PARAMETER;
SCRUTE((edge.IsNull())); SCRUTE((edge.IsNull()));
SCRUTE((TAssocTool::IsSubShape( edge, srcMesh ))); SCRUTE((TAssocTool::IsSubShape( edge, srcMesh )));
SCRUTE((TAssocTool::IsSubShape( edge, _sourceHypo->GetSourceFace() ))); SCRUTE((TAssocTool::IsSubShape( edge, _sourceHypo->GetSourceFace() )));
theStatus = HYP_BAD_PARAMETER;
} }
else else
{ {
@ -147,17 +147,21 @@ bool StdMeshers_Projection_2D::CheckHypothesis(SMESH_Mesh&
!TAssocTool::IsSubShape( edge, tgtMesh ) || !TAssocTool::IsSubShape( edge, tgtMesh ) ||
!TAssocTool::IsSubShape( edge, theShape )) !TAssocTool::IsSubShape( edge, theShape ))
{ {
theStatus = HYP_BAD_PARAMETER;
SCRUTE((edge.IsNull())); SCRUTE((edge.IsNull()));
SCRUTE((TAssocTool::IsSubShape( edge, tgtMesh ))); SCRUTE((TAssocTool::IsSubShape( edge, tgtMesh )));
SCRUTE((TAssocTool::IsSubShape( edge, theShape ))); SCRUTE((TAssocTool::IsSubShape( edge, theShape )));
theStatus = HYP_BAD_PARAMETER;
} }
} }
} }
// check a source face // check a source face
if ( !TAssocTool::IsSubShape( _sourceHypo->GetSourceFace(), srcMesh )) { if ( !TAssocTool::IsSubShape( _sourceHypo->GetSourceFace(), srcMesh ) ||
MESSAGE("Bad source face"); ( srcMesh == tgtMesh && theShape == _sourceHypo->GetSourceFace() ))
{
theStatus = HYP_BAD_PARAMETER; theStatus = HYP_BAD_PARAMETER;
SCRUTE((TAssocTool::IsSubShape( _sourceHypo->GetSourceFace(), srcMesh )));
SCRUTE((srcMesh == tgtMesh));
SCRUTE(( theShape == _sourceHypo->GetSourceFace() ));
} }
} }
else else