OSL_SHADEOP void osl_spline_dvdfdv(void *out, const char *spline_, void *x, Vec3 *knots, int knot_count) { const Spline::SplineBasis *spline = Spline::getSplineBasis(USTR(spline_)); Spline::spline_evaluate<Dual2<Vec3>, Dual2<float>, Dual2<Vec3>, Vec3, true> (spline, DVEC(out), DFLOAT(x), knots, knot_count); }
OSL_SHADEOP void osl_spline_dvfdv(void *out, const char *spline_, void *x, Vec3 *knots, int knot_count, int knot_arraylen) { const Spline::SplineBasis *spline = Spline::getSplineBasis(USTR(spline_)); Spline::spline_evaluate<Dual2<Vec3>, float, Dual2<Vec3>, Vec3, true> (spline, DVEC(out), *(float *)x, knots, knot_count, knot_arraylen); }