For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings


Need to speed up your development?
Have a look at our:

Samples & Tools


Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

Related pages

How exactly is the "SameParam" property defined for SameRange-edges ?

Fabian Hachenberg's picture

Hi, in the OCC docs it simply says (ShapeHealing documentation for the SameParam operator)
"This operator applies the computation SameParameter which ensures that various
representations of each edge (its 3d curve, the pcurve on each of the faces on which it lies)
give the same 3D point for the same parameter, within a given tolerance."

So let's say our curve3d is C3d(U) and our pcurve is Cp(U) and they both have the same parameter range [U1, U2]

Now I had a brief look into the ShapeAnalysis_Edge::ComputeDeviation routine, which does the following:
1. Calculate a set of U values in [U1, U2]
2. For each U value, calculate C3d(U) and get the "Extrema_LocateExtPC distance" to Cp(U)
3. For each U value, calculate Cp(U) and get the "Extrema_LocateExtPC distance" to C3d(U)
4. Return the maximum of those distances
I'm uncertain what distance Extrema_LocateExtPC returns. Is it the minimum distance? Then this would mean that SameParam is defined as follows

An edge with tolerance T has the SameParam property, if Max_{U}(Min_{V}(|C3d(U)-Cp(V)|), Min_{V}(|C3d(V)-Cp(U)|))

On the other hand, Roman Lygin wrote on his blog ( that
"- "same parameter" (BRep_Tool::SameParameter()), which is true when C(t) = S1(P1x(t), P1y(t)), i.e. any point along the edge corresponds to the same parameter on any of its curves."

This would imply the following definition

An edge with tolerance T has the SameParam property, if Max_{U}(|C3d(U)-Cp(U)|)

So what is the actual definition? Or does Extrema_LocateExtPC simply return a trivial distance between points? Then, of course, both definitions would be the same.