#define BLANK_AI_AICONTROLLER_HPP_
#include "../app/IntervalTimer.hpp"
+#include "../geometry/primitive.hpp"
#include "../world/EntityController.hpp"
#include <glm/glm.hpp>
void SetHaltSpeed(float) noexcept;
glm::vec3 GetHaltForce(const Entity &, const EntityState &) const noexcept;
+ void StartAvoidingObstacles() noexcept;
+ void StopAvoidingObstacles() noexcept;
+ bool IsAvoidingObstacles() const noexcept;
+ glm::vec3 GetObstacleAvoidanceForce(const Entity &, const EntityState &) const noexcept;
+
void StartFleeing() noexcept;
void StopFleeing() noexcept;
bool IsFleeing() const noexcept;
bool halted;
float halt_speed;
+ bool avoid_obstacles;
+ AABB obstacle_box;
+ glm::mat4 obstacle_transform;
+
bool fleeing;
Entity *flee_target;
float flee_speed;