FMT 1.2.0
Forest management tools for forest planning
Loading...
Searching...
No Matches
FMTTransitionMask.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 FMTMASKTRAN_Hm_included
9#define FMTMASKTRAN_Hm_included
10
11#include "FMTBounds.hpp"
12#include "FMTMask.h"
13#include "FMTMaskFilter.h"
14#include <boost/serialization/serialization.hpp>
15#include <string>
16#include <vector>
17#include "FMTutility.h"
18
19
20
21
22namespace Core
23{
24class FMTDevelopment;
25class FMTDevelopmentPath;
26class FMTYields;
27class FMTYieldRequest;
28class FMTTheme;
29
30// DocString: FMTTransitionMask
34class FMTEXPORT FMTTransitionMask : public FMTMaskFilter,public FMTSpec
35 {
36 friend class boost::serialization::access;
37 // DocString: FMTTransitionMask::serialize
44 template<class Archive>
45 void serialize(Archive& ar, const unsigned int version)
46 {
47 ar & boost::serialization::make_nvp("maskfilter", boost::serialization::base_object<FMTMaskFilter>(*this));
48 ar & boost::serialization::make_nvp("specification", boost::serialization::base_object<FMTSpec>(*this));
49 ar & BOOST_SERIALIZATION_NVP(mask);
50 ar & BOOST_SERIALIZATION_NVP(proportion);
51 }
52 FMTMask mask;
53 double proportion;
54 // DocString: FMTTransitionMask::build
60 void build(const std::string& lmask,const std::vector<FMTTheme>& themes);
61 public:
62 // DocString: FMTTransitionMask()
67 // DocString: ~FMTTransitionMask()
72 // DocString: FMTTransitionMask(const std::string&,const std::vector<FMTTheme>&,const double&)
79 FMTTransitionMask(const std::string& lmask,const std::vector<FMTTheme>& themes,
80 const double& lproportion);
81 // DocString: FMTTransitionMask::trans
88 FMTMask trans(const FMTMask& p_baseMask,
89 const std::vector<FMTTheme>& p_themes) const;
90 // DocString: FMTTransitionMask(const FMTTransitionMask&)
96 // DocString: FMTTransitionMask(const FMTTransitionMask&,const FMTMask&,const std::vector<FMTTheme>&)
103 FMTTransitionMask(const FMTTransitionMask& rhs,const FMTMask& lmask,const std::vector<FMTTheme>& themes);
104 // DocString: FMTTransitionMask::operator=
110 FMTTransitionMask& operator = (const FMTTransitionMask& rhs);
111 // DocString: FMTTransitionMask::disturb
121 const std::vector<FMTTheme>& themes,const bool& reset_age) const;
122 // DocString: FMTTransitionMask::get
128 std::map<std::string, std::string>get(const std::vector<FMTTheme>& themes) const;
129 // DocString: FMTTransitionMask::operator==
135 bool operator == (const FMTTransitionMask& rhs) const;
136 // DocString: FMTTransitionMask::getProportion
141 double getProportion() const;
142 // DocString: FMTTransitionMask::getMask
148 // DocString: FMTTransitionMask::getMaskReference
153 const FMTMask& getMaskReference() const;
154 // DocString: FMTTransitionMask::setMask
159 void setMask(const Core::FMTMask& mtmask);
160 // DocString: FMTTransitionMask::setProportion
165 void setProportion(double newproportion);
166 // DocString: FMTTransitionMask::preSolve
173 FMTTransitionMask preSolve(const FMTMaskFilter& filter, const std::vector<FMTTheme>&presolvedthemes) const;
174 // DocString: FMTTransitionMask::preSolveRef
180 void preSolveRef(const FMTMaskFilter& filter, const std::vector<FMTTheme>& presolvedthemes);
181 // DocString: FMTTransitionMask::operator std::string
186 operator std::string() const override;
187 };
188
189}
190#endif // FMTMASKTRAN_Hm_included
#define FMTEXPORT
Definition: FMTutility.h:125
Development path holding a generated development and the proportion of area going to it.
Definition: FMTDevelopmentPath.h:26
Base class of FMTActualDevelopment and FMTFuturDevelopment representing a forest stand.
Definition: FMTDevelopment.h:44
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
Transition mask holding a target mask and a proportion, used to disturb a development in a transition...
Definition: FMTTransitionMask.h:35
const FMTMask & getMaskReference() const
Return the reference mask of the transition mask.
double getProportion() const
Return the proportion of the transition mask.
FMTTransitionMask preSolve(const FMTMaskFilter &filter, const std::vector< FMTTheme > &presolvedthemes) const
Return a presolved copy of the transition mask.
FMTTransitionMask(const FMTTransitionMask &rhs, const FMTMask &lmask, const std::vector< FMTTheme > &themes)
Construct a transition mask from another transition mask, a mask and the themes.
~FMTTransitionMask()=default
Default destructor for FMTTransitionMask.
FMTDevelopmentPath disturb(const Core::FMTDevelopment &dev, const FMTYields &yields, const std::vector< FMTTheme > &themes, const bool &reset_age) const
Disturb a development using the transition mask.
FMTTransitionMask(const std::string &lmask, const std::vector< FMTTheme > &themes, const double &lproportion)
Construct a transition mask from a mask string, the themes and a proportion.
void setProportion(double newproportion)
Set the proportion of the transition mask.
FMTTransitionMask(const FMTTransitionMask &rhs)
Copy constructor for FMTTransitionMask.
std::map< std::string, std::string > get(const std::vector< FMTTheme > &themes) const
Return the transition mask as a map of theme name to attribute.
void setMask(const Core::FMTMask &mtmask)
Set the mask of the transition mask.
FMTMask getMask() const
Return the mask of the transition mask.
FMTMask trans(const FMTMask &p_baseMask, const std::vector< FMTTheme > &p_themes) const
Apply the transition mask to a base mask.
void preSolveRef(const FMTMaskFilter &filter, const std::vector< FMTTheme > &presolvedthemes)
Presolve the transition mask in place.
FMTTransitionMask()
Default constructor for FMTTransitionMask.
FMTList containing multiple yield handlers as seen in the yield section, holding the information rela...
Definition: FMTYields.h:44
The Core namespace provides classes for simulating stands/strata growth/harvest through time.
Definition: FMTAction.h:34