1 #ifndef BLOBS_CREATURE_STEERING_HPP_
2 #define BLOBS_CREATURE_STEERING_HPP_
4 #include "Situation.hpp"
5 #include "../math/glm.hpp"
16 explicit Steering(const Creature &);
20 void MaxAcceleration(double a) noexcept { max_accel = a; }
21 double MaxAcceleration() const noexcept { return max_accel; }
23 void MaxSpeed(double s) noexcept { max_speed = s; }
24 double MaxSpeed() const noexcept { return max_speed; }
27 void Separate(double min_distance, double max_lookaround) noexcept;
28 void DontSeparate() noexcept;
30 void Pass(const glm::dvec3 &) noexcept;
31 void GoTo(const glm::dvec3 &) noexcept;
33 glm::dvec3 Acceleration(const Situation::State &) const noexcept;
36 bool SumForce(glm::dvec3 &out, const glm::dvec3 &in) const noexcept;
37 glm::dvec3 TargetVelocity(const Situation::State &, const glm::dvec3 &) const noexcept;