What conditions are necessary to satisfy so two surfaces pass the GeometryBase.GeometryEquals() test??

I’m facing more errors with equility test: If same surface (taken form single face brep) is reparameterized, equality start to fail again. What’s going on? could someone confirm if this is a BUG or is it me? How can I check if two “equal” but reparameterized surfaces are effectively the same?

(input parameters are set as “No Type Hint” to avoid any intromision)

I always has believed that reparameterization is a “geometrically neutral” operation. Why is a bad idea?
At the moment, I used to have more meaningful parameter values, but certainly a srf.Interval.T0 / T1 would be enough, without the need for a reparameterization.

So, you think that GeometryEquals test could be failing because of this reparameterization?

Poorly parameterized objects may not intersect and trim properly when combined with other objects. “Poorly parameterized” means the curve’s domain or the surface’s u or v spaces are tiny or huge compared to the size of the object.

When curves and surfaces are parameterized with a [0,1] domain, both the accuracy and the precision of geometric calculations like intersections and closest points are reduced, sometimes dramatically. Ideally the domain of a curve is close to it’s length and the domains of a surface is close to is average breadth in the appropriate direction.

We try to have parameterization match the length of a curve or some measure of the width of the surface. Derivative information is better if we do it this way.

If you need normalized parameters, for some calculation, etc., then use the methods on Interval for converting from “regular” parameters to normalized, and vice versa. These are simple math calculations, and a far better approach than re-parameterizing curves and surfaces.

Regarding the GeometryEquals issue, this has been fixed. See the link to the issue above for details.

Thanks Dale for your explanation, it was very instructive and of great interest.
Also thanks for solving the issue, nice to see the sdk getting better and better.