Line.ToNurbsCurve rhino 5,6 vs rhino 7

I noticed that there has been a change in behavior of Line.ToNurbsCurve() in Rhino 7 (I have SR9).

On Rhino 5 and 6, when this method was called - the domain of the newly created curve always remained normalized: from 0 to 1.
While on Rhino 7 (SR9), it’s not.
For example:

ln = Rhino.Geometry.Line(  Rhino.Geometry.Point3d(0,0,0), Rhino.Geometry.Point3d(4,0,0)  )
crv = ln.ToNurbsCurve()
print crv.Domain

On Rhino 5 and 6, the last line always prints 0,1
On Rhino 7 it prints 0,4.

This is not a huge problem, I already set up a Rhino version check in the code.
I was just curious why it happened.

I did all testing on Rhino for windows.

I would guess that the V7 function is more “expected” - if you make a line in Rhino from 0 to 4 with the native line tool, you get this:

image

So the V7 version is not automatically normalizing the domain. Which leaves the programmer the flexibility to normalize afterwards if they wish, and not if they don’t want to do so for some reason.

2 Likes