2023-12-08 09:44:30 +01:00

32 lines
952 B
C++

#pragma once
#include "Perception.h"
#include "Propulsion.h"
namespace Passer {
namespace RoboidControl {
/// @brief A Roboid is used to control autonomous robots
class Roboid {
public:
/// @brief Default constructor for a Roboid
Roboid();
/// @brief Creates a Roboid with Perception and Propulsion abilities
/// @param perception The Perception implementation to use for this Roboid
/// @param propulsion The Propulsion implementation to use for this Roboid
Roboid(Perception *perception, Propulsion *propulsion = nullptr);
/// @brief Update the state of the Roboid
/// @param currentTimeMs The time in milliseconds when calling this
/// function
void Update(float currentTimeMs);
/// @brief The Perception module of this Roboid
Perception *perception;
/// @brief The Propulsion module of this Roboid
Propulsion *propulsion;
};
} // namespace RoboidControl
} // namespace Passer
using namespace Passer::RoboidControl;