PathPlannerLib
Loading...
Searching...
No Matches
PointTowardsZoneEvent.h
1#pragma once
2
3#include "pathplanner/lib/events/Event.h"
4#include "pathplanner/lib/events/PointTowardsZoneTrigger.h"
5#include <string>
6
7namespace pathplanner {
9public:
17 PointTowardsZoneEvent(units::second_t timestamp, std::string name,
18 bool active) : Event(timestamp), m_name(name), m_active(active) {
19 }
20
21 inline void handleEvent(EventScheduler *eventScheduler) override {
22 PointTowardsZoneTrigger::setWithinZone(m_name, m_active);
23 }
24
25 inline void cancelEvent(EventScheduler *eventScheduler) override {
26 if (!m_active) {
27 // Ensure this zone's condition gets set to false
28 PointTowardsZoneTrigger::setWithinZone(m_name, false);
29 }
30 }
31
32 inline std::shared_ptr<Event> copyWithTimestamp(units::second_t timestamp)
33 override {
34 return std::make_shared < PointTowardsZoneEvent
35 > (timestamp, m_name, m_active);
36 }
37
38private:
39 std::string m_name;
40 bool m_active;
41};
42}
Definition: EventScheduler.h:15
Definition: Event.h:10
Definition: PointTowardsZoneEvent.h:8
PointTowardsZoneEvent(units::second_t timestamp, std::string name, bool active)
Definition: PointTowardsZoneEvent.h:17
void handleEvent(EventScheduler *eventScheduler) override
Definition: PointTowardsZoneEvent.h:21
void cancelEvent(EventScheduler *eventScheduler) override
Definition: PointTowardsZoneEvent.h:25
std::shared_ptr< Event > copyWithTimestamp(units::second_t timestamp) override
Definition: PointTowardsZoneEvent.h:32