ALMaSS Rabbit ODdox
1.1
The rabbit model description following ODdox protocol
|
The rabbit adult class. All generic adult behaviour is described here. More...
#include <Rabbit.h>
Public Member Functions | |
Rabbit_Adult (int p_x, int p_y, int p_x2, int p_y2, Landscape *p_L, Rabbit_Population_Manager *p_NPM, int a_age, int a_weightage, Rabbit_Warren *a_warren) | |
Rabbit_Adult constructor. More... | |
virtual | ~Rabbit_Adult () |
Rabbit_Adult destructor. More... | |
TTypesOfRabbitSocialStatus | GetSocialStatus (void) |
Return the dominance status. More... | |
void | SetSocialStatus (TTypesOfRabbitSocialStatus a_status) |
Sets the dominance status. More... | |
void | SetMate (Rabbit_Adult *a_mate) |
Set/unset mate status. More... | |
virtual Rabbit_Adult * | GetMate (void) |
Get mate pointer. More... | |
void | OnMateFinishedDigging (Rabbit_Adult *a_mate) |
Action when a mate has finished digging a burrow. More... | |
void | OnMateDead (Rabbit_Adult *a_mate) |
Set/unset mate status. More... | |
Public Member Functions inherited from Rabbit_Base | |
TTypeOfRabbitState | GetCurrentRState () |
void | SetAge (int a_age) |
Set age method. More... | |
RabbitObjectTypes | GetRabbitType (void) |
Get rabbit type. More... | |
int | GetAge (void) |
Get age method. More... | |
void | SetweightAge (int a_age) |
Set age method. More... | |
int | GetweightAge (void) |
Get age method. More... | |
Rabbit_Warren * | GetWarren (void) |
Get warren pointer. More... | |
void | SetWarren (Rabbit_Warren *a_warren) |
Set the warren pointer. More... | |
bool | GetHasBurrow (void) |
Get burrow status. More... | |
void | SetHasBurrow (bool a_status) |
Set/unset burrow status. More... | |
void | SetDigging (int a_days) |
Set number of days to dig. More... | |
int | GetDigging () |
Get number of days to dig. More... | |
APoint | GetBornLocation () |
Get location of birth. More... | |
Rabbit_Base (int p_x, int p_y, int p_x2, int p_y2, Landscape *p_L, Rabbit_Population_Manager *p_NPM, Rabbit_Warren *a_warren) | |
Rabbit constructor. More... | |
virtual | ~Rabbit_Base (void) |
Rabbit destructor. More... | |
virtual void | BeginStep (void) |
The BeginStep is the first 'part' of the timestep that an animal can behave in. It is called once per timestep. More... | |
virtual void | Step (void) |
The Step is the second 'part' of the timestep that an animal can behave in. It is called continuously until all animals report that they are 'DONE'. More... | |
void | OnFed (void) |
Signals food arrived today. More... | |
void | OnMumDead (void) |
Signals death of mum. More... | |
void | OnEvicted (void) |
Signals mum has a new litter to look after. More... | |
Public Member Functions inherited from TAnimal | |
unsigned | SupplyFarmOwnerRef () |
AnimalPosition | SupplyPosition () |
APoint | SupplyPoint () |
int | SupplyPolygonRef () |
int | Supply_m_Location_x () |
int | Supply_m_Location_y () |
virtual void | KillThis () |
virtual void | CopyMyself () |
void | SetX (int a_x) |
void | SetY (int a_y) |
TAnimal (int x, int y, Landscape *L) | |
virtual void | ReinitialiseObject (int x, int y, Landscape *L) |
Used to re-use an object - must be implemented in descendent classes. More... | |
virtual int | WhatState () |
virtual void | Dying () |
void | CheckManagement (void) |
void | CheckManagementXY (int x, int y) |
virtual bool | OnFarmEvent (FarmToDo) |
Public Member Functions inherited from TALMaSSObject | |
int | GetCurrentStateNo () |
Returns the current state number. More... | |
void | SetCurrentStateNo (int a_num) |
Sets the current state number. More... | |
bool | GetStepDone () |
Returns the step done indicator flag. More... | |
void | SetStepDone (bool a_bool) |
Sets the step done indicator flag. More... | |
virtual void | ReinitialiseObject () |
Used to re-use an object - must be implemented in descendent classes. More... | |
TALMaSSObject () | |
The constructor for TALMaSSObject. More... | |
virtual | ~TALMaSSObject () |
The destructor for TALMaSSObject. More... | |
void | OnArrayBoundsError () |
Used for debugging only, tests basic object properties. More... | |
Protected Member Functions | |
virtual void | st_Dying (void) |
Default dying state. More... | |
virtual void | EndStep (void) |
The EndStep is the last 'part' of the timestep that an animal can behave in. More... | |
Protected Member Functions inherited from Rabbit_Base | |
virtual void | Explore (void) |
Exploration method. More... | |
bool | MortalityTest (double a_prop) |
A simple probability based test. More... | |
bool | WalkTo (int a_x, int a_y) |
Walks to a location from current location. More... | |
virtual void | InternalPesticideHandlingAndResponse () |
Handles internal effects of pesticide exposure. If any effects are needed this method must be re-implemented by descendent classes. More... | |
virtual void | GeneralEndocrineDisruptor (double) |
Handles internal effects of endocrine distrupter pesticide exposure. More... | |
virtual void | GeneralOrganoPhosphate (double) |
Handles internal effects of organophosphate pesticide exposure. More... | |
Protected Member Functions inherited from TAnimal | |
void | CorrectWrapRound () |
Corrects wrap around co-ordinate problems. More... | |
Protected Attributes | |
TTypesOfRabbitSocialStatus | m_socialstatus |
Flag to record dominance status (0-4) More... | |
int | m_lifespan |
The rabbit's alloted lifespan. More... | |
Rabbit_Adult * | m_myMate |
Pointer to the mate if any. More... | |
Protected Attributes inherited from Rabbit_Base | |
int | m_Age |
The rabbit's age. More... | |
TTypeOfRabbitState | m_CurrentRState |
Variable to record current behavioural state. More... | |
Rabbit_Population_Manager * | m_OurPopulationManager |
This is a time saving pointer to the correct population manager object. More... | |
double | m_MyMortChance |
bool | m_haveBurrow |
Flag to record burrow status. More... | |
Rabbit_Warren * | m_myWarren |
True if currently mated. More... | |
Rabbit_Female * | m_Mum |
Pointer to mum. More... | |
bool | m_FedToday |
Flag for been fed today. More... | |
double | m_weight |
The weight in g. More... | |
int | m_weightAge |
A physiological age parameter, this is the growth age based on an optimal curve (if optimal conditions it will be the same as m_age) More... | |
int | m_digging |
Flag to denote digging behaviour. This keeps the rabbit in a warren without burrows whilst it tries to make one. More... | |
APoint | m_born_location |
The x,y location at birth. More... | |
double | m_pesticide_burden |
State variable used to hold the current body-burden of pesticide. More... | |
bool | m_pesticideInfluenced1 |
Flag to indicate pesticide effects (e.g. can be used for endocrine distruptors with delayed effects until birth). More... | |
Protected Attributes inherited from TAnimal | |
int | m_Location_x |
int | m_Location_y |
Landscape * | m_OurLandscape |
Protected Attributes inherited from TALMaSSObject | |
int | m_CurrentStateNo |
The basic state number for all objects - '-1' indicates death. More... | |
bool | m_StepDone |
Indicates whether the iterative step code is done for this timestep. More... | |
Additional Inherited Members | |
Public Attributes inherited from Rabbit_Base | |
RabbitObjectTypes | m_RabbitType |
The rabbits type. More... | |
Static Public Attributes inherited from Rabbit_Base | |
static double | m_dispersalmortperm = cfg_dispersalmortperm.value() |
The extra dispersal mortality per m travelled. More... | |
static double | m_pesticidedegradationrate = cfg_rabbit_pesticidedegradationrate.value() |
State variable used to hold the daily degredation rate of the pesticide in the body. More... | |
The rabbit adult class. All generic adult behaviour is described here.
Rabbit_Adult::Rabbit_Adult | ( | int | p_x, |
int | p_y, | ||
int | p_x2, | ||
int | p_y2, | ||
Landscape * | p_L, | ||
Rabbit_Population_Manager * | p_NPM, | ||
int | a_age, | ||
int | a_weightage, | ||
Rabbit_Warren * | a_warren | ||
) |
Rabbit_Adult constructor.
Main function is the initialise the attribute values. Lifespan is given as 2 years plus randomly up to two years = maximum four, average three. Dominance is set to 0 (lowest level). It is evaluated in the st_EvaluateTerritory state
Definition at line 523 of file Rabbit.cpp.
References cfg_adult_base_mort, g_rand_uni, Rabbit_Population_Manager::GetGrowth(), Rabbit_Base::m_Age, Rabbit_Base::m_digging, m_lifespan, m_myMate, Rabbit_Base::m_MyMortChance, Rabbit_Base::m_OurPopulationManager, Rabbit_Base::m_weight, Rabbit_Base::m_weightAge, rabbit_socialstatus_zero, SetSocialStatus(), and CfgFloat::value().
|
virtual |
|
protectedvirtual |
The EndStep is the last 'part' of the timestep that an animal can behave in.
Here we apply a density dependent mortality as well as a daily mortality rate. The mortality is dependent on three factors - whether the rabbit has a burrow, and whether the carrying capacity of the warren is reached in terms of number of possible burrows, or whether the rabbit is digging. The carrying capacity is results in extra movement which causes extra mortality (see evaluate territory) as well as increased mortality here.
Disease is a density dependent mortality factor - used here to increase mortality at high densities. This is step function at the moment but could be altered as necessary. The disease mortality is constant for all members of a warren - updated by the warren do first. See Rabbit_Warren::CalcDisease()
If we survive all this, then we need to age, and die if we exceed our alloted lifespan.
If that does not kill us then check for burrow digging completion and if we have done this occupy the burrow and if we have a mate then tell the mate to set the appropriate burrow and digging information.
Reimplemented from Rabbit_Base.
Definition at line 547 of file Rabbit.cpp.
References Rabbit_Warren::GetDailyMortalityChanceA(), Rabbit_Population_Manager::GetForageDay(), Rabbit_Population_Manager::GetGrowth(), Rabbit_Base::GetHasBurrow(), Rabbit_Base::InternalPesticideHandlingAndResponse(), Rabbit_Base::m_Age, Rabbit_Base::m_CurrentRState, TALMaSSObject::m_CurrentStateNo, Rabbit_Base::m_digging, m_lifespan, m_myMate, Rabbit_Base::m_MyMortChance, Rabbit_Base::m_myWarren, Rabbit_Base::m_OurPopulationManager, Rabbit_Base::m_pesticide_burden, m_socialstatus, Rabbit_Base::m_weight, Rabbit_Base::m_weightAge, Rabbit_Base::MortalityTest(), Rabbit_Warren::OccupyNewBurrow(), OnMateFinishedDigging(), rabbit_socialstatus_dominant, rabbit_socialstatus_subdominant, Rabbit_Base::SetHasBurrow(), SetSocialStatus(), st_Dying(), and toRabbits_Die.
|
inlinevirtual |
Get mate pointer.
Reimplemented from Rabbit_Base.
Definition at line 397 of file Rabbit.h.
References m_myMate.
Referenced by Rabbit_Warren::JoinNMate(), and Rabbit_Warren::Mate().
|
inline |
Return the dominance status.
Definition at line 387 of file Rabbit.h.
References m_socialstatus.
Referenced by Rabbit_Warren::ChooseNewDominant().
void Rabbit_Adult::OnMateDead | ( | Rabbit_Adult * | a_mate | ) |
Set/unset mate status.
Definition at line 670 of file Rabbit.cpp.
References m_myMate.
Referenced by st_Dying().
void Rabbit_Adult::OnMateFinishedDigging | ( | Rabbit_Adult * | a_mate | ) |
Action when a mate has finished digging a burrow.
Definition at line 644 of file Rabbit.cpp.
References Rabbit_Warren::DEBUG_InternalTest(), Rabbit_Base::m_myWarren, rabbit_socialstatus_subdominant, Rabbit_Base::SetDigging(), Rabbit_Base::SetHasBurrow(), and SetSocialStatus().
Referenced by EndStep().
void Rabbit_Adult::SetMate | ( | Rabbit_Adult * | a_mate | ) |
Set/unset mate status.
Definition at line 606 of file Rabbit.cpp.
References Rabbit_Base::GetRabbitType(), m_myMate, TAnimal::m_OurLandscape, Rabbit_Base::m_RabbitType, and Landscape::Warn().
Referenced by Rabbit_Warren::JoinNMate(), and Rabbit_Warren::Mate().
|
inline |
Sets the dominance status.
Definition at line 391 of file Rabbit.h.
References m_socialstatus.
Referenced by Rabbit_Warren::ChooseNewDominant(), EndStep(), Rabbit_Warren::JoinNMate(), Rabbit_Warren::JoinNOccupy(), Rabbit_Warren::Mate(), OnMateFinishedDigging(), Rabbit_Adult(), Rabbit_Male::st_EvaluateTerritory(), and Rabbit_Female::st_EvaluateTerritory().
|
protectedvirtual |
Default dying state.
Adult dying state. Needs to:
Reimplemented from Rabbit_Base.
Reimplemented in Rabbit_Female.
Definition at line 691 of file Rabbit.cpp.
References Rabbit_Warren::Leave(), TALMaSSObject::m_CurrentStateNo, m_myMate, Rabbit_Base::m_myWarren, TALMaSSObject::m_StepDone, and OnMateDead().
Referenced by EndStep(), Rabbit_Female::st_Dying(), and Rabbit_Male::Step().
|
protected |
The rabbit's alloted lifespan.
Definition at line 407 of file Rabbit.h.
Referenced by EndStep(), and Rabbit_Adult().
|
protected |
Pointer to the mate if any.
Definition at line 409 of file Rabbit.h.
Referenced by EndStep(), GetMate(), OnMateDead(), Rabbit_Adult(), SetMate(), st_Dying(), Rabbit_Male::st_EvaluateTerritory(), Rabbit_Female::st_EvaluateTerritory(), Rabbit_Female::st_GiveBirth(), and Rabbit_Female::st_UpdateBreedingStatus().
|
protected |
Flag to record dominance status (0-4)
Definition at line 405 of file Rabbit.h.
Referenced by EndStep(), GetSocialStatus(), SetSocialStatus(), Rabbit_Female::st_Dying(), Rabbit_Male::st_EvaluateTerritory(), Rabbit_Female::st_EvaluateTerritory(), and Rabbit_Female::st_GiveBirth().