X-Git-Url: http://git.localhorst.tv/?p=blobs.git;a=blobdiff_plain;f=src%2Fcreature%2FSteering.hpp;h=470031dd170a4ec16e201068265e9ad8807a68e8;hp=cca757ee0b72763ec8b4f6558b8259d45ceedca2;hb=f6c8a486a771e876a16906f482017df5e4701255;hpb=b9af958c3f80a966bd31c622a45d0f3375bf2c3a diff --git a/src/creature/Steering.hpp b/src/creature/Steering.hpp index cca757e..470031d 100644 --- a/src/creature/Steering.hpp +++ b/src/creature/Steering.hpp @@ -8,10 +8,12 @@ namespace blobs { namespace creature { +class Creature; + class Steering { public: - Steering(); + explicit Steering(const Creature &); ~Steering(); public: @@ -22,6 +24,8 @@ public: double MaxSpeed() const noexcept { return max_speed; } public: + void Separate(double min_distance, double max_lookaround) noexcept; + void DontSeparate() noexcept; void Halt() noexcept; void Pass(const glm::dvec3 &) noexcept; void GoTo(const glm::dvec3 &) noexcept; @@ -33,11 +37,15 @@ private: glm::dvec3 TargetVelocity(const Situation::State &, const glm::dvec3 &) const noexcept; private: + const Creature &c; glm::dvec3 target; - double max_accel = 1.0; - double max_speed = 1.0; + double max_accel; + double max_speed; + double min_dist; + double max_look; + bool separating; bool halting; bool seeking; bool arriving;