]> git.localhorst.tv Git - blobs.git/blobdiff - src/creature/Situation.hpp
lose weight through exercise
[blobs.git] / src / creature / Situation.hpp
index 6b2bac0500f4dcc958040ce4fd8192693af51365..4d635f5e8ba223ba94225df3b2701ccd4767485c 100644 (file)
@@ -33,13 +33,10 @@ public:
                glm::dvec3 vel;
                // acceleration
                glm::dvec3 acc;
-               // orientation adjust
-               glm::dvec3 turn;
                Derivative(
                        const glm::dvec3 &vel = glm::dvec3(0.0),
-                       const glm::dvec3 &acc = glm::dvec3(0.0),
-                       const glm::dvec3 &turn = glm::dvec3(0.0))
-               : vel(vel), acc(acc), turn(turn) { }
+                       const glm::dvec3 &acc = glm::dvec3(0.0))
+               : vel(vel), acc(acc) { }
        };
 
 public:
@@ -67,9 +64,12 @@ public:
        const State &GetState() const noexcept { return state; }
 
        const glm::dvec3 &Velocity() const noexcept { return state.vel; }
-       bool Moving() const noexcept { return glm::length2(state.vel) < 0.00000001; }
+       bool Moving() const noexcept { return glm::length2(state.vel) > 0.000001; }
        void Move(const glm::dvec3 &dp) noexcept;
+       void Accelerate(const glm::dvec3 &dv) noexcept;
+       void EnforceConstraints(State &) noexcept;
 
+       void Heading(const glm::dvec3 &h) noexcept { state.dir = h; }
        const glm::dvec3 &Heading() const noexcept { return state.dir; }
 
        void SetPlanetSurface(world::Planet &, int srf, const glm::dvec3 &pos) noexcept;