Bugs 20300 and 20361: Error occured during check of geometric coincidence.

This commit is contained in:
jfa 2009-05-28 12:23:34 +00:00
parent 8e1ef24a91
commit 72d99f0d90

View File

@ -266,7 +266,8 @@ Standard_Integer GEOMAlgo_Tools::FindSDShapes(const TopoDS_Shape& aE1,
else { else {
bIsDone=GEOMAlgo_Tools::ProjectPointOnShape(aP1, aE2, aP2, aCtx); bIsDone=GEOMAlgo_Tools::ProjectPointOnShape(aP1, aE2, aP2, aCtx);
if (!bIsDone) { if (!bIsDone) {
return 1; //return 1;
continue; // jfa BUG 20361
} }
aD2=aP1.SquareDistance(aP2); aD2=aP1.SquareDistance(aP2);
if(aD2<aTol2) { if(aD2<aTol2) {
@ -295,24 +296,20 @@ Standard_Boolean GEOMAlgo_Tools::ProjectPointOnShape(const gp_Pnt& aP1,
{ {
case TopAbs_EDGE: case TopAbs_EDGE:
{ {
// cout << "$$$ case TopAbs_EDGE" << endl;
const TopoDS_Edge& aE2 = TopoDS::Edge(aS); const TopoDS_Edge& aE2 = TopoDS::Edge(aS);
// //
if (BRep_Tool::Degenerated(aE2)) { // jfa if (BRep_Tool::Degenerated(aE2)) { // jfa
// cout << "$$$ Degenerated" << endl;
return Standard_True; return Standard_True;
} }
else { else {
Standard_Real f, l; Standard_Real f, l;
Handle(Geom_Curve) aC3D = BRep_Tool::Curve (aE2, f, l); Handle(Geom_Curve) aC3D = BRep_Tool::Curve (aE2, f, l);
if (aC3D.IsNull()) { if (aC3D.IsNull()) {
// cout << "$$$ aC3D.IsNull()" << endl;
return Standard_True; return Standard_True;
} }
bIsDone = aCtx.ProjectPointOnEdge(aP1, aE2, aT2); bIsDone = aCtx.ProjectPointOnEdge(aP1, aE2, aT2);
} }
if (!bIsDone) { if (!bIsDone) {
// cout << "$$$ !bIsDone" << endl;
return bIsDone; return bIsDone;
} }
// //