15 #ifndef CORE_BEHAVIOR_CHEMOTAXIS_H_
16 #define CORE_BEHAVIOR_CHEMOTAXIS_H_
42 Base::Initialize(event);
49 auto* cell = bdm_static_cast<Cell*>(agent);
50 auto& position = cell->GetPosition();
53 cell->UpdatePosition(gradient *
speed_);
Contains code required by all agents.
Move cells along the diffusion gradient (from low concentration to high)
void Initialize(const NewAgentEvent &event) override
BDM_BEHAVIOR_HEADER(Chemotaxis, Behavior, 1)
void Run(Agent *agent) override
Chemotaxis(const std::string &substance, real_t speed)
Chemotaxis(DiffusionGrid *dgrid, real_t speed)
virtual ~Chemotaxis()=default
Real3 GetGradient(const Real3 &position) const override
DiffusionGrid * GetDiffusionGrid(size_t substance_id) const
ResourceManager * GetResourceManager()
Returns the ResourceManager instance.
static Simulation * GetActive()
This function returns the currently active Simulation simulation.
Behavior * existing_behavior