13 void solve_straight();
14 void solve_polygonal();
15 void p_and_tfrac_from_t(
float t,
bool loop,
size_t& p,
float& tfrac)
const;
16 [[nodiscard]]
auto evaluate(
float t,
bool loop)
const -> float;
17 [[nodiscard]]
auto evaluate_derivative(
float t,
bool loop)
const -> float;
18 [[nodiscard]]
auto evaluate_second_derivative(
float t,
bool loop)
const
20 [[nodiscard]]
auto evaluate_third_derivative(
float t,
bool loop)
const
22 void set_point(
size_t i,
float v);
23 void set_coefficients(
size_t i,
float b,
float c,
float d);
24 void get_coefficients(
size_t i,
float& b,
float& c,
float& d)
const;
25 void set_point_and_coefficients(
size_t i,
30 void get_point_and_coefficients(
size_t i,
35 void resize(
size_t s);
36 [[nodiscard]]
auto size()
const -> size_t;
37 [[nodiscard]]
auto empty()
const -> bool;
38 float m_spatial_extent{ 0.0F };
41 auto check_minimum_size() -> bool;
42 void prep_inner(
size_t last, std::vector<float>& results);
43 void set_results(
size_t last,
44 std::vector<float>& diagonals,
45 std::vector<float>& results);
51 std::vector<SplinePoint> m_points;
64 void evaluate(
float t, std::vector<float>& v)
const;
65 void evaluate_derivative(
float t, std::vector<float>& v)
const;
66 void evaluate_second_derivative(
float t, std::vector<float>& v)
const;
67 void evaluate_third_derivative(
float t, std::vector<float>& v)
const;
69 void evaluate_derivative(
float t,
RageVector3& v)
const;
70 void set_point(
size_t i,
const std::vector<float>& v);
71 void set_coefficients(
size_t i,
72 const std::vector<float>& b,
73 const std::vector<float>& c,
74 const std::vector<float>& d);
75 void get_coefficients(
size_t i,
76 std::vector<float>& b,
77 std::vector<float>& c,
78 std::vector<float>& d);
79 void set_spatial_extent(
size_t i,
float extent);
80 auto get_spatial_extent(
size_t i) -> float;
81 void resize(
size_t s);
82 [[nodiscard]]
auto size()
const -> size_t;
83 void redimension(
size_t d);
84 [[nodiscard]]
auto dimension()
const -> size_t;
85 [[nodiscard]]
auto empty()
const -> bool;
87 [[nodiscard]]
auto get_max_t()
const ->
float
90 return static_cast<float>(size());
92 return static_cast<float>(size() - 1);
94 using spline_cont_t = std::vector<CubicSpline>;
95 void set_loop(
bool l);
96 [[nodiscard]]
auto get_loop()
const -> bool;
97 void set_polygonal(
bool p);
98 [[nodiscard]]
auto get_polygonal()
const -> bool;
99 void set_dirty(
bool d);
100 [[nodiscard]]
auto get_dirty()
const -> bool;
101 bool m_owned_by_actor{
false };
103 void PushSelf(lua_State* L);
106 bool m_loop{
false };
107 bool m_polygonal{
false };
108 bool m_dirty{
true };
109 spline_cont_t m_splines;