FMT 1.2.0
Forest management tools for forest planning
Loading...
Searching...
No Matches
FMTBaseEdgeProperties.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 FMTbaseedgeproperties_Hm_included
9#define FMTbaseedgeproperties_Hm_included
10
11
12#include <boost/serialization/serialization.hpp>
13#include <boost/serialization/nvp.hpp>
14#include <boost/serialization/export.hpp>
15#include <vector>
16#include <string>
17#include <cstdint>
18
19namespace Core
20{
21 class FMTAction;
22}
23
24namespace Graph
25{
26 // DocString: FMTBaseEdgeProperties
31 {
32 public:
33 // DocString: ~FMTBaseEdgeProperties()
37 virtual ~FMTBaseEdgeProperties() = default;
38 // DocString: FMTBaseEdgeProperties()
43 // DocString: FMTBaseEdgeProperties(const FMTBaseEdgeProperties&)
49 // DocString: FMTBaseEdgeProperties::operator=
56 // DocString: FMTBaseEdgeProperties(const int&,const int&,const double&)
63 FMTBaseEdgeProperties(const int& laction,
64 const int& lvariableID,
65 const double& lproportion);
66 // DocString: FMTBaseEdgeProperties(const int&)
71 constexpr FMTBaseEdgeProperties(const int& laction) : action(static_cast<int8_t>(laction)) {}
72 // DocString: FMTBaseEdgeProperties::getVariableID
77 virtual inline int getVariableID() const
78 {
79 return 0;
80 }
81 // DocString: FMTBaseEdgeProperties::getProportion
86 virtual inline double getProportion() const
87 {
88 return 100;
89 }
90 // DocString: FMTBaseEdgeProperties::getActionID
95 inline int getActionID() const
96 {
97 return static_cast<int>(action);
98 }
99 // DocString: FMTBaseEdgeProperties::getShortActionID
104 inline int8_t getShortActionID() const
105 {
106 return action;
107 }
108 // DocString: FMTBaseEdgeProperties::setActionID
113 void setActionID(const int& newid);
114 // DocString: FMTBaseEdgeProperties::isAction
121 bool isAction(const std::vector<Core::FMTAction>& actions,
122 const Core::FMTAction& rhsaction) const;
123 // DocString: FMTBaseEdgeProperties::operator==
129 /*virtual*/ bool operator == (const FMTBaseEdgeProperties & rhs) const;
130 // DocString: FMTBaseEdgeProperties::operator!=
136 /*virtual*/ bool operator != (const FMTBaseEdgeProperties& rhs) const;
137 // DocString: FMTBaseEdgeProperties::operator<
143 bool operator < (const FMTBaseEdgeProperties& rhs) const;
144 /*inline const short int* getactionptr() const
145 {
146 return &action;
147 }*/
148
149 protected:
150 int8_t action;
151 private:
153 // DocString: FMTBaseEdgeProperties::serialize
160 template<class Archive>
161 void serialize(Archive& ar, const unsigned int version)
162 {
163 ar & BOOST_SERIALIZATION_NVP(action);
164 }
165 };
166}
167
168BOOST_CLASS_EXPORT_KEY(Graph::FMTBaseEdgeProperties)
169
170#endif
List of specifications dictating the operability of a subset of developments to this action.
Definition: FMTAction.h:43
Base edge properties of a FMTGraph, holding the action of the edge.
Definition: FMTBaseEdgeProperties.h:31
FMTBaseEdgeProperties()=default
Default constructor for FMTBaseEdgeProperties.
bool operator<(const FMTBaseEdgeProperties &rhs) const
Less than operator for FMTBaseEdgeProperties.
bool operator==(const FMTBaseEdgeProperties &rhs) const
Comparison operator for FMTBaseEdgeProperties.
FMTBaseEdgeProperties(const FMTBaseEdgeProperties &rhs)=default
Copy constructor for FMTBaseEdgeProperties.
FMTBaseEdgeProperties(const int &laction, const int &lvariableID, const double &lproportion)
Construct a FMTBaseEdgeProperties from an action, a variable id and a proportion.
FMTBaseEdgeProperties & operator=(const FMTBaseEdgeProperties &rhs)=default
Copy assignment operator for FMTBaseEdgeProperties.
void setActionID(const int &newid)
Set the action id of the edge.
int getActionID() const
Return the action id of the edge.
Definition: FMTBaseEdgeProperties.h:95
virtual int getVariableID() const
Return the variable id of the edge.
Definition: FMTBaseEdgeProperties.h:77
constexpr FMTBaseEdgeProperties(const int &laction)
Construct a FMTBaseEdgeProperties from an action.
Definition: FMTBaseEdgeProperties.h:71
int8_t getShortActionID() const
Return the short (int8) action id of the edge.
Definition: FMTBaseEdgeProperties.h:104
int8_t action
Definition: FMTBaseEdgeProperties.h:150
virtual ~FMTBaseEdgeProperties()=default
Default virtual destructor for FMTBaseEdgeProperties.
friend class boost::serialization::access
Definition: FMTBaseEdgeProperties.h:152
bool operator!=(const FMTBaseEdgeProperties &rhs) const
Comparison operator for FMTBaseEdgeProperties.
virtual double getProportion() const
Return the proportion of the edge.
Definition: FMTBaseEdgeProperties.h:86
bool isAction(const std::vector< Core::FMTAction > &actions, const Core::FMTAction &rhsaction) const
Return true if the edge action matches a given action.
The Core namespace provides classes for simulating stands/strata growth/harvest through time.
Definition: FMTAction.h:34
Definition: FMTAreaParser.h:35