Thunderbots Project
Loading...
Searching...
No Matches
linear_spline2d.h
1#pragma once
2
3#include <vector>
4
5#include "software/geom/point.h"
6#include "software/geom/polynomial2d.h"
7#include "software/geom/spline2d.h"
8
14{
15 public:
16 LinearSpline2d() = delete;
25 explicit LinearSpline2d(const std::vector<Point>& points);
26
35 LinearSpline2d(const std::initializer_list<Point>& points);
36
37 const Point getValueAt(double val) const override;
38
39 size_t getNumKnots(void) const override;
40
41 std::vector<double> getKnotParametrizationValues() const override;
42
43 const std::vector<Point> getKnots(void) const override;
44
45 const Point getStartPoint(void) const override;
46
47 const Point getEndPoint(void) const override;
48
49 const std::vector<SplineSegment2d> getSplineSegments() const override;
50
51 private:
52 // The segments making up this spline, from the start to the end
53 std::vector<SplineSegment2d> segments;
54
55 // points that connect segments
56 const std::vector<Point> knots;
57
66 void initLinearSegments(const std::vector<Point>& points);
67};
Definition linear_spline2d.h:14
const std::vector< SplineSegment2d > getSplineSegments() const override
Definition linear_spline2d.cpp:81
const Point getStartPoint(void) const override
Definition linear_spline2d.cpp:71
const Point getValueAt(double val) const override
Definition linear_spline2d.cpp:16
std::vector< double > getKnotParametrizationValues() const override
Definition linear_spline2d.cpp:54
size_t getNumKnots(void) const override
Definition linear_spline2d.cpp:49
const std::vector< Point > getKnots(void) const override
Definition linear_spline2d.cpp:66
const Point getEndPoint(void) const override
Definition linear_spline2d.cpp:76
Definition point.h:14
Definition spline2d.h:66