void Haste(double h) noexcept { haste = h; }
double Haste() const noexcept { return haste; }
- void MaxAcceleration(double a) noexcept { max_accel = a; }
- double MaxAcceleration() const noexcept { return max_accel; }
+ void MaxForce(double f) noexcept { max_force = f; }
+ double MaxForce() const noexcept { return max_force; }
void MaxSpeed(double s) noexcept { max_speed = s; }
double MaxSpeed() const noexcept { return max_speed; }
public:
+ void Off() noexcept;
void Separate(double min_distance, double max_lookaround) noexcept;
void DontSeparate() noexcept;
+ void ResumeSeparate() noexcept;
void Halt() noexcept;
void Pass(const glm::dvec3 &) noexcept;
void GoTo(const glm::dvec3 &) noexcept;
- glm::dvec3 Acceleration(const Situation::State &) const noexcept;
+ glm::dvec3 Force(const Situation::State &) const noexcept;
private:
- bool SumForce(glm::dvec3 &out, const glm::dvec3 &in, double max) const noexcept;
glm::dvec3 TargetVelocity(const Situation::State &, const glm::dvec3 &, double acc) const noexcept;
private:
glm::dvec3 target;
double haste;
- double max_accel;
+ double max_force;
double max_speed;
double min_dist;
double max_look;