7#ifndef FMTVIRTUALLINEGRAPH_H
8#define FMTVIRTUALLINEGRAPH_H
40 class FMTSolutionTracker;
168 const std::vector<int>& p_actionMapping,
173 size_t m_GraphFamily;
200 bool notNull()
const;
210 return (p_object.
hash());
#define FMTEXPORT
Definition: FMTutility.h:125
Filter built from masks used to preSolve and postsolve FMTMask objects.
Definition: FMTMaskFilter.h:31
Class letting the user formulate a constraint in the optimize section or collect data across the grap...
Definition: FMTOutput.h:37
Simple graph where each action generates a single new vertex (0-—0-—0-—0), used with FMTLayer to simu...
Definition: FMTLineGraph.h:27
Base class for the different models in FMT.
Definition: FMTModel.h:62
Track the constraint values of a spatial solution as line graphs are added to or removed from the sol...
Definition: FMTSolutionTracker.h:36
Container of the line graphs of a spatially explicit model, organized by constraint family,...
Definition: FMTSpatialGraphs.h:52
std::map< Graph::FMTLineGraph, FMTGraphInfo >::const_iterator const_iterator
Definition: FMTSpatialGraphs.h:55
Lightweight handle to a line graph stored in a FMTSpatialGraphs, forwarding output and solution opera...
Definition: FMTVirtualLineGraph.h:46
void setLineGraph(const Graph::FMTLineGraph &p_LineGraph, FMTSolutionTracker &p_solution)
Set the underlying line graph and update the solution tracker.
FMTVirtualLineGraph(FMTSpatialGraphs &p_Graphs, FMTSpatialGraphs::const_iterator p_Iterator, size_t p_Family)
Construct a FMTVirtualLineGraph pointing to a graph of a family in a FMTSpatialGraphs.
FMTVirtualLineGraph(const FMTVirtualLineGraph &p_LineGraph)
Copy constructor for FMTVirtualLineGraph.
const Graph::FMTLineGraph & getLineGraph() const
Return the underlying line graph.
size_t getGraphFamily() const
Return the constraint family of the graph.
void setNaturalGrowth(FMTSolutionTracker &p_solution)
Set the graph to its natural growth version and update the solution tracker.
void setBaseGraph(FMTSolutionTracker &p_solution)
Set the graph to its base version and update the solution tracker.
void setLastPeriod(FMTSolutionTracker &p_solution)
Set the graph to its last period version and update the solution tracker.
FMTVirtualLineGraph(const FMTVirtualLineGraph &p_LineGraph, FMTSpatialGraphs &p_Graphs)
Copy a FMTVirtualLineGraph, rebinding it to another FMTSpatialGraphs.
double getOutput(const Models::FMTModel &p_model, const FMTSolutionTracker &p_solution, const Core::FMTOutput &p_output, int p_period) const
Return the output value of the graph for a period.
size_t hash() const
Hash the virtual line graph.
FMTVirtualLineGraph()=default
Default constructor for FMTVirtualLineGraph.
FMTVirtualLineGraph postSolve(const Core::FMTMaskFilter &p_Filter, const std::vector< int > &p_actionMapping, FMTSpatialGraphs &p_Graphs, FMTSolutionTracker &p_solution) const
Return a postsolved copy of the virtual line graph.
~FMTVirtualLineGraph()
Destructor for FMTVirtualLineGraph.
The Core namespace provides classes for simulating stands/strata growth/harvest through time.
Definition: FMTAction.h:34
Definition: FMTAreaParser.h:35
Namespace containing all enumerator and classes used to construct or manipulate the different type of...
Definition: FMTAreaParser.h:54
Definition: FMTAreaParser.h:40
std::size_t operator()(const Spatial::FMTVirtualLineGraph &p_object) const
Definition: FMTVirtualLineGraph.h:208