Fix regressions bugs_14/P9 (Prism 3D) and bugs_19/X1 (Projection 2D)

This commit is contained in:
eap 2015-05-06 20:05:12 +03:00
parent 548b7c33ef
commit 26862b255f
2 changed files with 11 additions and 9 deletions

View File

@ -905,7 +905,7 @@ bool StdMeshers_Prism_3D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape& theSh
return error( err );
}
}
return true;
return error( COMPERR_OK );
}
//================================================================================

View File

@ -394,15 +394,16 @@ namespace {
{
double f,l;
Handle(Geom2d_Curve) c1 = BRep_Tool::CurveOnSurface( E1, F, f, l );
gp_Pnt2d uvLast1 = c1->Value( E1.Orientation() == TopAbs_REVERSED ? f : l );
gp_Pnt2d uvFirst1 = c1->Value( f );
gp_Pnt2d uvLast1 = c1->Value( l );
Handle(Geom2d_Curve) c2 = BRep_Tool::CurveOnSurface( E2, F, f, l );
gp_Pnt2d uvFirst2 = c2->Value( f );
gp_Pnt2d uvLast2 = c2->Value( l );
double tol2 = 1e-5 * uvLast2.SquareDistance( uvFirst2 );
gp_Pnt2d uvFirst2 = c2->Value( E2.Orientation() == TopAbs_REVERSED ? l : f );
double tol2 = Max( Precision::PConfusion() * Precision::PConfusion(),
1e-5 * uvLast1.SquareDistance( uvFirst1 ));
return (( uvLast1.SquareDistance( uvFirst2 ) < tol2 ) ||
( uvLast1.SquareDistance( uvLast2 ) < tol2 ));
return (( uvFirst2.SquareDistance( uvFirst1 ) < tol2 ) ||
( uvFirst2.SquareDistance( uvLast1 ) < tol2 ));
}
//================================================================================
@ -441,7 +442,7 @@ namespace {
for ( size_t iW = 0; iW < srcWires.size(); ++iW )
{
// check ori
bool reverse = false;
//bool reverse = false;
StdMeshers_FaceSidePtr srcWire = srcWires[iW];
// for ( int iE = 0; iE < srcWire->NbEdges(); ++iE )
// {
@ -486,7 +487,8 @@ namespace {
{
list< TopoDS_Edge >::iterator eIt = tgtEdges.begin();
std::advance( eIt, index-1 );
eIt->Reverse();
if ( are2dConnected( tgtEdges.back(), *eIt, tgtFace ))
eIt->Reverse();
}
else
{