15 #ifndef CORE_BEHAVIOR_SECRETION_H_
16 #define CORE_BEHAVIOR_SECRETION_H_
47 Base::Initialize(event);
Contains code required by all agents.
virtual const Real3 & GetPosition() const =0
void ChangeConcentrationBy(const Real3 &position, real_t amount, InteractionMode mode=InteractionMode::kAdditive, bool scale_with_resolution=false)
DiffusionGrid * GetDiffusionGrid(size_t substance_id) const
Secrete substance at Agent position.
Secretion(const std::string &substance, real_t quantity=1, InteractionMode mode=InteractionMode::kAdditive)
BDM_BEHAVIOR_HEADER(Secretion, Behavior, 2)
Secretion(DiffusionGrid *dgrid, real_t quantity=1, InteractionMode mode=InteractionMode::kAdditive)
virtual ~Secretion()=default
void Run(Agent *agent) override
void Initialize(const NewAgentEvent &event) override
ResourceManager * GetResourceManager()
Returns the ResourceManager instance.
static Simulation * GetActive()
This function returns the currently active Simulation simulation.
Behavior * existing_behavior