RBN file structure
RBN files contain one or more objects, placed one after another.
Every object is a sexp, containing the object type as the first
element, and other data as subsequent elements.
The following will describe the object types.
(:BSPLINE-CURVE
:DEGREE deg
:KNOT-VECTOR (u_0 u_1 ... u_k)
:CONTROL-POINTS ((x_0 y_0 [z_0]) (x_1 y_1 [z_1]) ... (x_n y_n [z_n])))
(:BSPLINE-SURFACE
:DEGREES (deg_u deg_v)
:KNOT_VECTORS ((u_0 u_1 ... u_k) (v_0 v_1 ... v_l))
:CONTROL-NET (((x_00 y_00 z_00) (x_01 y_01 z_01) ... (x_0m y_0m z_0m))
((x_10 y_10 z_10) (x_11 y_11 z_11) ... (x_1m y_1m z_1m))
. . .
. . .
. . .
((x_n0 y_n0 z_n0) (x_n1 y_n1 z_n1) ... (x_nm y_nm z_nm))))
Multiple whitespaces are treated as one. The numbers can be given as
single-and double-precision floating point numbers:
E.g. 1 = 1.0 = 1.0f0 (single precision), 1.0d0 (double precision).