SALOME_TESTS/Grids/smesh/mesh_Projection_2D_00/A0

Fix association EDGE <-> closed EDGE
This commit is contained in:
eap 2014-04-28 17:41:59 +04:00
parent ba2a04ef34
commit e4f3043d7d
2 changed files with 6 additions and 2 deletions

View File

@ -1487,7 +1487,7 @@ bool StdMeshers_Prism_3D::computeWalls(const Prism_3D::TPrismTopo& thePrism)
// compute nodes on VERTEXes
SMESH_subMeshIteratorPtr smIt = tgtSM->getDependsOnIterator(/*includeSelf=*/false);
while ( smIt->more() )
smIt->next()->ComputeSubMeshStateEngine( SMESH_subMesh::COMPUTE );
smIt->next()->ComputeStateEngine( SMESH_subMesh::COMPUTE );
// project segments
DBGOUT( "COMPUTE H edge (proj) " << tgtSM->GetId());
projector1D->myHyp.SetSourceEdge( TopoDS::Edge( srcSM->GetSubShape() ));

View File

@ -1169,9 +1169,13 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the
RETURN_BAD_RESULT("Different nb of vertices");
}
if ( vMap1.Extent() == 1 ) {
if ( vMap1.Extent() == 1 || vMap2.Extent() == 1 ) {
InsertAssociation( vMap1(1), vMap2(1), theMap );
if ( theShape1.ShapeType() == TopAbs_EDGE ) {
if ( vMap1.Extent() == 2 )
InsertAssociation( vMap1(2), vMap2(1), theMap );
else if ( vMap2.Extent() == 2 )
InsertAssociation( vMap2(2), vMap1(1), theMap );
InsertAssociation( theShape1, theShape2, theMap );
return true;
}