# Different points of edge in case getting by TopExp_Explorer and getting by BRep_Tool::Curve

Hello Team,
Completely strange case. Is it really possible in OCCT (7.5) ?
Points p1 and pp1 (also p2 and pp2) are shifted to each other.

__________________________
double leT1 = 0.0;
double leT2 = 0.0;
Handle_Geom_Curve hCurve = BRep_Tool::Curve(edge, leT1, leT2);
if (hCurve.IsNull())
{
return {};
}

const gp_Pnt p1 = hCurve->Value(leT1);
const gp_Pnt p2 = hCurve->Value(leT2);
___________________________
And
___________________________
TopTools_ListOfVertex listVertices;
CollectVertices(edge, listVertices);
const gp_Pnt pp1 = BRep_Tool::Pnt(listVertices.First());
const gp_Pnt pp2 = BRep_Tool::Pnt(listVertices.Last());
___________________________

Thank you.
With respects, Eugene. Could it be because of SetFuzzyValue in boolean operation ? It is completely correct if the distance from edge end point (according to its curve) to its end vertex is less than the vertex tolerance. And yes, it can be due to Fuzzy option of BO. Mikhail, I am surprised in one another moment. I set fuzzy value as 3.0, but result edge of Section operation has tolerance 5.81.

How could it be?

Thank you.
With respects, Eugene. It can be an effect of cumulated error. When we allow one vertex raise up two 3, another vertex the same, and the distance between them is less than 6 these vertices are merged with the new vertex tolerance increased to cover both spheres. It is not an error of the algorithm. Thank you, Mikhail!
It is clear. So, SetFuzzyValue we can use near tolerance of geometry objects.

With respects, Eugene.