ALMaSS Rabbit ODdox
1.1
The rabbit model description following ODdox protocol
|
The rabbit juvenile class. All special juvenile behaviour is described here. More...
#include <Rabbit.h>
Public Member Functions | |
Rabbit_Juvenile (int p_x, int p_y, int p_x2, int p_y2, Rabbit_Female *p_M, Landscape *p_L, Rabbit_Population_Manager *p_NPM, int a_age, int a_weightage, Rabbit_Warren *a_warren) | |
Rabbit_Young constructor. More... | |
virtual | ~Rabbit_Juvenile (void) |
Rabbit_Young destructor. More... | |
TTypeOfRabbitState | st_Develop () |
Development state for young. More... | |
TTypeOfRabbitState | st_BecomeAdult (void) |
Juvenile maturation. More... | |
TTypeOfRabbitState | st_Explore (void) |
Juvenile local exploration. More... | |
TTypeOfRabbitState | st_Forage (void) |
Juvenile forage behaviour. 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... | |
virtual void | EndStep (void) |
The EndStep is the last 'part' of the timestep that an animal can behave in. More... | |
virtual bool | ShouldMature (void) |
Tests for maturation to the next stage. More... | |
Public Member Functions inherited from Rabbit_Young | |
Rabbit_Young (int p_x, int p_y, int p_x2, int p_y2, Rabbit_Female *a_mum, Landscape *p_L, Rabbit_Population_Manager *p_NPM, Rabbit_Warren *a_warren) | |
Rabbit_Young constructor. More... | |
virtual | ~Rabbit_Young (void) |
Rabbit_Young destructor. More... | |
TTypeOfRabbitState | st_Develop (void) |
Development state for young. More... | |
TTypeOfRabbitState | st_BecomeJuvenile (void) |
Young maturation. More... | |
virtual void | BeingStep (void) |
The BeginStep is the first 'part' of the timestep that an animal can behave in. 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... | |
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... | |
virtual Rabbit_Adult * | GetMate (void) |
Get mate pointer. 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) |
Young dying state. More... | |
virtual void | InternalPesticideHandlingAndResponse () |
Handles internal effects of pesticide exposure - reimplemented from base class. 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 | 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... | |
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... | |
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... | |
The rabbit juvenile class. All special juvenile behaviour is described here.
Rabbit_Juvenile::Rabbit_Juvenile | ( | int | p_x, |
int | p_y, | ||
int | p_x2, | ||
int | p_y2, | ||
Rabbit_Female * | p_M, | ||
Landscape * | p_L, | ||
Rabbit_Population_Manager * | p_NPM, | ||
int | a_age, | ||
int | a_weightage, | ||
Rabbit_Warren * | a_warren | ||
) |
Rabbit_Young constructor.
Definition at line 376 of file Rabbit.cpp.
References cfg_juvenile_base_mort, Rabbit_Population_Manager::GetGrowth(), Rabbit_Base::m_Age, Rabbit_Base::m_MyMortChance, Rabbit_Base::m_OurPopulationManager, Rabbit_Base::m_RabbitType, Rabbit_Base::m_weight, Rabbit_Base::m_weightAge, Rabbit_Warren::RabbitProductionRecord(), rob_Juvenile, and CfgFloat::value().
|
virtual |
|
virtual |
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 two factors - whether the rabbit has a burrow (will not be the case for juvenile), and whether the carrying capacity of the warren is reached in terms of number of possible burrows. Note that this EndStep over-rides the Young::EndStep, which is critical because otherwise the rabbit will die due to not having set the m_FedToday flag.
Reimplemented from Rabbit_Young.
Definition at line 487 of file Rabbit.cpp.
References Rabbit_Warren::GetDailyMortalityChanceJ(), InternalPesticideHandlingAndResponse(), Rabbit_Base::m_CurrentRState, TALMaSSObject::m_CurrentStateNo, Rabbit_Base::m_MyMortChance, Rabbit_Base::m_myWarren, Rabbit_Base::m_pesticide_burden, Rabbit_Base::MortalityTest(), st_Dying(), and toRabbits_Die.
|
protectedvirtual |
Handles internal effects of pesticide exposure - reimplemented from base class.
This method is re-implemented ffrom Rabbit_Base for any class which has pesticide response behaviour. If the body burden exceeds the trigger then call pesticide-specific actions by dose
Reimplemented from Rabbit_Base.
Definition at line 1345 of file Rabbit.cpp.
References cfg_RabbitPesticideResponse, g_msg, Rabbit_Base::GeneralOrganoPhosphate(), TAnimal::m_OurLandscape, Rabbit_Base::m_pesticide_burden, Rabbit_Base::m_pesticidedegradationrate, Rabbit_Base::m_weight, Landscape::SupplyPesticideType(), ttop_AcuteEffects, ttop_NoPesticide, ttop_ReproductiveEffects, CfgFloat::value(), and MapErrorMsg::Warn().
Referenced by EndStep().
|
virtual |
Tests for maturation to the next stage.
Reimplemented from Rabbit_Young.
Definition at line 512 of file Rabbit.cpp.
References Rabbit_Base::m_weightAge.
Referenced by st_Develop().
TTypeOfRabbitState Rabbit_Juvenile::st_BecomeAdult | ( | void | ) |
Juvenile maturation.
Creates a new Rabbit_Male or Rabbit_Female object and passes the data from the juvenile object to it, then signals young object removal.
Sex determination occurs here and then returns toRabbits_Remove to remove the object without causing other system effects.
Definition at line 424 of file Rabbit.cpp.
References Rabbit_Population_Manager::CreateObjects(), g_rand_uni, struct_Rabbit::m_age, Rabbit_Base::m_Age, Rabbit_Base::m_born_location, struct_Rabbit::m_L, TAnimal::m_Location_x, TAnimal::m_Location_y, Rabbit_Base::m_myWarren, struct_Rabbit::m_NPM, TAnimal::m_OurLandscape, Rabbit_Base::m_OurPopulationManager, struct_Rabbit::m_Warren, struct_Rabbit::m_weightage, Rabbit_Base::m_weightAge, struct_Rabbit::m_x, struct_Rabbit::m_x2, struct_Rabbit::m_y, struct_Rabbit::m_y2, rob_Female, rob_Male, and toRabbits_Remove.
Referenced by Step().
TTypeOfRabbitState Rabbit_Juvenile::st_Develop | ( | void | ) |
Development state for young.
Ages the rabbit and evaluates whether the rabbit should mature, and if neither then returns toRabbits_Explore
Definition at line 400 of file Rabbit.cpp.
References Rabbit_Population_Manager::GetForageDay(), Rabbit_Population_Manager::GetGrowth(), Rabbit_Base::m_Age, Rabbit_Base::m_OurPopulationManager, Rabbit_Base::m_weight, Rabbit_Base::m_weightAge, ShouldMature(), toRabbits_Explore, and toRabbits_Mature.
Referenced by Step().
|
protectedvirtual |
Young dying state.
Reimplemented from Rabbit_Young.
Definition at line 393 of file Rabbit.cpp.
References TALMaSSObject::m_CurrentStateNo, and TALMaSSObject::m_StepDone.
TTypeOfRabbitState Rabbit_Juvenile::st_Explore | ( | void | ) |
Juvenile local exploration.
As a juvenile there is no need to explore the surroungings, the big bad world awaits when the rabbit becomes adult.
Definition at line 415 of file Rabbit.cpp.
References toRabbits_Develop.
Referenced by Step().
TTypeOfRabbitState Rabbit_Juvenile::st_Forage | ( | void | ) |
Juvenile forage behaviour.
This is a critical part of the pesticide handling code. The rabbit forages from the warren area and as a result picks up pesticide. Exactly how much pesticide is picked up depends on the assumptions regarding foraging behaviour. These can be altered here, but the default assumption is that the rabbit will forage from all suitable forgage locations equally, and therefore will pick up an average dose based on the average concentration of residue in the forage areas. This is precalculated by the Rabbit_Warren in UpdatePesticide. The pesticide response code is placed in EndStep - this will determine direct mortality or set any necessary flags indicating pesticide effects later, e.g. for reproduction.
Definition at line 677 of file Rabbit.cpp.
References Rabbit_Warren::GetForagePesticide(), Rabbit_Base::m_myWarren, Rabbit_Base::m_pesticide_burden, and toRabbits_Explore.
Referenced by Step().
|
virtual |
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'.
Reimplemented from Rabbit_Young.
Definition at line 450 of file Rabbit.cpp.
References Rabbit_Base::m_CurrentRState, TALMaSSObject::m_CurrentStateNo, TAnimal::m_OurLandscape, TALMaSSObject::m_StepDone, st_BecomeAdult(), st_Develop(), st_Dying(), st_Explore(), st_Forage(), toRabbits_Develop, toRabbits_Die, toRabbits_Explore, toRabbits_Foraging, toRabbits_InitialState, toRabbits_Mature, toRabbits_Remove, and Landscape::Warn().