fix previous wrong integration

This commit is contained in:
ana 2015-05-07 12:35:19 +03:00
parent fc0c585f17
commit 57c804a2bf

View File

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