1 #ifndef GRAIL_BEZIER_SPLINE_H
2 #define GRAIL_BEZIER_SPLINE_H
5 #include "../../libs/vector2/vector2.h"
14 BezierSpline(
const std::vector<Vector2>& points,
const std::vector<Vector2>& tangents,
float epsilon = 0.001f);
15 BezierSpline(std::vector<Vector2>&& points, std::vector<Vector2>&& tangents,
float epsilon = 0.001f);
17 virtual float Sample(
float argument)
const override;
19 std::vector<Vector2>& GetPoints();
20 const std::vector<Vector2>& GetPoints()
const;
22 std::vector<Vector2>& GetTangents();
23 const std::vector<Vector2>& GetTangents()
const;
25 CurveTypeId GetTypeId()
const override;
28 Vector2 BezierInterpolation(
const std::size_t beginIndex,
const std::size_t endIndex,
float t)
const;
30 std::vector<Vector2> points{};
31 std::vector<Vector2> tangents{};
34 float leftGradient = 0.0f;
35 float leftIntercept = 0.0f;
36 float rightGradient = 0.0f;
37 float rightIntercept = 0.0f;
Definition: BezierSpline.hh:12
virtual float Sample(float argument) const override
Sample - User-defined method which processes provided value (currently vector of values - multidemens...
Definition: BezierSpline.cpp:29
The Curve class - Defines objects transforming one value into the other.
Definition: Curve.hh:17