// Subbasin.cpp

#include <string>
#include <memory>
#include "Subbasin.h"

namespace math1d_cl
{
	const int& Subbasin::getId()
	{
		return m_id;
	}

	void Subbasin::setId(const int& id)
	{
		m_id = id;
	}

	const std::string& Subbasin::getName()
	{
		return m_name;
	}

	void Subbasin::setName(const std::string& name)
	{
		m_name = name;
	}

	const double& Subbasin::getArea()
	{
		return m_area;
	}

	void Subbasin::setArea(const double& area)
	{
		m_area = area;
	}

	const double& Subbasin::getH()
	{
		return m_h;
	}

	void Subbasin::setH(const double& h)
	{
		m_h = h;
	}

	const double& Subbasin::getD()
	{
		return m_d;
	}

	void Subbasin::setD(const double& d)
	{
		m_d = d;
	}

	const double& Subbasin::getLength()
	{
		return m_length;
	}

	void Subbasin::setLength(const double& length)
	{
		m_length = length;
	}

	const double& Subbasin::getSlope()
	{
		return m_slope;
	}

	void Subbasin::setSlope(const double& slope)
	{
		m_slope = slope;
	}

	const double& Subbasin::getBaseflow()
	{
		return m_baseflow;
	}

	void Subbasin::setBaseflow(const double& baseFlow)
	{
		m_baseflow = baseFlow;
	}

	const double& Subbasin::getCn()
	{
		return m_cn;
	}

	void Subbasin::setCn(const double& cn)
	{
		m_cn = cn;
	}

	const double& Subbasin::getN()
	{
		return m_n;
	}

	void Subbasin::setN(const double& n)
	{
		m_n = n;
	}

	const double& Subbasin::getLai()
	{
		return m_lai;
	}

	void Subbasin::setLai(const double& lai)
	{
		m_lai = lai;
	}

	const double& Subbasin::getInitAbstraction()
	{
		return m_initAbstraction;
	}

	void Subbasin::setInitAbstraction(const double& initAbstraction)
	{
		m_initAbstraction = initAbstraction;
	}

	const double& Subbasin::getTimeConcentration()
	{
		return m_timeConcentration;
	}

	void Subbasin::setTimeConcentration(const double& timeConcentration)
	{
		m_timeConcentration = timeConcentration;
	}

	const double& Subbasin::getStorageCoeff()
	{
		return m_storageCoeff;
	}

	void Subbasin::setStorageCoeff(const double& storageCoeff)
	{
		m_storageCoeff = storageCoeff;
	}

	/*const std::shared_ptr<Channel>& Subbasin::getChannel()
	{
		return m_channel;
	}

	void Subbasin::setChannel(const std::shared_ptr<Channel>& channel)
	{
		m_channel = channel;
	}*/

	const int& Subbasin::getChannelIndex()
	{
		return m_channelIndex;
	}
	
	void Subbasin::setChannelIndex(const int& channelIndex)
	{
		m_channelIndex = channelIndex;
	}

	const int& Subbasin::getWeatherStationIndex()
	{
		return m_weatherStationIndex;
	}

	void Subbasin::setWeatherStationIndex(const int& weatherStationIndex)
	{
		m_weatherStationIndex = weatherStationIndex;
	}
}