ThunderLib
Loading...
Searching...
No Matches
ThunderAutoTrajectory.hpp
1#pragma once
2
3#include <ThunderLib/Trajectory/Trajectory.hpp>
4#include <string>
5#include <map>
6
7namespace thunder {
8
9class ThunderAutoProject;
10
11namespace driver {
12
13struct ThunderAutoTrajectoryState;
14class ThunderAutoTrajectory;
15
16} // namespace driver
17
19 public:
21
23 ThunderAutoTrajectory& operator=(const ThunderAutoTrajectory&) = delete;
25 ThunderAutoTrajectory& operator=(ThunderAutoTrajectory&&) noexcept = delete;
26
27 bool isValid() const noexcept override;
28
36 TrajectoryState sample(units::second_t time) const noexcept override;
37
43 virtual units::second_t getDuration() const noexcept override;
44
50 virtual TrajectoryState getInitialState() const noexcept override;
51
57 virtual TrajectoryState getFinalState() const noexcept override;
58
64 const std::string& getStartAction() const noexcept;
65
71 const std::string& getEndAction() const noexcept;
72
81 const std::map<units::second_t, std::string>& getStopActions() const noexcept;
82
90 const std::multimap<units::second_t, std::string>& getActions() const noexcept;
91
92 driver::ThunderAutoTrajectory* getHandle() noexcept;
93 const driver::ThunderAutoTrajectory* getHandle() const noexcept;
94
95 private:
96 friend class ThunderAutoProject;
97
98 // Ownership is transferred to the constructed object.
99 explicit ThunderAutoTrajectory(driver::ThunderAutoTrajectory* trajectory) noexcept;
100
101 private:
102 driver::ThunderAutoTrajectory* m_handle = nullptr;
103
104 private:
105 static TrajectoryState convertState(const driver::ThunderAutoTrajectoryState& driverState) noexcept;
106};
107
108} // namespace thunder
Definition ThunderAutoProject.hpp:25
Definition ThunderAutoTrajectory.hpp:18
virtual TrajectoryState getFinalState() const noexcept override
Definition ThunderAutoTrajectory.cpp:47
virtual TrajectoryState getInitialState() const noexcept override
Definition ThunderAutoTrajectory.cpp:37
const std::multimap< units::second_t, std::string > & getActions() const noexcept
Definition ThunderAutoTrajectory.cpp:84
const std::string & getEndAction() const noexcept
Definition ThunderAutoTrajectory.cpp:66
virtual units::second_t getDuration() const noexcept override
Definition ThunderAutoTrajectory.cpp:29
const std::string & getStartAction() const noexcept
Definition ThunderAutoTrajectory.cpp:57
const std::map< units::second_t, std::string > & getStopActions() const noexcept
Definition ThunderAutoTrajectory.cpp:75
TrajectoryState sample(units::second_t time) const noexcept override
Definition ThunderAutoTrajectory.cpp:19
Definition Trajectory.hpp:38
Definition Trajectory.hpp:30