#pragma once #include "Perception.h" #include "Propulsion.h" namespace Passer { namespace RoboidControl { class NetworkSync; /// @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; NetworkSync *networkSync = nullptr; }; } // namespace RoboidControl } // namespace Passer using namespace Passer::RoboidControl;