Given that the reader probably understands more about the Math of NURBS than I do, the reader will also understand that in general, *true* NURBS Curves will not touch their control-points. My own earlier misperception of that subject came through the use of the (now-defunct) application ‘TrueSpace’, which arbitrarily labeled objects as NURBS, which were really not that.

It should also be understood, that classic cubic splines are not NURBS either.

Given this understanding, a question might arise as to why the actual application “Ayam” is capable of taking an arbitrary CSG-primitive, and converting that into a NURBS-Patch.

And there are really several separate cases, in which this is possible:

(Last Updated 08/20/2017, 22h05 : )

- The Order of the NURBS may only be 2, given that the application in question has fully-general Math to work with NURBS. In that case, by default, the position of 1 point along a curve will be determined by 2 adjacent Control-Points, and at one exact parameter-value, will be controlled by only 1 Control-Point. This is a simpler type of NURBS, which will show as straight lines between the CPs, and which touches each CP. It’s useful to convert a Cube.
- True NURBS have a Knot-Vector, which states possible repetitions (“Multiplicity”), and which the application in question does implement. When the Knot has a Multiplicity equal to the Order of the NURBS Curve, it takes over the position of the Curve completely. However, a set of three NURBS Control Points can form a linear, equidistant sequence, with each CP having a Multiplicity equal to the Order minus one. The two NCurve CPs that form the endpoints can correspond to the
*ICurve Handles*, while the NCurve CP in the middle can correspond to the*ICurve CP*. What will happen is that the NCurve will touch the CP in the middle, but not the ones at the ends. This is similar to how a circle is formed, with an Order of 3. - A NURBS-Surface – i.e., a -Patch – is a special case derived from a Curve, that has the two parameters U and V, where a Curve only used to have one parameter. The CPs are sometimes conceived to form a grid with rectangular topology. It seems entirely plausible to me, that the Order along U may be different from the Order along V, and then having a linear Order along one parameter, may be the correct way to convert a Cylinder or a Cone. In that case, a Disk may simply be a special case of a Cone, where one parameter forms a circle, and the other, linear parameter defines either the radius or the height – with a single CP defining either the center or the vertex.
- Most plausibly, if the NURBS-Patch is to have a different Order along U from its Order along V, it should also have two separate Knot Vectors.

Dirk

A way to compute single, shared Handles automatically could be:

H1 = P2 – (1/4)( P3 – P1 )

If each ICurve CP is to have two Handles unto itself, a way to compute those automatically could be:

H2- = P2 – (1/6)( P3 – P1 )

H2+ = P2 + (1/6)( P3 – P1 )