Thunderbots Project
Loading...
Searching...
No Matches
spline2d.h
1#pragma once
2
3#include "software/geom/point.h"
4#include "software/geom/polynomial2d.h"
5
6// Pre-declaration so we can make this a friend class of SplineSegment2d
7class Spline2d;
8
14{
15 public:
16 SplineSegment2d() = delete;
17
22 double getParametrizationStartVal() const;
23
28 double getParametrizationEndVal() const;
29
34 const Polynomial2d &getPolynomial() const;
35
36 protected:
37 friend class Spline2d;
38
51 SplineSegment2d(double start_val, double end_val, Polynomial2d polynomial);
52
53 private:
54 const double start_val;
55 const double end_val;
56 const Polynomial2d polynomial;
57};
58
66{
67 public:
78 virtual const Point getValueAt(double t) const = 0;
79
85 virtual const std::vector<Point> getKnots() const = 0;
86
92 virtual size_t getNumKnots() const = 0;
93
106 virtual std::vector<double> getKnotParametrizationValues() const = 0;
107
113 virtual const Point getStartPoint() const = 0;
114
120 virtual const Point getEndPoint() const = 0;
121
128 virtual const std::vector<SplineSegment2d> getSplineSegments() const = 0;
129
130 protected:
146 static SplineSegment2d createSplineSegment2d(double start_val, double end_val,
147 Polynomial2d polynomial);
148};
Definition point.h:14
Definition polynomial2d.h:10
Definition spline2d.h:66
virtual const Point getStartPoint() const =0
virtual const std::vector< SplineSegment2d > getSplineSegments() const =0
virtual const Point getEndPoint() const =0
virtual size_t getNumKnots() const =0
virtual const Point getValueAt(double t) const =0
virtual const std::vector< Point > getKnots() const =0
virtual std::vector< double > getKnotParametrizationValues() const =0
static SplineSegment2d createSplineSegment2d(double start_val, double end_val, Polynomial2d polynomial)
Definition spline2d.cpp:24
Definition spline2d.h:14
const Polynomial2d & getPolynomial() const
Definition spline2d.cpp:19
double getParametrizationStartVal() const
Definition spline2d.cpp:9
double getParametrizationEndVal() const
Definition spline2d.cpp:14