#pragma once #include "Perception.h" #include "Roboid.h" namespace Passer { namespace RoboidControl { /// @brief Interface for synchronizaing state between clients across a network class NetworkSync { public: /// @brief Retreive and send the roboid state /// @param roboid The roboid for which the state is updated virtual void NetworkUpdate(Roboid *roboid) = 0; /// @brief Inform that the given object is no longer being tracked /// @param obj virtual void DestroyObject(TrackedObject *obj) = 0; /// @brief The id of a Pose message static const char PoseMsg = 0x10; /// @brief A bit pattern for the pose, stating that this message contains a /// position in world coordinates static const char Pose_Position = 0x01; /// @brief A bit pattern for the pose, stating that this message contains an /// orientation in world coordinates static const char Pose_Orientation = 0x02; /// @brief A bit pattern for the pose, stating that this messsage contains a /// linear velocity in world coordinates static const char Pose_LinearVelocity = 0x04; /// @brief A bit pattern for the pose, stating that this message contains an /// angular velocity in world coordinates static const char Pose_AngularVelocity = 0x08; }; } // namespace RoboidControl } // namespace Passer