Skip to content
Snippets Groups Projects
Channel.h 2.25 KiB
Newer Older
  • Learn to ignore specific revisions
  • Radim Vavřík's avatar
    Radim Vavřík committed
    // Channel.h
    
    #ifndef CHANNEL_H
    #define CHANNEL_H
    
    #include "Subbasin.h"
    #include "Hydrograph.h"
    
    namespace math1d_cl
    {
    	class Station;
    
    	class Channel
    	{
    	public:
    		const int& getId();
    		void setId(const int& id);
    		const std::string& getName();
    		void setName(const std::string& name);
    		const int& getSourceStationId();
    		void setSourceStationId(const int& sourceStationId);
    		const int& getSourceStationIndex();
    		void setSourceStationIndex(const int& sourceStationIndex);
    		/*const std::shared_ptr<Station>& getStation();
    		void setStation(const std::shared_ptr<Station>& station);*/
    		const int& getStationId();
    		void setStationId(const int& stationId);
    		const int& getStationIndex();
    		void setStationIndex(const int& stationIndex);
    		const double& getH();
    		void setH(const double& h);
    		const double& getD();
    		void setD(const double& d);
    		const double& getLength();
    		void setLength(const double& length);
    		const double& getSlope();
    		void setSlope(const double& slope);
    		const double& getBankSlope();
    		void setBankSlope(const double& bankSlope);
    		const double& getDepth();
    		void setDepth(const double& depth);
    		const double& getWidth();
    		void setWidth(const double& width);
    		const double& getN();
    		void setN(const double& n);
    		const int& getSubbasinId();
    		void setSubbasinId(const int& subbasinId);
    		const int& getSubbasinIndex();
    		void setSubbasinIndex(const int& subbasinIndex);
    		std::vector<int>& getUpstreams();
    		void setUpstreams(const std::vector<int>& upstreams);
    		const int& getDownstream();
    		void setDownstream(const int& downstream);
    		Hydrograph& getHydrograph();
    		void setHydrograph(const Hydrograph& hydrograph);
    
    	private:
    		int	m_id;
    		std::string m_name;
    		int m_sourceStationId;
    		int m_sourceStationIndex;
    		//std::shared_ptr<Station> m_station;
    		int m_stationId;
    		int m_stationIndex;
    		double m_h;
    		double m_d;
    		double m_length;
    		double m_slope;
    		double m_bankSlope;
    		double m_depth;
    		double m_width;
    		double m_n; ///< Manning coef. will be parametrized in order of Calibration/Monte Carlo
    		int m_subbasinId;
    		int m_subbasinIndex;
    		// int m_nUp;
    		std::vector<int> m_upstreams; ///< contains indexes
    		int m_downstream;
    		Hydrograph m_hydrograph;
    	};
    }
    #endif