I am using OpenCASCADE 6.7.1 and doing some boolean operations on solids. Right now I'm facing a very strange behaviour which I think likely is a bug.
What I found out is when an edge is split into two during fusion there are two edges are created, both sharing the same curve. Obviously, they have different parameter ranges. Seems like these parameter ranges are stored in two different places - in the vertices (accessed through BRep_Tool::Parameter(Edge, Vertex), and in the curve itself - I got them using BRep_Tool::Curve(Edge, outFirstParam, outLastParam). And they are mixed up!
I mean first edge has vertex parameters, say, [0, 0.3] and the second one - vertex params [0.5, 1.0] - the part in-between [0.3, 0.5] being cut off by the solid being fused with. BUT! The curve parameters are just the opposite - the first edge has them as [0.5, 1.0] and the second one - [0, 0.3]!
Any thoughts would be appreciated,