FMT 1.2.0
Forest management tools for forest planning
Loading...
Searching...
No Matches
Public Member Functions | List of all members
Spatial::FMTVirtualLineGraph Class Reference

Lightweight handle to a line graph stored in a FMTSpatialGraphs, forwarding output and solution operations to the underlying graph. More...

#include <FMTVirtualLineGraph.h>

Public Member Functions

 FMTVirtualLineGraph ()=default
 Default constructor for FMTVirtualLineGraph.
 
 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, FMTSpatialGraphs &p_Graphs)
 Copy a FMTVirtualLineGraph, rebinding it to another FMTSpatialGraphs.
 
 FMTVirtualLineGraph (const FMTVirtualLineGraph &p_LineGraph)
 Copy constructor for FMTVirtualLineGraph.
 
FMTVirtualLineGraphoperator= (const FMTVirtualLineGraph &p_LineGraph)
 Copy assignment operator for FMTVirtualLineGraph.
 
 ~FMTVirtualLineGraph ()
 Destructor for FMTVirtualLineGraph.
 
bool operator== (const FMTVirtualLineGraph &p_Element) const
 Comparison operator for FMTVirtualLineGraph.
 
bool operator< (const FMTVirtualLineGraph &p_Element) const
 Less than operator for FMTVirtualLineGraph.
 
size_t hash () const
 Hash the virtual line graph.
 
const Graph::FMTLineGraphgetLineGraph () const
 Return the underlying line graph.
 
void setLineGraph (const Graph::FMTLineGraph &p_LineGraph, FMTSolutionTracker &p_solution)
 Set the underlying line graph and update the solution tracker.
 
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 getGraphFamily () const
 Return the constraint family of the graph.
 
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.
 
void setNaturalGrowth (FMTSolutionTracker &p_solution)
 Set the graph to its natural growth version and update the solution tracker.
 
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.
 

Detailed Description

Lightweight handle to a line graph stored in a FMTSpatialGraphs, forwarding output and solution operations to the underlying graph.

Constructor & Destructor Documentation

◆ FMTVirtualLineGraph() [1/4]

Spatial::FMTVirtualLineGraph::FMTVirtualLineGraph ( )
default

Default constructor for FMTVirtualLineGraph.

◆ FMTVirtualLineGraph() [2/4]

Spatial::FMTVirtualLineGraph::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.

Parameters
[in]p_Graphsthe spatial graphs.
[in]p_Iteratorthe graph iterator.
[in]p_Familythe constraint family.

◆ FMTVirtualLineGraph() [3/4]

Spatial::FMTVirtualLineGraph::FMTVirtualLineGraph ( const FMTVirtualLineGraph p_LineGraph,
FMTSpatialGraphs p_Graphs 
)

Copy a FMTVirtualLineGraph, rebinding it to another FMTSpatialGraphs.

Parameters
[in]p_LineGraphthe FMTVirtualLineGraph to copy.
[in]p_Graphsthe spatial graphs.

◆ FMTVirtualLineGraph() [4/4]

Spatial::FMTVirtualLineGraph::FMTVirtualLineGraph ( const FMTVirtualLineGraph p_LineGraph)

Copy constructor for FMTVirtualLineGraph.

Parameters
[in]p_LineGraphthe FMTVirtualLineGraph to copy.

◆ ~FMTVirtualLineGraph()

Spatial::FMTVirtualLineGraph::~FMTVirtualLineGraph ( )

Destructor for FMTVirtualLineGraph.

Member Function Documentation

◆ getGraphFamily()

size_t Spatial::FMTVirtualLineGraph::getGraphFamily ( ) const

Return the constraint family of the graph.

Returns
the graph family.

◆ getLineGraph()

const Graph::FMTLineGraph & Spatial::FMTVirtualLineGraph::getLineGraph ( ) const

Return the underlying line graph.

Returns
the line graph.

◆ getOutput()

double Spatial::FMTVirtualLineGraph::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.

Parameters
[in]p_modelthe model.
[in]p_solutionthe solution tracker.
[in]p_outputthe output.
[in]p_periodthe period.
Returns
the output value.

◆ hash()

size_t Spatial::FMTVirtualLineGraph::hash ( ) const

Hash the virtual line graph.

Returns
the hash of the virtual line graph.

◆ operator<()

bool Spatial::FMTVirtualLineGraph::operator< ( const FMTVirtualLineGraph p_Element) const

Less than operator for FMTVirtualLineGraph.

Parameters
[in]p_Elementthe FMTVirtualLineGraph to compare to.
Returns
true if this virtual line graph is less than the other else false.

◆ operator=()

FMTVirtualLineGraph & Spatial::FMTVirtualLineGraph::operator= ( const FMTVirtualLineGraph p_LineGraph)

Copy assignment operator for FMTVirtualLineGraph.

Parameters
[in]p_LineGraphthe FMTVirtualLineGraph to copy.
Returns
a reference to this FMTVirtualLineGraph.

◆ operator==()

bool Spatial::FMTVirtualLineGraph::operator== ( const FMTVirtualLineGraph p_Element) const

Comparison operator for FMTVirtualLineGraph.

Parameters
[in]p_Elementthe FMTVirtualLineGraph to compare to.
Returns
true if both virtual line graphs are equal else false.

◆ postSolve()

FMTVirtualLineGraph Spatial::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.

Parameters
[in]p_Filterthe mask filter.
[in]p_actionMappingthe action mapping.
[in,out]p_Graphsthe spatial graphs.
[in,out]p_solutionthe solution tracker.
Returns
the postsolved virtual line graph.

◆ setBaseGraph()

void Spatial::FMTVirtualLineGraph::setBaseGraph ( FMTSolutionTracker p_solution)

Set the graph to its base version and update the solution tracker.

Parameters
[in,out]p_solutionthe solution tracker.

◆ setLastPeriod()

void Spatial::FMTVirtualLineGraph::setLastPeriod ( FMTSolutionTracker p_solution)

Set the graph to its last period version and update the solution tracker.

Parameters
[in,out]p_solutionthe solution tracker.

◆ setLineGraph()

void Spatial::FMTVirtualLineGraph::setLineGraph ( const Graph::FMTLineGraph p_LineGraph,
FMTSolutionTracker p_solution 
)

Set the underlying line graph and update the solution tracker.

Parameters
[in]p_LineGraphthe line graph.
[in,out]p_solutionthe solution tracker.

◆ setNaturalGrowth()

void Spatial::FMTVirtualLineGraph::setNaturalGrowth ( FMTSolutionTracker p_solution)

Set the graph to its natural growth version and update the solution tracker.

Parameters
[in,out]p_solutionthe solution tracker.

The documentation for this class was generated from the following file: