void Draw(graphics::Viewport &);
private:
+ void Cache() noexcept;
void TickState(double dt);
void TickStats(double dt);
void TickBrain(double dt);
Situation situation;
Steering steering;
+ // cached because steering makes heavy use of this
+ double perception_range;
+ double perception_range_squared;
+ double perception_omni_range;
+ double perception_omni_range_squared;
+ double perception_field;
+
struct Attributes {
glm::vec3 position;
glm::vec3 normal;