3 #include <ossia/detail/config.hpp>
4 #define TINYSPLINE_API OSSIA_EXPORT
14 void ts_int_deboornet_init(
tsDeBoorNet* _deBoorNet_);
21 void ts_int_bspline_init(
tsBSpline* spline);
24 tsError ts_int_bspline_eval_woa(
33 template <std::
size_t N>
41 ts_int_bspline_init(&m_spline);
42 ts_int_deboornet_init(&m_net);
53 operator bool() const noexcept {
return m_net.
pImpl; }
55 void set_points(
const tsReal* points, std::size_t numPoints) noexcept
64 ts_int_bspline_init(&m_spline);
69 ts_int_deboornet_init(&m_net);
70 ts_int_deboornet_new(&m_spline, &m_net, &status);
73 std::array<tsReal, N> evaluate(
double pos)
const noexcept
75 std::array<tsReal, N> res = {};
78 if(ts_int_bspline_eval_woa(&m_spline, pos, &m_net, &status) != 0)
87 memcpy(res.data(), ts_int_deboornet_access_result(&m_net), bytes);
constexpr OSSIA_INLINE auto min(const T a, const U b) noexcept -> typename std::conditional<(sizeof(T) > sizeof(U)), T, U >::type
min function tailored for values
Definition: math.hpp:125
Definition: tinyspline.h:718
Definition: tinyspline.h:1308
struct tsDeBoorNetImpl * pImpl
Definition: tinyspline.h:1309
Definition: tinyspline.h:477
tsError TINYSPLINE_API ts_bspline_new(size_t num_control_points, size_t dimension, size_t degree, tsBSplineType type, tsBSpline *spline, tsStatus *status)
Definition: tinyspline.c:464
tsError TINYSPLINE_API ts_bspline_set_control_points(tsBSpline *spline, const tsReal *ctrlp, tsStatus *status)
Definition: tinyspline.c:242
void TINYSPLINE_API ts_deboornet_free(tsDeBoorNet *net)
Definition: tinyspline.c:735
void TINYSPLINE_API ts_bspline_free(tsBSpline *spline)
Definition: tinyspline.c:573
tsError
Definition: tinyspline.h:426
double tsReal
Definition: tinyspline.h:213
@ TS_CLAMPED
Definition: tinyspline.h:647
size_t TINYSPLINE_API ts_deboornet_sof_result(const tsDeBoorNet *net)
Definition: tinyspline.c:667