8#ifndef FMTMASKTRAN_Hm_included
9#define FMTMASKTRAN_Hm_included
11#include "FMTBounds.hpp"
14#include <boost/serialization/serialization.hpp>
25class FMTDevelopmentPath;
36 friend class boost::serialization::access;
44 template<
class Archive>
45 void serialize(Archive& ar,
const unsigned int version)
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);
60 void build(
const std::string& lmask,
const std::vector<FMTTheme>& themes);
80 const double& lproportion);
89 const std::vector<FMTTheme>& p_themes)
const;
121 const std::vector<FMTTheme>& themes,
const bool& reset_age)
const;
128 std::map<std::string, std::string>
get(
const std::vector<FMTTheme>& themes)
const;
186 operator std::string()
const override;
#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