Modelos básicos
Domain/Point.h
namespace vss {
    class Point {
    public:
        Point();
        Point(float x, float y);
        friend std::ostream& operator<<(std::ostream& os, const Point& point);
        float x;
        float y;
    };
}
Domain/Pose.h
namespace vss {
    class Pose : public Point {
    public:
        Pose();
        Pose(float x, float y, float angle);
        friend std::ostream& operator<<(std::ostream& os, const Pose& pose);
        float angle;
    };
}
Domain/Ball.h
namespace vss {
    class Ball : public Point {
    public:
        Ball();
        Ball(float x, float y, float speedX, float speedY);
        friend std::ostream& operator<<(std::ostream& os, const Ball& ball);
        float speedX;
        float speedY;
    };
}
Domain/Robot.h
amespace vss {
    class Robot : public Pose {
    public:
        Robot();
        Robot(float x, float y, float angle, float speedX, float speedY, float speedAngle);
        friend std::ostream& operator<<(std::ostream& os, const Robot& robot);
        float speedX;
        float speedY;
        float speedAngle;
    };
}
Domain/Path.h
namespace vss {
    class Path {
    public:
        Path();
        Path(std::vector<Point> points);
        friend std::ostream& operator<<(std::ostream& os, const Path& path);
        std::vector<Point> points;
    };
}
WheelsCommand.h
namespace vss {
    class WheelsCommand {
    public:
        WheelsCommand();
        WheelsCommand(int id, float leftVel, float rightVel);
        friend std::ostream& operator<<(std::ostream& os, const WheelsCommand& wheelsCommand);
        int id;
        float leftVel;
        float rightVel;
    };
}