| 26 | static thread_local std::vector<UV> g_uv_buffer; |
| 27 | |
| 28 | static LN_NurbsSurface FromCAPI(LN_NurbsSurface_C c) { |
| 29 | LN_NurbsSurface s; |
| 30 | s.DegreeU = c.degree_u; |
| 31 | s.DegreeV = c.degree_v; |
| 32 | s.KnotVectorU.assign(c.knot_vector_u, c.knot_vector_u + c.knot_vector_count_u); |
| 33 | s.KnotVectorV.assign(c.knot_vector_v, c.knot_vector_v + c.knot_vector_count_v); |
| 34 | s.ControlPoints.resize(c.cp_rows, std::vector<XYZW>(c.cp_cols)); |
| 35 | for (int i = 0; i < c.cp_rows; ++i) { |
| 36 | for (int j = 0; j < c.cp_cols; ++j) { |
| 37 | XYZW_C cp = c.control_points[i * c.cp_cols + j]; |
| 38 | s.ControlPoints[i][j] = XYZW(cp.wx, cp.wy, cp.wz, cp.w); |
| 39 | } |
| 40 | } |
| 41 | return s; |
| 42 | } |
| 43 | |
| 44 | static LN_NurbsSurface_C ToCAPI(const LN_NurbsSurface& s) { |
| 45 | g_knot_u_buffer = s.KnotVectorU; |
no test coverage detected