FMT 1.2.0
Forest management tools for forest planning
Loading...
Searching...
No Matches
FMTActualDevelopment.h
Go to the documentation of this file.
1/*
2Copyright (c) 2019 Gouvernement du Québec
3
4SPDX-License-Identifier: LiLiQ-R-1.1
5License-Filename: LICENSES/EN/LiLiQ-R11unicode.txt
6*/
7
8#ifndef FMTactualdevelopment_Hm_included
9#define FMTactualdevelopment_Hm_included
10
11#include "FMTDevelopment.h"
12#include <boost/serialization/serialization.hpp>
13#include <boost/serialization/nvp.hpp>
14#include <boost/serialization/export.hpp>
15
16namespace Core
17{
18class FMTLifespans;
19// DocString: FMTActualDevelopment
24 {
25
26 public:
27 // DocString: FMTActualDevelopment::(FMTActualDevelopment&& rhs)
33 // DocString: FMTActualDevelopment::operator=(FMTActualDevelopment&& rhs)
40 // DocString: FMTActualDevelopment()
45 // DocString: ~FMTActualDevelopment()
50 // DocString: FMTActualDevelopment(const FMTActualDevelopment&)
56 // DocString: FMTActualDevelopment(const FMTMask&,const int&,const int&,const int&,const double&)
64 FMTActualDevelopment(const FMTMask& mask, const int& age, const int& lock, const double& area);
65 // DocString: FMTActualDevelopment(const FMTDevelopment&,double)
71 FMTActualDevelopment(const FMTDevelopment& rhs, double larea);
72 // DocString: FMTActualDevelopment::operator=
79 // DocString: FMTActualDevelopment::operator==
85 bool operator == (const FMTActualDevelopment& rhs) const;
86 // DocString: FMTActualDevelopment::operator!=
92 bool operator != (const FMTActualDevelopment& rhs) const;
93 // DocString: FMTActualDevelopment::operator<
99 bool operator < (const FMTActualDevelopment& rhs) const;
100 // DocString: FMTActualDevelopment::operator std::string
105 operator std::string() const override;
106 // DocString: FMTActualDevelopment::getArea
111 double getArea() const override;
112 // DocString: FMTActualDevelopment::setArea
117 void setArea(const double& newarea);
118 // DocString: FMTActualDevelopment::clone
123 std::unique_ptr<FMTDevelopment> clone() const override;
124 // DocString: FMTActualDevelopment::preSolve
131 FMTActualDevelopment preSolve(const FMTMaskFilter& filter, const std::vector<FMTTheme>&presolvedthemes) const;
132 // DocString: FMTActualDevelopment::reduceLockToDeath
140 private:
141 // DocString: FMTActualDevelopment::serialize
148 friend class boost::serialization::access;
149 template<class Archive>
150 void serialize(Archive& ar, const unsigned int version)
151 {
152 try {
153
154 ar& boost::serialization::make_nvp("development", boost::serialization::base_object<FMTDevelopment>(*this));
155 ar& BOOST_SERIALIZATION_NVP(area);
156 }
157 catch (...)
158 {
159 _exhandler->printExceptions("", "FMTActualDevelopment::serialize", __LINE__, __FILE__);
160 }
161 }
162 // DocString: FMTActualDevelopment::area
164 double area;
165 };
166
167// DocString: FMTActualDevelopmentComparator
172 {
173 public:
174 // DocString: FMTActualDevelopmentComparator(const FMTDevelopment*)
180 // DocString: FMTActualDevelopmentComparator::operator()(const FMTActualDevelopment&)
186 bool operator()(const FMTActualDevelopment& actualdev) const;
187
188 private:
189 // DocString: FMTActualDevelopmentComparator::m_basedev
191 const FMTDevelopment* m_basedev;
192 };
193
194}
195
196BOOST_CLASS_EXPORT_KEY(Core::FMTActualDevelopment)
197#endif
#define FMTEXPORT
Definition: FMTutility.h:125
Comparator used to check if a base development is the actual development.
Definition: FMTActualDevelopment.h:172
bool operator()(const FMTActualDevelopment &actualdev) const
Matching test operator for the comparator.
FMTActualDevelopmentComparator(const FMTDevelopment *base)
Construct the comparator from the base development.
Child class of FMTDevelopment representing an actual forest stand, holding the area of the stand.
Definition: FMTActualDevelopment.h:24
FMTActualDevelopment(const FMTDevelopment &rhs, double larea)
Construct an actual development from a development and an area.
FMTActualDevelopment reduceLockToDeath(const FMTLifespans &lifespans) const
Reduce the lock of the actual development to its lifespan if the lifespan is shorter than the lock.
FMTActualDevelopment()
Default constructor for FMTActualDevelopment.
void setArea(const double &newarea)
Set the area of the actual development.
FMTActualDevelopment preSolve(const FMTMaskFilter &filter, const std::vector< FMTTheme > &presolvedthemes) const
Presolve the actual development using the FMTDevelopment preSolve function.
FMTActualDevelopment(const FMTMask &mask, const int &age, const int &lock, const double &area)
Construct an actual development from a mask, an age, a lock level and an area.
double getArea() const override
Return the area of the actual development.
~FMTActualDevelopment()=default
Default destructor for FMTActualDevelopment.
FMTActualDevelopment(const FMTActualDevelopment &rhs)
Copy constructor for FMTActualDevelopment.
FMTActualDevelopment(FMTActualDevelopment &&rhs)
Move copy constructor.
std::unique_ptr< FMTDevelopment > clone() const override
Return a unique pointer of FMTDevelopment cloning the actual development.
FMTActualDevelopment & operator=(FMTActualDevelopment &&rhs)
Move assignment operator for FMTActualDevelopment.
Base class of FMTActualDevelopment and FMTFuturDevelopment representing a forest stand.
Definition: FMTDevelopment.h:44
List holding the maximum age of aggregates of developments.
Definition: FMTLifespans.h:23
Filter built from masks used to preSolve and postsolve FMTMask objects.
Definition: FMTMaskFilter.h:31
Core class holding, as a boost dynamic bitset, which theme attributes are part of a mask.
Definition: FMTMask.h:96
The Core namespace provides classes for simulating stands/strata growth/harvest through time.
Definition: FMTAction.h:34