We need better names for single-span and multi-span curves and surfaces

Rhino Properties panel distinguishes surfaces from polysurfaces, but it does not distinguish single-span curves from multi-span curves. I believe that the Properties panel should make the following distinctions:
Single-span curves should be called Bezier curves.
Multi-span curves should be called polycurves.
A curve should mean a Bezier curve or a polycurve.
Single-span surfaces should be called Bezier surfaces.
Multi-span surfaces are already called polysurfaces - that is OK.
A surface should mean a Bezier surface or a polysurface.

Polycurve already has a meaning in Rhino. A polycurve is two or more individual curves joined together. The individual curves do not have to be the same degree, nor does the continuity have to be any more than position. Each individual curve can be either single or multispan.

Incorrect. A single surface, including multispan surfaces, in called surfaces in Rhino. A polysurface in Rhino is two or more surfaces, which each may be single or multispan surfaces, joined together. Joining does not merge the math descriptions of the surfaces together.

What would be gained by changing long established terminology?

This is not the case. Polysurfaces are multiple surfaces joined together - these can be exploded into multiple single surfaces. Similar with polycurves. If you want more information about objects structure, use the What command, or if you are more ambitious, the List command.

Also, I am not sure what to make of this -

But, that’s OK, I don’t foresee renaming things. On the other hand Properties being more granular in its descriptions might be useful in some cases.


Polycurve exists already behind the scenes. http://developer.rhino3d.com/api/RhinoCommonWin/html/T_Rhino_Geometry_PolyCurve.htm

They do not have to be renamed, but names of curves should be more informative. If this is a polycurve, the Property panel should call it a polycurve.

Properties > Details already describe polycurves as polycurves. Example (bolding added):

Valid curve.
Open polycurve with 3 curve segments.
Segment 1:
Open NURBS curve
start = (-25.2163,-0.370223,0)
end = (8.92648,7.11651,0)
degree = 3
control points: non-rational, count=5
knots: uniform (delta=19.6408), domain = 0 to 39.2815
clamped at start and end
Segment 2:
start = (8.92648,7.11651,0)
end = (15.5082,-6.37606,0)
domain = 39.2815 to 54.2938
line length = 15.0123
Segment 3:
Open NURBS curve
start = (15.5082,-6.37606,0)
end = (-13.8628,-7.93922,0)
degree = 3
control points: non-rational, count=6
knots: uniform (delta=11.4143), domain = 54.2938 to 88.5367
clamped at start and end

The Properties panel distinguishes surfaces from polysurfaces, so it should also distinguish curves from polycurves.

Although note that polycurves are not the same thing as multi-span curves. A single nurbs curve can contain any number of spans while not being a polycurve at all. Also a circular arc doesn’t really have ‘spans’ at all unless you convert it into a Nurbs curve first in which case the number of spans depends on the sweep-angle.

There is a fundamental difference in complexity between polysurfaces and polycurves though. When you start to glue various faces together into a single shape the topology of that shape can become really complicated. Closed or open? Or maybe even non-manifold? Is the normal direction consistent across all faces? Can the normal direction even be consistent? How about uv parameterisations, do adjacent faces have the same handedness? There’s so many ways in which a polysurface can be utterly different from a single surface it doesn’t even bear thinking about.

Whereas a polycurve is always just like a regular curve. It has a single start-point. A single end-point. It has a contiguous domain within which the curve exists and outside of which it doesn’t. It is always topologically identical to a line segment.

What I’m saying is that polycurves are not topologically complicated the way polysurfaces can be, all that matters are the geometric properties, which would be identical whether the curve is a polycurve or a single nurbscurve.

If anything I’d rather see some details about the number and character of discontinuities on the curve, rather than which SDK class is used to store the shape at this particular moment.

1 Like