Goose Management Model ODdox  1.02
Goose_Base.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************************************
3 Copyright (c) 2013, Christopher John Topping, University of Aarhus
4 All rights reserved.
5 
6 Redistribution and use in source and binary forms, with or without modification, are permitted provided
7 that the following conditions are met:
8 
9 Redistributions of source code must retain the above copyright notice, this list of conditions and the
10 following disclaimer.
11 Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
12 the following disclaimer in the documentation and/or other materials provided with the distribution.
13 
14 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
15 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
17 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
18 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
19 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
21 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 ********************************************************************************************************
23 */
34 //---------------------------------------------------------------------------
35 
36 #ifndef Goose_BaseH
37 #define Goose_BaseH
38 //---------------------------------------------------------------------------
39 
40 //---------------------------------------------------------------------------
41 
42 class APoint;
43 class TAnimal;
44 class GooseMemoryMap;
45 class Goose_Base;
47 
48 //------------------------------------------------------------------------------
52 //typedef vector<Goose_Base*> TListOfGoose_Base;
53 //---------------------------------------------------------------------------
54 
58 typedef enum
59 {
68 
69 
74 typedef enum
75 {
85 
90 typedef enum
91 {
98 
102 typedef enum
103 {
109 
114 {
115 public:
126 };
127 
131 class Goose_Base : public TAnimal
132 {
143 protected:
155  bool m_sex;
159  GooseSpecies m_myspecies;
167  APoint m_MyRoost;
175  double m_weight;
187  double m_BMR;
191  double m_DEB;
199  static double m_SnowDepth;
227  static double m_flightcost;
235  static double m_mingooseforagerate[ gs_foobar ];
239  static double m_GooseForageDist[gs_foobar];
243  static double m_GooseForageDistX2[gs_foobar];
247  static double m_GooseFieldForageDist[gs_foobar];
251  static double m_GooseFieldForageDistX2[gs_foobar];
255  static double m_GooseLeavingThreshold;
279  double m_BodyCondition[5];
303  static int m_followinglikelyhood[ (int)gst_foobar ];
312 
313 public:
317  Goose_Base(Landscape* p_L, Goose_Population_Manager* p_NPM, double a_weight, bool a_sex, APoint a_roost);
319  void Init(Goose_Population_Manager* p_NPM, double a_weight, bool a_sex, APoint a_roost);
321  void ReInit(Landscape* p_L, Goose_Population_Manager* p_NPM, double a_weight, bool a_sex, APoint a_roost);
325  virtual ~Goose_Base();
329  void st_Dying( void );
333  void Explore();
345  APoint GetRoost() { return m_MyRoost; }
350  return m_MaxIntakeSource;
351  }
355  virtual void ChangeRoost() { ; }
363  virtual APoint ChooseHopLoc() { return m_MyRoost; }
367  void EvaluateForageToHopLoc( APoint a_HopLoc );
371  virtual void StartDay(void);
375  virtual void BeginStep(void) { StartDay(); }
379  virtual void Step(void);
383  virtual void EndStep(void) {} // NB this is not used in the Goose_Base code
387  virtual void On_Emigrate()
388  {
390  }
398  void SetBodyCondition(double a_condition, unsigned a_index) { m_BodyCondition[a_index] = a_condition; }
402  void AddBodyCondition(double a_condition) { m_TheBodyCondition += a_condition; }
406  void SubtractBodyCondition( double a_condition) { m_TheBodyCondition -= a_condition; }
410  int GetGroupsize() { return m_groupsize; }
414  double ScaleForageToGroupsize(double a_forage) { return m_groupsize * a_forage; }
422  GooseSpecies GetSpecies() {
423  return m_myspecies;
424  }
428  bool GetSex() { return m_sex; }
434  }
439  return m_FlightNumber;
440  }
445  return m_FlightDistance;
446  }
451  return m_DEB;
452  }
457  return m_energyToday;
458  }
465  int GetForagingTime(int a_EndForagingTime, double a_RoostLeaveTime);
471  double GetGooseMinForageRate(GooseSpecies a_species)
472  {
473  return m_mingooseforagerate[a_species];
474  }
489  double GetMaxForageRate(double a_grain, double a_maize, double a_grass, double a_interferenceComp, bool a_iscereal, TTypesOfVegetation a_veg, bool a_stubble, TTypesOfVegetation a_prevcrop) {
490  double MaxRate = 0.0;
491  if (a_grain > MaxRate) {
492  MaxRate = a_grain;
494  }
495  else if (a_maize > MaxRate) {
496  MaxRate = a_maize;
498  }
499  else if (a_grass > MaxRate) {
500  MaxRate = a_grass;
502  }
503  else
504  {
505  MaxRate = 0;
507  }
508  MaxRate *= a_interferenceComp;
509  MaxRate = AdjustIntakeRateToSnowDepth(MaxRate);
510  m_MaxIntakeSource.m_iscereal = a_iscereal;
511  m_MaxIntakeSource.m_instubble = a_stubble;
512  m_MaxIntakeSource.m_veg = a_veg;
513  m_MaxIntakeSource.m_prevsowncrop = a_prevcrop;
514  /**** CJT DEBUG ****
515  if ((a_stubble) && (!a_iscereal) && (m_MaxIntakeSource.m_maxintakesource == tomis_grain))
516  {
517  g_msg->WarnAddInfo(WARN_BUG, "Day ", m_OurLandscape->SupplyDayInYear());
518  g_msg->WarnAddInfo(WARN_BUG, "Veg ", a_veg);
519  g_msg->WarnAddInfo(WARN_BUG, "Prev Crop ", a_prevcrop);
520  g_msg->WarnAddInfo(WARN_BUG, "Grain ", a_grain);
521  g_msg->WarnAddInfo(WARN_BUG, "******** ", 0);
522  }
523  //**** END ****/
524 
525 
526  return MaxRate;
527  }
528 
536  double GetMaxIntakeRate( double a_grain, double a_maize, double a_grass) {
537  double MaxRate = 0.0;
538  if (a_grain > MaxRate) {
539  MaxRate = a_grain;
540  }
541  if (a_maize > MaxRate) {
542  MaxRate = a_maize;
543  }
544  if (a_grass > MaxRate) {
545  MaxRate = a_grass;
546  }
547  return MaxRate;
548  }
552  void SetSex( bool a_sex ) {
553  m_sex = a_sex;
554  }
558  double GetTotalWeight() {return m_weightTotal;}
560  double GetRoostLeaveTime() { return m_LeaveRoostTime; }
564  void SetFlightCost(double a_cost) { m_flightcost = a_cost; }
568  double GetFlightCost() {
569  return m_flightcost * m_weightTotal;
570  }
574  void Set_mingooseforagerate(double a_cost, GooseSpecies a_species) { m_mingooseforagerate[a_species] = a_cost; }
578  void Set_Indivmingooseforagerate( double a_cost) {
579  m_Indivmingooseforagerate = a_cost;
580  }
584  void Set_GooseLeavingThreshold(double a_threshold) { m_GooseLeavingThreshold = a_threshold; }
588  void Set_GooseMaxAppetiteScaler(double a_cost) { m_GooseMaxAppetiteScaler = a_cost; }
596  void Set_GooseKJtoFatConversion(double a_cost) { m_GooseKJtoFatConversion = a_cost; }
600  void Set_GooseFattoKJConversion(double a_cost) { m_GooseFattoKJConversion = a_cost; }
604  void Set_GooseMinForageOpenness(double a_cost) { m_GooseMinForageOpenness = a_cost; }
608  void Set_GooseForageDist(double sp1, double sp2, double sp3)
609  {
610  //Dist
611  m_GooseForageDist[gs_Pinkfoot] = sp1;
612  m_GooseForageDist[gs_Barnacle] = sp2;
613  m_GooseForageDist[gs_Greylag] = sp3;
614  // DistX2
615  m_GooseForageDistX2[gs_Pinkfoot] = sp1 * 2.0;
616  m_GooseForageDistX2[gs_Barnacle] = sp2 * 2.0;
617  m_GooseForageDistX2[gs_Greylag] = sp3 * 2.0;
618  }
622  void Set_GooseFieldForageDist(double sp1, double sp2, double sp3)
623  {
624  //Dist
625  m_GooseFieldForageDist[gs_Pinkfoot] = sp1;
626  m_GooseFieldForageDist[gs_Barnacle] = sp2;
627  m_GooseFieldForageDist[gs_Greylag] = sp3;
628  // DistX2
629  m_GooseFieldForageDistX2[gs_Pinkfoot] = sp1 * 2.0;
630  m_GooseFieldForageDistX2[gs_Barnacle] = sp2 * 2.0;
631  m_GooseFieldForageDistX2[gs_Greylag] = sp3 * 2.0;
632  }
634  void Set_GooseFollowingLikelyhood( int a_likelyhood, GooseSpeciesType a_speciestype) { m_followinglikelyhood[a_speciestype] = a_likelyhood;}
636  void Set_GooseLeavingRoost( bool a_leaving) {m_LeavingRoost = a_leaving;}
640  void On_MoveTo(int a_x, int a_y ) { FlyTo( a_x, a_y); }
644  virtual void KillThis();
648  void On_Bang(int a_polyid );
652  void On_Bang(int a_polyid, double a_scare );
656  void On_Migrate(TTypeOfLeaveReason a_leavereason);
658  double AdjustIntakeRateToSnowDepth(double a_intakerate);
659 protected:
667  void FlyTo(int a_x, int a_y );
671  void FlyTo( APoint a_pt );
672  };
673 
674 #endif
Goose_Base::GetMaxIntakeRate
double GetMaxIntakeRate(double a_grain, double a_maize, double a_grass)
Returns the max intake rate of the three different types of intake.
Definition: Goose_Base.h:536
Goose_Base::m_LeavingRoost
bool m_LeavingRoost
Flag to indicate that we are coming from the roost. Used to control code for "following".
Definition: Goose_Base.h:219
Goose_Base::GetDailyEnergyBudget
double GetDailyEnergyBudget()
Returns the daily energy budget.
Definition: Goose_Base.h:450
Goose_Base::m_energyToday
double m_energyToday
The bird's daily energy account (kJ)
Definition: Goose_Base.h:207
Goose_Base::m_FlightNumber
int m_FlightNumber
Counter for the number of flights per day.
Definition: Goose_Base.h:307
Goose_Base::GetFlightCost
double GetFlightCost()
Get the flight costs per m per g.
Definition: Goose_Base.h:568
togs_Roost
Definition: Goose_Base.h:80
Goose_Base::st_Roost
TTypeOfGoose_BaseState st_Roost()
Roosting until next forage or next morning.
Definition: Goose_Base.cpp:550
Goose_Base::m_myForageIndex
int m_myForageIndex
Temporary storage for a forage location index - this is a speed optimisation.
Definition: Goose_Base.h:291
Goose_Base::m_DEB
double m_DEB
The daily energy budget excluding flying (kJ)
Definition: Goose_Base.h:191
Goose_Base::On_Emigrate
virtual void On_Emigrate()
Cause the bird to immediately transition to Emigrate.
Definition: Goose_Base.h:387
Goose_Base::m_GooseLeavingThreshold
static double m_GooseLeavingThreshold
The trigger for leaving as a 5 day average of body condition.
Definition: Goose_Base.h:255
tolr_leanweight
Definition: Goose_Base.h:106
Goose_Base::m_groupsize
int m_groupsize
The size of the group this bird represents.
Definition: Goose_Base.h:171
Goose_Base::m_LeaveRoostTime
double m_LeaveRoostTime
Controls the time when the goose will leave the roost.
Definition: Goose_Base.h:215
Goose_Base::GetSex
bool GetSex()
Returns the sex.
Definition: Goose_Base.h:428
togs_Die
Definition: Goose_Base.h:81
tomis_grass
Definition: Goose_Base.h:92
Goose_Base::GetForagingTime
int GetForagingTime(int a_EndForagingTime, double a_RoostLeaveTime)
Returns the time spent foraging.
Definition: Goose_Base.cpp:738
togs_ToRoost
Definition: Goose_Base.h:79
Goose_Base::GetGroupsize
int GetGroupsize()
Returns the groupsize.
Definition: Goose_Base.h:410
Goose_Base::On_MoveTo
void On_MoveTo(int a_x, int a_y)
The goose is moved to the location specified by a_x, a_y - caused by group decision.
Definition: Goose_Base.h:640
Goose_Base::m_GooseFieldForageDist
static double m_GooseFieldForageDist[gs_foobar]
The maximum distance travelled from roost to forage sites for each species of goose (m)
Definition: Goose_Base.h:247
Goose_Base::m_GooseFattoKJConversion
static double m_GooseFattoKJConversion
Conversion rate fat to kJ.
Definition: Goose_Base.h:271
Goose_Base::GetFlightDistance
int GetFlightDistance()
Returns the total daily distance flown.
Definition: Goose_Base.h:444
Goose_Base::m_BodyCondition
double m_BodyCondition[5]
A variable describing current body condition over the past 5 days.
Definition: Goose_Base.h:279
Goose_Base::GetDailyEnergyExpenditure
double GetDailyEnergyExpenditure()
Returns the daily energy expenditure.
Definition: Goose_Base.h:456
Goose_Base::st_ChooseForageLocation
TTypeOfGoose_BaseState st_ChooseForageLocation(void)
Selects a forage location based on past memory, or initiates an exploration.
Definition: Goose_Base.cpp:258
Goose_Base::m_GooseMaxEnergyReserveProportion
static double m_GooseMaxEnergyReserveProportion
Max proportion of weight that can be energy reserve.
Definition: Goose_Base.h:263
Goose_Base::Set_GooseMinForageOpenness
void Set_GooseMinForageOpenness(double a_cost)
Set the min forage openess for all geese.
Definition: Goose_Base.h:604
Goose_Base::GetBodyCondition
double GetBodyCondition()
Returns the current body condition.
Definition: Goose_Base.h:394
Goose_Base::Step
virtual void Step(void)
The Step is the second 'part' of the timestep that an animal can behave in. It is called continuously...
Definition: Goose_Base.cpp:244
TTypeOfLeaveReason
TTypeOfLeaveReason
Definition: Goose_Base.h:102
Goose_Base::SubtractBodyCondition
void SubtractBodyCondition(double a_condition)
Alters body conditon by subtraction of a double value.
Definition: Goose_Base.h:406
Goose_Base::ReInit
void ReInit(Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
ReInit for object pool.
Definition: Goose_Base.cpp:168
Goose_Base::ChangeRoost
virtual void ChangeRoost()
Find the closest roost.
Definition: Goose_Base.h:355
Goose_Base::GetMaxAppetiteHitTime
int GetMaxAppetiteHitTime()
Returns m_DailyMaxAppetiteHitTime.
Definition: Goose_Base.h:432
Goose_Base::m_SnowDepth
static double m_SnowDepth
The current snow depth. Held here for speed optimization.
Definition: Goose_Base.h:199
tolr_bodycondition
Definition: Goose_Base.h:105
Goose_Base::GetTotalWeight
double GetTotalWeight()
Returns the weight of the bird.
Definition: Goose_Base.h:558
togs_ChooseForageLocation
Definition: Goose_Base.h:77
TMaxIntakeSource::m_veg
TTypesOfVegetation m_veg
The vegetation type.
Definition: Goose_Base.h:121
Goose_Base::GetRoostLeaveTime
double GetRoostLeaveTime()
Returns the time when the goose leaves the roost.
Definition: Goose_Base.h:560
Goose_Base::AdjustIntakeRateToSnowDepth
double AdjustIntakeRateToSnowDepth(double a_intakerate)
When there is snow, the intake rate is decreased by 10 % per cm of snow.
Definition: Goose_Base.cpp:730
tomis_maize
Definition: Goose_Base.h:94
Goose_Base::Set_Indivmingooseforagerate
void Set_Indivmingooseforagerate(double a_cost)
Set the mimimum tolerated forage rate for the individual goose.
Definition: Goose_Base.h:578
Goose_Base::Set_mingooseforagerate
void Set_mingooseforagerate(double a_cost, GooseSpecies a_species)
Set the mimimum tolerated forage rate for all geese.
Definition: Goose_Base.h:574
Goose_Base::m_DailyMaxAppetiteHitTime
int m_DailyMaxAppetiteHitTime
The time of day when m_DailyMaxAppetite was hit.
Definition: Goose_Base.h:203
Goose_Base::m_myMemPolyID
int m_myMemPolyID
Temporary storage for a memory location polygon id.
Definition: Goose_Base.h:295
Goose_Base::m_GooseMaxAppetiteScaler
static double m_GooseMaxAppetiteScaler
Scaler to determine the max kJ possible to eat per day based on non-energy reserve weight.
Definition: Goose_Base.h:259
TMaxIntakeSource
Definition: Goose_Base.h:113
Goose_Base::m_GooseForageDistX2
static double m_GooseForageDistX2[gs_foobar]
Double the maximum distance travelled from roost to forage sites for each species of goose (m) - this...
Definition: Goose_Base.h:243
Landscape
The landscape class containing all environmental and topographical data.
Definition: landscape.h:112
Goose_Base::SetBodyCondition
void SetBodyCondition(double a_condition, unsigned a_index)
Sets the current body condition.
Definition: Goose_Base.h:398
Goose_Base::BeginStep
virtual void BeginStep(void)
The BeginStep is the first 'part' of the timestep that an animal can behave in. It is called once per...
Definition: Goose_Base.h:375
TMaxIntakeSource::m_maxintakesource
TTypeOfMaxIntakeSource m_maxintakesource
The intake source which gave the maximum intake.
Definition: Goose_Base.h:117
TMaxIntakeSource::m_iscereal
bool m_iscereal
Flag for whether the intake source is a cereal.
Definition: Goose_Base.h:119
tomis_sowncrop
Definition: Goose_Base.h:93
Goose_Base::Set_GooseFieldForageDist
void Set_GooseFieldForageDist(double sp1, double sp2, double sp3)
Set the max forage distance from a field for all geese.
Definition: Goose_Base.h:622
Goose_Base::m_myspecies
GooseSpecies m_myspecies
Holds goose species.
Definition: Goose_Base.h:159
Goose_Base::m_FlightDistance
int m_FlightDistance
Storage for the total distance flown per day.
Definition: Goose_Base.h:311
TTypesOfVegetation
TTypesOfVegetation
Definition: tov_declaration.h:30
gst_GreylagNonBreeder
Definition: Goose_Base.h:65
TMaxIntakeSource::m_instubble
bool m_instubble
Flag to indicate if the intake source was in stubble.
Definition: Goose_Base.h:123
tomis_grain
Definition: Goose_Base.h:95
Goose_Base::GetGooseMinForageRate
double GetGooseMinForageRate(GooseSpecies a_species)
Returns the minimum forage rate for the species.
Definition: Goose_Base.h:471
TAnimal
Goose_Base::m_DailyMaxAppetite
double m_DailyMaxAppetite
The daily max kJ possible to get as intake.
Definition: Goose_Base.h:195
togs_foobar
Definition: Goose_Base.h:83
Goose_Base::Init
void Init(Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
Intitialise object.
Definition: Goose_Base.cpp:111
Goose_Base::Set_GooseMaxEnergyReserveProportion
void Set_GooseMaxEnergyReserveProportion(double a_prop)
Set the maximum energy reserve proportion allowed for all geese.
Definition: Goose_Base.h:592
Goose_Base::GetMaxIntakeSource
TMaxIntakeSource GetMaxIntakeSource()
Supply the current max intake source.
Definition: Goose_Base.h:349
Goose_Base::GetSpecies
GooseSpecies GetSpecies()
Returns the species.
Definition: Goose_Base.h:422
Goose_Base::m_GooseKJtoFatConversion
static double m_GooseKJtoFatConversion
Conversion rate kJ to fat.
Definition: Goose_Base.h:267
Goose_Base::CurrentGState
TTypeOfGoose_BaseState CurrentGState
Variable to record current behavioural state.
Definition: Goose_Base.h:147
Goose_Base::m_forageLocCount
int m_forageLocCount
The number of forage locations visited today.
Definition: Goose_Base.h:183
TTypeOfMaxIntakeSource
TTypeOfMaxIntakeSource
Definition: Goose_Base.h:90
Goose_Base::st_Dying
void st_Dying(void)
Behavioural state dying.
Definition: Goose_Base.cpp:251
gst_BarnacleNonBreeder
Definition: Goose_Base.h:63
Goose_Base::m_GooseForageDist
static double m_GooseForageDist[gs_foobar]
The maximum distance travelled from roost to forage sites for each species of goose (m)
Definition: Goose_Base.h:239
Goose_Base::Set_GooseForageDist
void Set_GooseForageDist(double sp1, double sp2, double sp3)
Set the max forage distance from roost for all geese.
Definition: Goose_Base.h:608
gst_PinkfootNonBreeder
Definition: Goose_Base.h:61
gst_foobar
Definition: Goose_Base.h:66
Goose_Base::m_MyMemory
GooseMemoryMap * m_MyMemory
The Goose Memory.
Definition: Goose_Base.h:299
Goose_Population_Manager
The class to handle all goose population related matters.
Definition: Goose_Population_Manager.h:392
Goose_Base::On_Migrate
void On_Migrate(TTypeOfLeaveReason a_leavereason)
The goose is told to leave the simulation area (poss due to bad weather)
Definition: Goose_Base.cpp:722
Goose_Base::GetMaxForageRate
double GetMaxForageRate(double a_grain, double a_maize, double a_grass, double a_interferenceComp, bool a_iscereal, TTypesOfVegetation a_veg, bool a_stubble, TTypesOfVegetation a_prevcrop)
Returns the max forage rate of the three different types of forage The max rate is adjusted according...
Definition: Goose_Base.h:489
Goose_Base::ScaleForageToGroupsize
double ScaleForageToGroupsize(double a_forage)
Scales forage to groupsize.
Definition: Goose_Base.h:414
Goose_Base::EndStep
virtual void EndStep(void)
The EndStep is the third 'part' of the timestep that an animal can behave in. It is called once per t...
Definition: Goose_Base.h:383
TMaxIntakeSource::m_prevsowncrop
TTypesOfVegetation m_prevsowncrop
The previous sown crop on the forage location.
Definition: Goose_Base.h:125
tolr_migration
Definition: Goose_Base.h:104
togs_InitialState
Definition: Goose_Base.h:76
Goose_Base::Set_GooseLeavingRoost
void Set_GooseLeavingRoost(bool a_leaving)
Set the flag to indicate if we are coming from the roost.
Definition: Goose_Base.h:636
GooseSpeciesType
GooseSpeciesType
Definition: Goose_Base.h:58
Goose_Base::m_followinglikelyhood
static int m_followinglikelyhood[(int) gst_foobar]
An attribute used to determine the chance of following or exploring when foraging.
Definition: Goose_Base.h:303
Goose_Base::SetSex
void SetSex(bool a_sex)
Sets the sex.
Definition: Goose_Base.h:552
gst_BarnacleFamilyGroup
Definition: Goose_Base.h:62
Goose_Base::m_MaxIntakeSource
TMaxIntakeSource m_MaxIntakeSource
Holds information about the food source which gave max intake rate.
Definition: Goose_Base.h:211
Goose_Base::FlyTo
void FlyTo(int a_x, int a_y)
The goose flys to the location specified by a_x, a_y.
Definition: Goose_Base.cpp:409
Goose_Base::m_BMR
double m_BMR
The daily BMR.
Definition: Goose_Base.h:187
Goose_Base::EvaluateForageToHopLoc
void EvaluateForageToHopLoc(APoint a_HopLoc)
Do a forage evaluation from current location to a_HopLoc.
Definition: Goose_Base.cpp:593
Goose_Base::m_BodyConditionCounter
unsigned m_BodyConditionCounter
A counter for the daily body condition.
Definition: Goose_Base.h:287
Goose_Base::On_Bang
void On_Bang(int a_polyid)
The goose is scared by a bang at location.
Definition: Goose_Base.cpp:638
Goose_Base::m_Indivmingooseforagerate
double m_Indivmingooseforagerate
The minimum tolerable forage rate in kJ/minute for the individual.
Definition: Goose_Base.h:231
Goose_Base::st_ToRoost
virtual TTypeOfGoose_BaseState st_ToRoost()
Return to roost and assess whether to forage again that day.
Definition: Goose_Base.cpp:544
Goose_Base::m_sex
bool m_sex
Sex of bird, true = male false = female.
Definition: Goose_Base.h:155
Goose_Base::m_GooseMinForageOpenness
static double m_GooseMinForageOpenness
The minimum openness value a goose will tolerate for forage.
Definition: Goose_Base.h:275
Goose_Base::GetForageLocIndex
int GetForageLocIndex()
Gets for the forage location index.
Definition: Goose_Base.h:418
gst_PinkfootFamilyGroup
Definition: Goose_Base.h:60
Goose_Base
A class to describe the goose base.
Definition: Goose_Base.h:131
Goose_Base::m_TheBodyCondition
double m_TheBodyCondition
A variable describing current body condition averaged over 5 days.
Definition: Goose_Base.h:283
Goose_Base::ChooseHopLoc
virtual APoint ChooseHopLoc()
Pick a hop location point within a_dist meters - must be overridden by descendent classes.
Definition: Goose_Base.h:363
Goose_Base::Explore
void Explore()
Behavioural exploration of the area to find forage.
Definition: Goose_Base.cpp:571
Goose_Base::~Goose_Base
virtual ~Goose_Base()
Goose_Base destructor.
Definition: Goose_Base.cpp:176
Goose_Base::Set_GooseFattoKJConversion
void Set_GooseFattoKJConversion(double a_cost)
Set the fat to kJ conversion constant for all geese.
Definition: Goose_Base.h:600
Goose_Base::st_Forage
TTypeOfGoose_BaseState st_Forage()
Behavioural forage.
Definition: Goose_Base.cpp:433
Goose_Base::m_myGooseSpeciesType
GooseSpeciesType m_myGooseSpeciesType
Holds the goose species type.
Definition: Goose_Base.h:163
Goose_Base::Set_GooseKJtoFatConversion
void Set_GooseKJtoFatConversion(double a_cost)
Set the kJ to fat conversion constant for all geese.
Definition: Goose_Base.h:596
tomis_foobar
Definition: Goose_Base.h:96
Goose_Base::m_OurPopulationManager
Goose_Population_Manager * m_OurPopulationManager
This is a time saving pointer to the correct population manager object.
Definition: Goose_Base.h:151
Goose_Base::m_GooseFieldForageDistX2
static double m_GooseFieldForageDistX2[gs_foobar]
Double the maximum distance travelled from roost to forage sites for each species of goose (m) - this...
Definition: Goose_Base.h:251
Goose_Base::AddBodyCondition
void AddBodyCondition(double a_condition)
Alters body conditon by addition of a double value.
Definition: Goose_Base.h:402
Goose_Base::KillThis
virtual void KillThis()
The bird is dead of some external cause.
Definition: Goose_Base.cpp:703
Goose_Base::m_mingooseforagerate
static double m_mingooseforagerate[gs_foobar]
The minimum tolerable forage rate in kJ/minute for the species.
Definition: Goose_Base.h:235
TTypeOfGoose_BaseState
TTypeOfGoose_BaseState
Definition: Goose_Base.h:74
Goose_Base::Set_GooseMaxAppetiteScaler
void Set_GooseMaxAppetiteScaler(double a_cost)
Set the goose appetite scale used to calculate max intake for all geese.
Definition: Goose_Base.h:588
togs_Emigrate
Definition: Goose_Base.h:82
Goose_Base::GetFlightNumber
int GetFlightNumber()
Returns the total daily number of flights.
Definition: Goose_Base.h:438
Goose_Base::SetFlightCost
void SetFlightCost(double a_cost)
Set the flight cost per m per g.
Definition: Goose_Base.h:564
tolr_foobar
Definition: Goose_Base.h:107
gst_GreylagFamilyGroup
Definition: Goose_Base.h:64
Goose_Base::Set_GooseLeavingThreshold
void Set_GooseLeavingThreshold(double a_threshold)
Set the body condition threshold for leaving for all geese.
Definition: Goose_Base.h:584
Goose_Base::m_weightTotal
double m_weightTotal
The weight of the bird in g including fat reserve.
Definition: Goose_Base.h:179
Goose_Base::StartDay
virtual void StartDay(void)
Do any 'housekeeping' associated with the start of day.
Definition: Goose_Base.cpp:181
Goose_Base::GetRoost
APoint GetRoost()
Supply roost coords.
Definition: Goose_Base.h:345
Goose_Base::m_MyRoost
APoint m_MyRoost
The current roost location.
Definition: Goose_Base.h:167
togs_Forage
Definition: Goose_Base.h:78
Goose_Base::m_energyReserve
double m_energyReserve
The bird's energy reserves in grams.
Definition: Goose_Base.h:223
Goose_Base::m_weight
double m_weight
The weight of the bird in gram excluding fat reserve.
Definition: Goose_Base.h:175
Goose_Base::Goose_Base
Goose_Base(Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
Goose_Base constructor.
Definition: Goose_Base.cpp:163
Goose_Base::m_flightcost
static double m_flightcost
The cost of flight per g per m in kJ.
Definition: Goose_Base.h:227
Goose_Base::Set_GooseFollowingLikelyhood
void Set_GooseFollowingLikelyhood(int a_likelyhood, GooseSpeciesType a_speciestype)
Set the followinglikelyhood.
Definition: Goose_Base.h:634
GooseMemoryMap
The class describing both local and seasonal goose memories and cognition.
Definition: GooseMemoryMap.h:93