#ifndef InfiltrationExponentialDecay_H
#define InfiltrationExponentialDecay_H
/*
* HydroPlus is source code and models developed and managed by Theodore Endreny and his students at SUNY ESF, te@esf.edu
* The US Forest Service and Davey Tree have provided strategic software development support through funding and personnel
* Attribution for use of software and code is requested. Please see Executive.cpp for documentation.
*/
#include "../Inputs/Inputs.h"
#include "../DataFolder.h"

//Conversion hour to seconds
#define Ratio_Hour_to_Second 1.0/3600.0

class InfiltrationExponentialDecay
{
	public:
		static void calculate(Inputs *input, CompactRagged* beC, int MapPixel_ID, int DataFolder_ID, int timeStep);

	private:
		static void beforePonding(int bIT, double bR, double bDT, Inputs *input, CompactRagged* beC, int DataDrawer_ID, int DataFolder_ID, int timeStep);
		static void estimateTP(int tpIT, double tpR, double tpDT, Inputs *input, CompactRagged* beC, int DataDrawer_ID, int DataFolder_ID, int timeStep);
		static void inPonding(int ipIT, double ipPP, double ipDT, Inputs *input, CompactRagged* beC, int DataDrawer_ID, int DataFolder_ID);
		static void prepPonding(int ipIT, double ipPP, double ipDT, Inputs *input, CompactRagged* beC, int DataDrawer_ID, int DataFolder_ID);
		static void noPonding(double npR, Inputs *input, CompactRagged* beC, int DataDrawer_ID, int DataFolder_ID, int timeStep);
		//Note: calcInfilEXQ function turned off to allow for ponding
		static void calcInfilEXQ(double ifR, Inputs *input, CompactRagged* beC, int DataDrawer_ID, int DataFolder_ID, int timeStep);
};

#endif