Would prnCurve->Domain() return the edge interval? (A curve can be used by multiple edges.)
rnCurveInterval.MakeIncreasing(). Does it simply swap the interval to make the interval increasing? (If so, it means that MakeIncreasing() actually “reverse” the curve and the bCurveSenseInFace would be wrong.)
bCurveSenseInFace = !(prnTrim->m_bRev3d). Is it the correct method to check whether the curve and the loop lying on the specified face have the same direction (sense).
Thank you for the ON_Interval::MakeIncreasing code, and the code helps us fix a bug. It does “reverse” the curve.
Does ON_BrepEdge::Domain() just call ON_Curve::Domain()? If so, it may actually return the curve interval, which would be a bug (I cannot find ON_BrepEdge::Domain() in the head file.)
ON_Curve::Domain() is a virtual function, declared in opennurbs_curve.h. You won’t find it declared on ON_BrepEdge, as it is declared on the base class.