/*Header file of the PStep_MergeLabel class

This class represents two labels of a particular pricing problem that can be merged.

*/

#ifndef _PSTEP_MERGELABEL_H
#define _PSTEP_MERGELABEL_H

#include "BiDirectionalLabels.h"

//This class represents two labels of a particular pricing problem that can be merged.
class PStep_MergeLabel{
public:

	//ForwardLabel.
	ForwardLabel &CurrentForwardLabel;

	//BackwardLabel.
	BackwardLabel &CurrentBackwardLabel;

	//Corresponding starting load
	double StartingLoad;

	//Corresponding total load
	double TotalLoad;

	//Constructor functions:
	//------------------------------------------------------------------------------------

	//Default Constructor
	PStep_MergeLabel(ForwardLabel &NewForwardLabel, BackwardLabel &NewBackwardLabel, double NewStartingLoad, double NewTotalLoad)
		:CurrentForwardLabel(NewForwardLabel), CurrentBackwardLabel(NewBackwardLabel), StartingLoad(NewStartingLoad), TotalLoad(NewTotalLoad)
	{};

	//Operator functions:
	//------------------------------------------------------------------------------------

	//ADDED on 2020-02-05 because the compiler made its own default which then gave an error.
	//= operator of PStep_MergeLabel
	PStep_MergeLabel operator=(PStep_MergeLabel OriginalPStep_MergeLabel) { return OriginalPStep_MergeLabel; };

};

#endif