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:
deg[2] | Degree of the basis functions (in u and v) |
u_par_arr[] | Array of knots on the parameter line u |
v_par_arr[] | Array of knots on the parameter line v |
wghts[] | Array of weights for rational NURBS, otherwise NULL |
c_point_arr[][3] | Array of control points |
Definition:
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.