Modular Megafauna Model 1.1.5
A physiological, dynamic herbivore simulator in C++.
Loading...
Searching...
No Matches
world_constructor.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2020 W. Traylor <wolfgang.traylor@senckenberg.de>
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
11#ifndef FAUNA_WORLD_CONSTRUCTOR_H
12#define FAUNA_WORLD_CONSTRUCTOR_H
13
14#include <cassert>
15#include <memory>
16#include <vector>
17#include "population_list.h"
18
19namespace Fauna {
20// Forward declarations
21class Parameters;
22class Hft;
23class DistributeForage;
24
25// Repeat typedef from hft.h
26typedef std::vector<std::shared_ptr<const Hft> > HftList;
27
29
36 public:
38 WorldConstructor(const std::shared_ptr<const Parameters> params,
39 const HftList& hftlist);
40
42
55 const unsigned int habitat_ctr_in_agg_unit) const;
56
59
61 const HftList& get_hftlist() const { return hftlist; }
62
64 const Parameters& get_params() const {
65 assert(params.get());
66 return *params;
67 }
68
69 private:
70 const std::shared_ptr<const Parameters> params;
72};
73} // namespace Fauna
74#endif // FAUNA_WORLD_CONSTRUCTOR_H
Helper class of World to create various megafauna components.
Definition: world_constructor.h:35
const HftList & hftlist
Definition: world_constructor.h:71
const HftList & get_hftlist() const
Get herbivore functional types.
Definition: world_constructor.h:61
PopulationList * create_populations(const unsigned int habitat_ctr_in_agg_unit) const
Instantiate populations for all HFTs in one Habitat.
Definition: world_constructor.cpp:34
const std::shared_ptr< const Parameters > params
Definition: world_constructor.h:70
const Parameters & get_params() const
Get global parameters.
Definition: world_constructor.h:64
DistributeForage * create_distribute_forage() const
Create new DistributeForage object according to parameters.
Definition: world_constructor.cpp:23
Definition: average.h:16
std::vector< std::shared_ptr< const Hft > > HftList
List of pointers to Hft objects.
Definition: world.h:28
std::vector< std::shared_ptr< PopulationInterface > > PopulationList
Definition: population_list.h:21
A list of herbivore populations in a habitat.
Interface for a forage distribution algorithm.
Definition: forage_distribution_algorithms.h:22
Parameters for the herbivory module.
Definition: parameters.h:65