Example: NURBS Surface Data Format
Creo defines the NURBS surface by basis functions (in u and v), expandable arrays of knots, weights, and control points. The following illustration shows a Cubic NURBS surface.
Data format:
Degree of the basis functions (in u and v)
Array of knots on the parameter line u
Array of knots on the parameter line v
Array of weights for rational NURBS, otherwise NULL
Array of control points
k = degree in u

l = degree in v

N1 = number of knots in u, degree in u -2

N2 = number of knots in v, degree in v -2

Bi,k = basis function in u

Bj,l = basis function in v

wi,j = weights

Ci,j = control points (x,y,z) * wi,j
The weights and c_points_arr arrays represent matrices of size wghts[N1+1] [N2+1]and c_points_arr [N1+1] [N2+1]. Elements of the matrices are packed into arrays in row major order.