2023-11-28 12:53:07 +01:00

63 lines
1.3 KiB
C++

#pragma once
#include "Activation.h"
#include "Perception.h"
#include "Placement.h"
#include "Propulsion.h"
namespace Passer {
namespace RoboidControl {
class Waypoint {
public:
Waypoint(float forwardDistance, float rotation) {
this->point = Vector3(0, 0, forwardDistance);
this->distance = forwardDistance;
this->rotation = rotation;
}
float distance = 0;
Vector3 point = Vector3(0, 0, 0);
float rotation = 0;
};
class Trajectory {
public:
Trajectory(){};
Trajectory(Waypoint* waypoints, unsigned int waypointCount) {
this->waypoints = waypoints;
this->waypointCount = waypointCount;
}
Waypoint* waypoints;
unsigned int waypointCount;
};
class Acceleration {
public:
float GetMagnitude() { return 0; };
};
class Roboid {
public:
Roboid();
Roboid(Placement configuration[], unsigned int thingCount);
Perception perception;
Propulsion propulsion;
Acceleration acceleration;
Placement* configuration;
unsigned int thingCount;
void Update(float currentTimeMs);
bool Drive(Waypoint* waypoint, float currentTimeMs);
void FollowTrajectory(Trajectory* Trajectory);
public:
Trajectory* trajectory;
unsigned int waypointIx = 0;
};
} // namespace RoboidControl
} // namespace Passer
using namespace Passer::RoboidControl;