ASCO Aerial Autonomy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
base_tracker.h
Go to the documentation of this file.
1 #pragma once
4 
5 #include <memory>
6 #include <tuple>
7 #include <unordered_map>
8 
13 class BaseTracker {
14 public:
15  BaseTracker(TrackingStrategy *tracking_strategy)
16  : tracking_strategy_(tracking_strategy) {}
22  virtual bool initialize();
28  virtual bool getTrackingVector(Position &pos);
34  virtual bool getTrackingVector(std::tuple<uint32_t, Position> &pos);
40  virtual bool
41  getTrackingVectors(std::unordered_map<uint32_t, Position> &pos) = 0;
46  virtual bool trackingIsValid() = 0;
47 
48 private:
52  std::unique_ptr<TrackingStrategy> tracking_strategy_;
53 };
Interface for classes that provide a vector to a tracked target.
Definition: base_tracker.h:13
virtual bool getTrackingVector(Position &pos)
Get the tracking vector.
Definition: base_tracker.cpp:3
virtual bool initialize()
Initialze the tracker. Can simply return true if the subclass requires no additional initialization...
Definition: base_tracker.cpp:28
BaseTracker(TrackingStrategy *tracking_strategy)
Definition: base_tracker.h:15
virtual bool getTrackingVectors(std::unordered_map< uint32_t, Position > &pos)=0
Get the tracking vectors.
Defines a strategy for choosing a target to track among a group of tracked targets.
Definition: tracking_strategy.h:12
virtual bool trackingIsValid()=0
Check whether tracking is valid.
Store 3D position.
Definition: position.h:8