![]() |
ALMaSS
1.2 (after EcoStack, March 2024)
The Animal, Landscape and Man Simulation System
|
Class for female hares. More...
#include <Hare_All.h>
Public Member Functions | |
void | BeginStep (void) override |
Female BeginStep. More... | |
void | Step (void) override |
Female Step. More... | |
void | EndStep (void) override |
Female EndStep. More... | |
Hare_Female (int p_x, int p_y, Landscape *p_L, THare_Population_Manager *p_PPM, double p_weight, int a_age, int a_Ref) | |
Female Constructor. More... | |
void | ReInit (struct_Hare a_data) |
Female object reinitiation. More... | |
void | Init (double p_weight, int a_age, int a_Ref) |
Object initiation. More... | |
~Hare_Female () override | |
Female Destructor. More... | |
void | dumpEnergy () |
Used to record energetic status. More... | |
void | SetSterile () |
Female is sterile. More... | |
void | ON_Dead () override |
The female is dead. More... | |
bool | UpdateYoung (THare *a_old, THare *a_new) |
Swap a young list pointer. More... | |
void | AddYoung (THare *a_new) |
Add a leveret to the list of kids. More... | |
void | ON_YoungKilled (THare *a_young) |
A leveret has been killed. More... | |
void | ON_RemoveYoung (THare *a_young) |
A leveret has matured. More... | |
void | AllYoungKilled () |
Last leveret predated. More... | |
void | AllYoungMatured () |
No more young to look after. More... | |
bool | ON_AreYouMyMum (THare *a_young) |
Debug function. More... | |
bool | SanityCheckYoungList () |
Debug function. More... | |
![]() | |
Hare_Juvenile (int p_x, int p_y, Landscape *p_L, THare_Population_Manager *p_PPM, double p_weight) | |
Constructor for the juvenile hare object. More... | |
void | ReInit (struct_Hare a_data) |
Juvenile object reinitiation. More... | |
void | Init (double p_weight) |
Object initiation. More... | |
~Hare_Juvenile () override | |
Destructor for the juvenile hare object. More... | |
![]() | |
THare (int p_x, int p_y, Landscape *p_L, THare_Population_Manager *p_PPM) | |
Constructor. More... | |
void | THareInit (int p_x, int p_y, THare_Population_Manager *p_PPM) |
Object Initiation. More... | |
~THare () override | |
Destructor. More... | |
double | GetWeight () |
double | GetTotalWeight () |
Provide the wet weight of the hare. More... | |
int | GetAge () |
Provide the age of the hare. More... | |
void | ON_MumDead (Hare_Female *a_Mum) |
Inform Mum that we are dead. More... | |
Hare_Female * | GetMum () |
Get the mother pointer. More... | |
double | GetRMR () |
Get todays RMR. More... | |
int | GetRefNum () |
Get the refnum for this hare. More... | |
void | loadVegPalatability (void) |
Loads static member m_vegPalatability with data. More... | |
![]() | |
TAnimal (int x, int y, Landscape *L) | |
The TAnimal constructor saving the x,y, location and the landscape pointer. More... | |
TAnimal (int x, int y) | |
The TAnimal constructor saving the x,y used if landscape is already set. More... | |
void | SetGuardMapIndex (int a_index_x, int a_index_y) |
Set the guard map index, this is used to avoid two animals operating in the same location when using multithread. More... | |
unsigned | SupplyFarmOwnerRef () const |
Get the current location farm ref if any. More... | |
AnimalPosition | SupplyPosition () const |
Returns the objects location and habitat type and veg type. More... | |
APoint | SupplyPoint () const |
Returns the objects location in ALMaSS coordinates. More... | |
int | SupplyPolygonRef () const |
Returns the polygon reference where the object is located. More... | |
TTypesOfLandscapeElement | SupplyPolygonType () const |
Returns the polygon type where the object is located. More... | |
int | Supply_m_Location_x () const |
Returns the ALMaSS x-coordinate. More... | |
int | Supply_m_Location_y () const |
Returns the ALMaSS y-coordinate. More... | |
int | SupplyGuardCellX () const |
Returns the x-index to the guard cell. More... | |
int | SupplyGuardCellY () const |
Returns the y-index to the guard cell. More... | |
int | SupplyAge () const |
Returns the animals age in days. More... | |
void | SetAge (int a_age) |
Sets the animals age in days. More... | |
virtual void | KillThis () |
Sets all parameters ready for object destruction. More... | |
virtual void | CopyMyself () |
Used to copy the object details to another in descendent classes. More... | |
void | SetX (const int a_x) |
Sets the x-coordinate. More... | |
void | SetY (const int a_y) |
Sets the y-coordinate. More... | |
virtual void | ReinitialiseObject (int a_x, int a_y, Landscape *a_l_ptr) |
virtual void | ReinitialiseObject (int a_x, int a_y) |
Used to re-use an object - must be implemented in descendent classes. More... | |
virtual int | WhatState () |
Returns the objects current state number. More... | |
virtual void | Dying () |
A wrapped for KillThis - ideally should not be used. More... | |
void | CheckManagement () |
Used to start a check for any management related effects at the objects current location. More... | |
void | CheckManagementXY (int a_x, int a_y) |
Used to start a check for any management related effects at x,y. More... | |
![]() | |
int | GetCurrentStateNo () const |
Returns the current state number. More... | |
void | SetCurrentStateNo (int a_num) |
Sets the current state number. More... | |
bool | GetStepDone () const |
Returns the step done indicator flag. More... | |
void | SetStepDone (bool a_bool) |
Sets the step done indicator flag. More... | |
void | ReinitialiseObjectBase () |
Used to initialise an object. More... | |
TALMaSSObject () | |
The constructor for TALMaSSObject. More... | |
virtual | ~TALMaSSObject ()=default |
The destructor for TALMaSSObject. More... | |
Protected Member Functions | |
void | UpdateOestrous () |
Update oestrous counter. More... | |
void | UpdateGestation () |
Update gestation counter. More... | |
void | GiveBirth () |
Produce a litter. More... | |
APoint | PlaceYoung () |
Find somewhere nice for the babies to hide. More... | |
void | DoLactation () |
Lactation. More... | |
void | Mating () |
Mate. More... | |
TTypeOfHareState | st_Dispersal () override |
Female Dispersal. More... | |
TTypeOfHareState | st_Developing () override |
Female Developing. More... | |
TTypeOfHareState | st_Foraging () |
Female Foraging. More... | |
TTypeOfHareState | st_ReproBehaviour () |
Reproductive behaviour control. More... | |
void | InternalPesticideHandlingAndResponse () override |
Handles internal effects of pesticide exposure. If any effects are needed this method must be re-implemented by descendent classes. More... | |
void | GeneralEndocrineDisruptor (double a_pesticide_dose) override |
Handles internal effects of endocrine distrupter pesticide exposure for female. More... | |
void | GeneralOrganoPhosphate (double a_pesticide_dose) override |
Handles internal effects of organophosphate pesticide exposure for female. More... | |
![]() | |
TTypeOfHareState | st_Foraging () |
Juvenile foraging. More... | |
void | st_NextStage () |
Maturation to Hare_Male or Hare_Female. More... | |
TTypeOfHareState | st_Resting () |
Juvenile Resting. More... | |
bool | ShouldMature () |
Test for maturation. More... | |
bool | WasPredated () override |
Test for mortality. More... | |
![]() | |
bool | Run (int a_dist, int a_direction) |
Run a distance in a direction. More... | |
void | EnergyBalance (TTypeOfActivity a_activity, int dist) |
Adjust energy balance for an activity. More... | |
void | TimeBudget (TTypeOfActivity a_activity, int dist) |
Adjust time budger for an activity. More... | |
void | st_Dying () |
Tidy up before removing the object on death. More... | |
virtual void | Running (int a_max_dist) |
Run. More... | |
void | Walking (int a_dist, int a_direction) |
Walking. More... | |
double | Forage (int &time) |
Foraging. More... | |
double | ForageP (int &time) |
Foraging but also incorporating pesticide exposure. More... | |
double | ForageSquare (int a_x, int a_y) |
Forage from an area. More... | |
double | ForageSquareP (int a_x, int a_y, double *a_pestexposure) |
Forage from an area and resturn pesticide exposure as well as food. More... | |
int | GetPegDistance () |
Get peg distance. More... | |
int | GetPegPull () |
Get attractive force of peg. More... | |
int | GetPegDirection () |
Get direction of peg. More... | |
void | MovePeg () |
Move the peg according to attraction forces. More... | |
bool | OnFarmEvent (FarmToDo event) override |
Do we require a response to a farm event. More... | |
![]() | |
void | CorrectWrapRound () |
Corrects wrap around co-ordinate problems. More... | |
Static Protected Member Functions | |
static TTypeOfHareState | st_Resting () |
Resting. More... | |
Protected Attributes | |
int | m_NoYoung |
State variable - current litter size. More... | |
int | m_litter_no |
State variable - current litter number. More... | |
bool | m_sterile |
State variable - is/not sterile. More... | |
int | m_OestrousCounter |
State variable - Days in oestrous. More... | |
int | m_GestationCounter |
State variable - Days in gestation. More... | |
double | m_LeveretMaterial |
State variable - Mass of foetal material. More... | |
TTypeOfActivity | m_reproActivity |
State variable - current reproductive state. More... | |
TListOfHares | m_MyYoung |
Pointer to litter. More... | |
std::mutex | m_MyYoungMutex |
mutex for the young list. More... | |
![]() | |
TTypeOfHareState | m_CurrentHState |
Defines the current activity. More... | |
int | m_Age = 0 |
State variale - hare age. More... | |
Hare_Object | m_Type |
State variale - the type of hare. More... | |
double | m_weight = 0.0 |
State variale - hare weight g. More... | |
double | m_old_weight = 0.0 |
State variale - last hare weight. More... | |
Hare_Female * | m_MyMum = nullptr |
Pointer to the hare's mum. More... | |
THare_Population_Manager * | m_OurPopulationManager |
Pointer to the hare population manager. More... | |
int | m_Lifespan = 0 |
Physiolocal lifespan, assuming nothing else kills the hare (unlikely to reach this age) More... | |
int | m_ActivityTime = 0 |
Minutes of potential activity time per day. More... | |
int | m_StarvationDays = 0 |
State variable - the number of consecutive days in negative energy balance. More... | |
double | m_fatReserve = 0.0 |
State variable - the energy reserve of the hare. More... | |
double | m_TodaysEnergy = 0.0 |
State variable - the amount of energy available today, can be in deficit. More... | |
double | m_EnergyMax = 0.0 |
State variable - the amount of energy it is possible to eat as a multiplyer or RMR. More... | |
double | m_KJRunning = 0.0 |
KJ/m cost of running per kg hare. More... | |
double | m_KJWalking = 0.0 |
KJ/m cost of walking per kg hare. More... | |
double | m_KJForaging = 0.0 |
KJ/m cost of foraging per kg hare. More... | |
double | m_SpeedRunning = 0.0 |
m/min speed of running per kg hare More... | |
double | m_SpeedWalking = 0.0 |
m/min speed of walking per kg hare More... | |
double | m_foragingenergy = 0.0 |
Energy obtained from foraging/feeding. More... | |
int | m_peg_x = 0 |
peg x-coordinate More... | |
int | m_peg_y = 0 |
peg y-coordinate More... | |
int | m_RefNum = 0 |
Unique hare reference number, also functions as sex flag. More... | |
int | m_experiencedDensity = 0 |
State variable used in alternative density-dependent configurations. More... | |
int | m_lastYearsDensity = 0 |
State variable used in alternative density-dependent configurations. More... | |
int | m_ddindex = 0 |
State variable used in alternative density-dependent configurations. More... | |
int | m_expDensity [365] = {} |
State variable used in alternative density-dependent configurations. More... | |
int | m_DensitySum = 0 |
State variable used in alternative density-dependent configurations. More... | |
bool | m_IamSick = false |
flag for sickness - used in conjunction with disease configurations More... | |
double | m_pesticide_burden = 0.0 |
State variable used to hold the current body-burden of pesticide. More... | |
double | m_pesticidedegradationrate = 0.0 |
State variable used to hold the daily degredation rate of the pesticide in the body. More... | |
bool | m_pesticideInfluenced1 = false |
Flag to indicate pesticide effects (e.g. can be used for endocrine distruptors with delayed effects until birth). More... | |
![]() | |
int | m_Location_x |
The objects ALMaSS x coordinate. More... | |
int | m_Location_y |
The objects ALMaSS y coordinate. More... | |
int | m_guard_cell_x |
The index x to the guard cell. More... | |
int | m_guard_cell_y |
The index y to the guard cell. More... | |
int | m_AgeDays {0} |
To hold the age in days. More... | |
PesticideToxicity | m_my_pesticide |
![]() | |
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 | |
![]() | |
static void | SetMum (Hare_Female *) |
Set the mother pointer. Reimplemented in Hare_Infant. More... | |
![]() | |
static void | SetSimulationWidth (int a_value) |
Sets the simulation width. More... | |
static void | SetSimulationHeight (int a_value) |
Sets the simulation height. More... | |
static void | SetDayInYear (int a_value) |
Sets the day in year attribute. More... | |
static void | SetOurLandscape (Landscape *a_value) |
Sets the landscape pointer. More... | |
static void | SetTempToday (double a_value) |
Sets the temperature today attribute. More... | |
![]() | |
static void | OnArrayBoundsError () |
Used for debugging only, tests basic object properties. More... | |
![]() | |
static double * | m_vegPalatability = nullptr |
Will hold and array of palatability for hare for each tov type. Most are 1, but unpalatable vegetation can be specified here. More... | |
![]() | |
static Landscape * | m_OurLandscape = nullptr |
A pointer to the landscape object shared with all TAnimal objects. More... | |
static int | m_SimulationWidth = 0 |
A static member for the simulation width because it is often used by descendent classes. More... | |
static int | m_SimulationHeight = 0 |
A static member for the simulation height because it is often used by descendent classes. More... | |
static double | m_TemperatureToday = 0.0 |
A holder for the temperature today shared with all TAnimal objects. More... | |
static int | m_DayInYear = 0 |
A holder for the day in year shared with all TAnimal objects. More... | |
Class for female hares.
Hare_Female::Hare_Female | ( | int | p_x, |
int | p_y, | ||
Landscape * | p_L, | ||
THare_Population_Manager * | p_PPM, | ||
double | p_weight, | ||
int | a_age, | ||
int | a_Ref | ||
) |
void Hare_Female::AddYoung | ( | THare * | a_new | ) |
Add a leveret to the list of kids.
Adds a new young to the mothers list
References m_MyYoung.
Referenced by THare_Population_Manager::CreateObjects().
void Hare_Female::AllYoungKilled | ( | ) |
Last leveret predated.
Behavioural switch to determine what to do on death of all young. Depends on what we were doing before.
References activity_gestation, activity_givebirth, activity_inoestrous, activity_lactation, activity_oestrouscycle, cfg_DaysToOestrous, m_OestrousCounter, TAnimal::m_OurLandscape, m_reproActivity, CfgInt::value(), and Landscape::Warn().
Referenced by ON_YoungKilled().
void Hare_Female::AllYoungMatured | ( | ) |
No more young to look after.
References activity_gestation, activity_givebirth, activity_inoestrous, activity_lactation, activity_oestrouscycle, cfg_DaysToOestrous, m_NoYoung, m_OestrousCounter, TAnimal::m_OurLandscape, m_reproActivity, CfgInt::value(), and Landscape::Warn().
Referenced by ON_RemoveYoung().
|
overridevirtual |
Female BeginStep.
Reimplemented from Hare_Juvenile.
References cfg_hare_escape_dist, cfg_hare_minimum_breeding_weight, cfg_hare_proximity_alert, cfg_HareFemaleSicknessDensityDepValue, cfg_MaxEnergyIntakeScaler, TAnimal::CheckManagement(), g_rand_uni_fnc(), THare_Population_Manager::GetKJperM(), THare::GetRMR(), THare_Population_Manager::GetTotalDensity(), THare::m_ActivityTime, THare::m_Age, THare::m_ddindex, THare::m_DensitySum, THare::m_EnergyMax, THare::m_expDensity, THare::m_experiencedDensity, THare::m_foragingenergy, THare::m_IamSick, THare::m_KJForaging, THare::m_KJRunning, THare::m_KJWalking, THare::m_lastYearsDensity, THare::m_Lifespan, TAnimal::m_Location_x, TAnimal::m_Location_y, TAnimal::m_OurLandscape, THare::m_OurPopulationManager, TALMaSSObject::m_StepDone, THare::m_weight, ON_Dead(), THare::Running(), Landscape::SupplyDayInYear(), CfgInt::value(), CfgFloat::value(), and Hare_Juvenile::WasPredated().
|
protected |
Lactation.
Feed the young milk.
Here the female uses energy and converts it to milk, which is shared equally between her leverets Assumptions:
a) There is a maximum amount of milk possible to feed to a leveret
b) Equal distribution of inadequate resources
NB the currency is KJ energy not milk per se
References g_PropSolidFood, THare::GetAge(), THare_Population_Manager::GetMaxDailyGrowthEnergy(), THare::m_fatReserve, m_MyYoung, and THare::m_OurPopulationManager.
Referenced by GiveBirth(), and st_ReproBehaviour().
void Hare_Female::dumpEnergy | ( | ) |
Used to record energetic status.
References THare::m_fatReserve, THare::m_foragingenergy, TAnimal::m_OurLandscape, THare::m_TodaysEnergy, THare::m_weight, and Landscape::SupplyDayInYear().
Referenced by st_Foraging().
|
overridevirtual |
Female EndStep.
Reimplemented from Hare_Juvenile.
References cfg_hare_pesticideresponse_on, InternalPesticideHandlingAndResponse(), THare::MovePeg(), and CfgBool::value().
|
overrideprotectedvirtual |
Handles internal effects of endocrine distrupter pesticide exposure for female.
Reimplemented from THare.
References m_GestationCounter, and THare::m_pesticideInfluenced1.
Referenced by InternalPesticideHandlingAndResponse().
|
overrideprotectedvirtual |
Handles internal effects of organophosphate pesticide exposure for female.
Reimplemented from THare.
References g_rand_uni_fnc(), l_pest_daily_mort, THare::m_CurrentHState, TALMaSSObject::m_StepDone, tohs_Dying, and CfgFloat::value().
Referenced by InternalPesticideHandlingAndResponse().
|
protected |
Produce a litter.
Give birth to Hare_Infants.
Lets assume we do this a deterministic way. So the number of leverets depends on the mass of leveret material collected.
The size is determined by the mass divided by the number possible such that size stays in the range 95-125g
Litter size limited to max 4
Once they are born they need to be placed somewhere. This should be somewhere where the vegetation is not too sparse
References activity_lactation, activity_oestrouscycle, cfg_DaysToOestrous, cfg_maxLeveretBirthWeight, cfg_minLeveretBirthWeight, THare_Population_Manager::CreateObjects(), DoLactation(), struct_Hare::HM, m_LeveretMaterial, m_litter_no, m_OestrousCounter, TAnimal::m_OurLandscape, THare::m_OurPopulationManager, THare::m_pesticideInfluenced1, m_reproActivity, APoint::m_x, APoint::m_y, PlaceYoung(), Landscape::SupplyMonth(), CfgInt::value(), and CfgFloat::value().
Referenced by st_ReproBehaviour().
void Hare_Female::Init | ( | double | p_weight, |
int | a_age, | ||
int | a_Ref | ||
) |
Object initiation.
References activity_oestrouscycle, THare_Population_Manager::GetKJperM(), hob_Female, THare::m_Age, THare::m_fatReserve, m_GestationCounter, THare::m_IamSick, THare::m_KJForaging, THare::m_KJRunning, THare::m_KJWalking, m_LeveretMaterial, m_litter_no, m_OestrousCounter, THare::m_old_weight, THare::m_OurPopulationManager, THare::m_RefNum, m_reproActivity, m_sterile, THare::m_Type, and THare::m_weight.
Referenced by Hare_Female(), and ReInit().
|
overrideprotectedvirtual |
Handles internal effects of pesticide exposure. If any effects are needed this method must be re-implemented by descendent classes.
This method is re-implemented ffrom THare for any class which has pesticide response behaviour. If the body burden exceeds the trigger then call pesticide-specific actions by dose
Reimplemented from THare.
References THare_Population_Manager::BodyBurdenOut(), cfg_HarePesticideAccumulationThreshold, GeneralEndocrineDisruptor(), GeneralOrganoPhosphate(), TAnimal::m_OurLandscape, THare::m_OurPopulationManager, THare::m_pesticide_burden, THare::m_pesticidedegradationrate, THare::m_weight, Landscape::SupplyDayInYear(), Landscape::SupplyPesticideType(), Landscape::SupplyYearNumber(), ttop_AcuteEffects, ttop_NoPesticide, ttop_ReproductiveEffects, and CfgFloat::value().
Referenced by EndStep().
|
protected |
Mate.
References activity_gestation, cfg_hare_DaysToGestation, m_GestationCounter, m_LeveretMaterial, m_reproActivity, and CfgInt::value().
Referenced by st_ReproBehaviour().
bool Hare_Female::ON_AreYouMyMum | ( | THare * | a_young | ) |
Debug function.
Debug code for checking young lists.
|
overridevirtual |
The female is dead.
Do the housekeeping needed for object destruction
Reimplemented from Hare_Juvenile.
References THare::m_CurrentHState, TALMaSSObject::m_CurrentStateNo, m_MyYoung, TALMaSSObject::m_StepDone, and tohs_Dying.
Referenced by BeginStep(), and Step().
void Hare_Female::ON_RemoveYoung | ( | THare * | a_young | ) |
A leveret has matured.
This functions simply sorts through the m_Young vector and removes the matured young.
This is identical to ON_YoungKilled, but differs in the result of removing the last one.
References AllYoungMatured(), m_MyYoung, m_MyYoungMutex, m_NoYoung, TAnimal::m_OurLandscape, and Landscape::Warn().
Referenced by Hare_Young::st_NextStage().
void Hare_Female::ON_YoungKilled | ( | THare * | a_young | ) |
A leveret has been killed.
This functions sorts through the m_Young vector and removes the dead young
References AllYoungKilled(), m_MyYoung, m_MyYoungMutex, m_NoYoung, TAnimal::m_OurLandscape, and Landscape::Warn().
Referenced by THare::st_Dying().
|
protected |
Find somewhere nice for the babies to hide.
Find a place to put the young.
References Landscape::CorrectCoordsPt(), TAnimal::m_Location_x, TAnimal::m_Location_y, TAnimal::m_OurLandscape, APoint::m_x, APoint::m_y, and Landscape::SupplyVegHeight().
Referenced by GiveBirth().
void Hare_Female::ReInit | ( | struct_Hare | a_data | ) |
Female object reinitiation.
References struct_Hare::age, struct_Hare::HM, Init(), struct_Hare::L, TALMaSSObject::m_CurrentStateNo, TAnimal::m_Location_x, TAnimal::m_Location_y, TAnimal::m_OurLandscape, struct_Hare::RefNum, THare::THareInit(), struct_Hare::weight, struct_Hare::x, and struct_Hare::y.
bool Hare_Female::SanityCheckYoungList | ( | ) |
Debug function.
Debug code for checking young lists.
References THare::GetMum(), m_MyYoung, and m_NoYoung.
|
inline |
|
overrideprotectedvirtual |
Female Developing.
Reimplemented from Hare_Juvenile.
References activity_lactation, activity_Resting, cfg_adult_starvation_threshold, cfg_adult_starve, cfg_AdultMaxFat, cfg_fixadult_starve, cfg_juv_starve, THare::EnergyBalance(), g_random_fnc(), THare_Population_Manager::GetGrowthEfficiencyF(), THare_Population_Manager::GetGrowthEfficiencyP(), THare_Population_Manager::GetMaxDailyGrowthEnergyF(), THare_Population_Manager::GetMaxDailyGrowthEnergyP(), THare::m_Age, THare::m_fatReserve, THare::m_OurPopulationManager, m_reproActivity, THare::m_StarvationDays, THare::m_TodaysEnergy, THare::m_weight, tohs_Dispersal, tohs_Dying, tohs_Foraging, CfgInt::value(), and CfgFloat::value().
Referenced by Step().
|
overrideprotectedvirtual |
Female Dispersal.
Uses the base class st_dispersal but then adds some special female functionality.
Reimplemented from Hare_Juvenile.
References activity_oestrouscycle, TAnimal::m_Location_x, TAnimal::m_Location_y, m_MyYoung, THare::m_peg_x, THare::m_peg_y, m_reproActivity, Hare_Juvenile::st_Dispersal(), tohs_Dying, and tohs_Foraging.
Referenced by Step().
|
protected |
Female Foraging.
Effectively the day is started here, unless we have been dispersing.
At this point we have a whole day to use and need to figure out how to use it.
There are some constraints on the time we can use for foraging such that we need a certain amount of time for resting e.g. coprophagy. For now I am going to assume that the resting time required is proportional to forage time used and the ratio of the two is in cfg_ForageRestingRatio
Four different ways of implementing density dependence are selectable here.
References activity_Foraging, activity_lactation, cfg_ForageRestingRatio, cfg_hare_pesticideresponse_on, dumpEnergy(), THare::Forage(), THare::ForageP(), g_rand_uni_fnc(), THare_Population_Manager::GetAdultDensity(), THare_Population_Manager::GetDelayedAdultDensity(), THare_Population_Manager::GetInterference(), THare::m_ActivityTime, THare_Population_Manager::m_HareThresholdDD, THare::m_lastYearsDensity, TAnimal::m_Location_x, TAnimal::m_Location_y, THare::m_OurPopulationManager, m_reproActivity, THare::m_TodaysEnergy, THare::TimeBudget(), tohs_Dispersal, tohs_ReproBehaviour, tohs_Resting, CfgFloat::value(), and CfgBool::value().
Referenced by Step().
|
protected |
Reproductive behaviour control.
A switch determining what repro behaviour to carry out.
Repro behaviour to consider:
1) Mating - either a function of her or the male - but lets keep it here so the male is a simple as possible.
2) Update Gestation.
3) Give Birth.
4) Lactation.
5) Getting resources for leveret production.
6) Determining leveret size and litter size?
Also optional mortality based upon reproductive mortality
References activity_gestation, activity_givebirth, activity_inoestrous, activity_lactation, activity_oestrouscycle, cfg_hare_minimum_breeding_weight, cfg_HareFemaleReproMortValue, DoLactation(), GiveBirth(), TAnimal::m_OurLandscape, m_reproActivity, THare::m_weight, Mating(), tohs_Dying, tohs_Resting, UpdateGestation(), UpdateOestrous(), CfgInt::value(), and Landscape::Warn().
Referenced by Step().
|
staticprotected |
Resting.
This method uses up the rest of the day in resting
References tohs_Developing.
Referenced by Step().
|
overridevirtual |
Female Step.
Reimplemented from Hare_Juvenile.
References cfg_hare_adult_predation, THare::m_CurrentHState, TALMaSSObject::m_CurrentStateNo, TAnimal::m_OurLandscape, TALMaSSObject::m_StepDone, ON_Dead(), st_Developing(), st_Dispersal(), st_Foraging(), st_ReproBehaviour(), st_Resting(), tohs_Developing, tohs_Dispersal, tohs_Dying, tohs_Foraging, tohs_InitialState, tohs_ReproBehaviour, tohs_Resting, CfgFloat::value(), and Landscape::Warn().
|
protected |
Update gestation counter.
Counts down gestation and grows foetal mass.
Figures out how much energy to use on growing the kids and add this to the m_LeveretMaterial
Some assumptions:
1) Foetal growth is linear, with a max per day
2) If the female's fat reserves fall below the hunger threshold value
she does not use energy on the foetus
3) maximum X% of the free energy is used on foetus production - this is an input variable.
References activity_givebirth, cfg_hare_adult_dispersal_threshold, cfg_hare_foetusenergyproportion, g_hare_maxFoetalKJ, THare::m_fatReserve, m_GestationCounter, m_LeveretMaterial, m_reproActivity, and CfgFloat::value().
Referenced by st_ReproBehaviour().
|
protected |
Update oestrous counter.
Updates Oestrous if it is the breeding season.
Optional disease and minimum reproductive weight code for POM.
References activity_inoestrous, cfg_DaysToOestrous, cfg_hare_adult_breed_threshold, cfg_hare_minimum_breeding_weight, cfg_ReproEndDay, cfg_ReproStartDay, THare::m_fatReserve, THare::m_IamSick, m_litter_no, m_OestrousCounter, TAnimal::m_OurLandscape, m_reproActivity, THare::m_weight, Landscape::SupplyDayInYear(), CfgInt::value(), and CfgFloat::value().
Referenced by st_ReproBehaviour().
Swap a young list pointer.
This functions simply sorts through the m_Young vector and replaces the occurence of a_old with a_new. It is used to replace Hare_Infant pointers with Hare_Young pointers
References m_MyYoung.
Referenced by THare_Population_Manager::CreateObjects().
|
protected |
State variable - Days in gestation.
Referenced by GeneralEndocrineDisruptor(), Init(), Mating(), and UpdateGestation().
|
protected |
State variable - Mass of foetal material.
Referenced by GiveBirth(), Init(), Mating(), and UpdateGestation().
|
protected |
State variable - current litter number.
Referenced by GiveBirth(), Init(), and UpdateOestrous().
|
protected |
Pointer to litter.
Referenced by AddYoung(), DoLactation(), ON_AreYouMyMum(), ON_Dead(), ON_RemoveYoung(), ON_YoungKilled(), SanityCheckYoungList(), st_Dispersal(), and UpdateYoung().
|
protected |
mutex for the young list.
Referenced by ON_RemoveYoung(), and ON_YoungKilled().
|
protected |
State variable - current litter size.
Referenced by AllYoungMatured(), ON_AreYouMyMum(), ON_RemoveYoung(), ON_YoungKilled(), and SanityCheckYoungList().
|
protected |
State variable - Days in oestrous.
Referenced by AllYoungKilled(), AllYoungMatured(), GiveBirth(), Init(), and UpdateOestrous().
|
protected |
State variable - current reproductive state.
Referenced by AllYoungKilled(), AllYoungMatured(), GiveBirth(), Init(), Mating(), st_Developing(), st_Dispersal(), st_Foraging(), st_ReproBehaviour(), UpdateGestation(), and UpdateOestrous().
|
protected |
State variable - is/not sterile.
Referenced by Init(), and SetSterile().