7#ifndef FMTSOLUTIONTRACKER_H
8#define FMTSOLUTIONTRACKER_H
46 const std::vector<std::vector<size_t>>&p_ConstraintsFamilies,
47 size_t p_NumberOfFamilies);
79 std::map<Graph::FMTLineGraph, FMTGraphInfo>::const_iterator p_NewGraph,
80 size_t p_LastGraphId);
88 std::map<Graph::FMTLineGraph, FMTGraphInfo>::const_iterator p_OldGraph);
129 const std::vector<std::vector<size_t>>& p_ConstraintsFamilies,
130 size_t p_NumberOfFamilies);
149 std::vector<std::vector<double>>m_LastConstraintsEvaluation;
150 std::vector<size_t>m_Solution;
151 std::vector<std::vector<size_t>>m_ConstraintsFamilies;
152 const static size_t m_SOLUTION_RESIZE_FACTOR = 2;
160 void _modifySolution(
size_t p_family,
161 std::map<Graph::FMTLineGraph, FMTGraphInfo>::const_iterator p_It,
169 void _buildConstraintsFamilies(
const std::vector<std::vector<size_t>>& p_ConstraintsFamilies,
170 size_t p_NumberOfFamilies);
Base class of multiple FMT classes holding a shared exception handler pointer and logger.
Definition: FMTObject.h:49
Track the constraint values of a spatial solution as line graphs are added to or removed from the sol...
Definition: FMTSolutionTracker.h:36
void setConstraintValues(const std::vector< std::vector< double > > &p_constraintValues, const std::vector< std::vector< size_t > > &p_ConstraintsFamilies, size_t p_NumberOfFamilies)
Set the constraint values and families.
void addToSolution(size_t p_family, std::map< Graph::FMTLineGraph, FMTGraphInfo >::const_iterator p_NewGraph, size_t p_LastGraphId)
Add a line graph to the solution for a constraint family, updating the tracked constraint values.
size_t getNonSpatialCellsCount() const
Return the number of non spatial cells.
FMTSolutionTracker(const FMTSolutionTracker &p_rhs)=default
Default copy constructor for FMTSolutionTracker.
FMTSolutionTracker & operator=(const FMTSolutionTracker &p_rhs)=default
Default copy assignment operator for FMTSolutionTracker.
void swap(FMTSolutionTracker &p_tracker)
Swap this FMTSolutionTracker with another one.
bool enableTracking()
Enable the tracking of the constraint values.
bool isTrackingEnable() const
Return true if the tracking is enabled.
FMTSolutionTracker()
Default constructor for FMTSolutionTracker.
void disableTracking()
Disable the tracking of the constraint values.
~FMTSolutionTracker()=default
Default destructor for FMTSolutionTracker.
size_t size() const
Return the number of graphs in the solution.
FMTSolutionTracker(const std::vector< size_t > &p_solution, const std::vector< std::vector< size_t > > &p_ConstraintsFamilies, size_t p_NumberOfFamilies)
Construct a FMTSolutionTracker from a solution and its constraint families.
const std::vector< double > & getConstraintsValues(size_t p_Constraint) const
Return the tracked values of a constraint.
size_t getNumberOfCells(size_t p_GraphId) const
Return the number of cells of a graph.
void removeFromSolution(size_t p_family, std::map< Graph::FMTLineGraph, FMTGraphInfo >::const_iterator p_OldGraph)
Remove a line graph from the solution for a constraint family, updating the tracked constraint values...
The Core namespace provides classes for simulating stands/strata growth/harvest through time.
Definition: FMTAction.h:34
Definition: FMTAreaParser.h:35
Definition: FMTAreaParser.h:40