class CSetupData
{
private:
	CString m_strId;						// id sripu
	CString m_strDIN;						// Označení oceli DIN
	int m_nBendingControl;					// Řízení protiohybu - automaticky 1, manuálně 2,ruční korekce 3

	CString m_strSteelGroup;				// Skupina oceli

	double m_dThermalConductivity;			// tepelná vodivost pásu [W/mK]
	double m_dSpecificHeat;					// střední specifické teplo [J/KgK]
	double m_dDensity;						// hustota pásu [Kg/m3]
	double m_dAmbientTemperature;			// teplota okolí [°C]
	double m_dLeftCoilerTemperature;		// teplota pecní navíječka levá [°C]
	double m_dRightCoilerTemperature;		// teplota pecní navíječka pravá [°C]
	double m_dWaterTemperature;				// teplota chladící vody [°C]
	double m_dWorkRollDiameterS1Top;		// WR Diametr S1 TOP
	double m_dWorkRollDiameterS1Bottom;		// WR Diametr S1 BOT
	double m_dWorkRollDiameterS2Top;		// WR Diametr S2 TOP
	double m_dWorkRollDiameterS2Bottom;		// WR Diametr S2 BOT
	double m_dBackupRollDiameterS1Top;		// BR Diametr S1 TOP
	double m_dBackupRollDiameterS1Bottom;	// BR Diametr S1 BOT
	double m_dBackupRollDiameterS2Top;		// BR Diametr S2 TOP
	double m_dBackupRollDiameterS2Bottom;	// BR Diametr S2 BOT

	int m_nPassCount;						// počet úběrů
	double m_dEntryThickness;				// Tloušťka pásu po vytažení z pece
	double m_dEntryWidth;					// Šířka pásu po vytažení z pece
	double m_dEntryLength;					// Délka pásu po vytažení z pece

	std::vector<CStandPass*> m_Passes;

	CChemicalComposition m_ChemicalComposition;

public:
	CSetupData(void);
	CSetupData( const CSetupData& data );				// copy constructor
	CSetupData& operator=( const CSetupData& data );	// operator prirazeni
	virtual ~CSetupData(void);

	void CopyThis( const CSetupData& data );
	void Destroy();



public:
	CString GetId() { return m_strId; }
	CString GetDIN() { return m_strDIN; }
	int GetBendingControl() { return m_nBendingControl; }

	CString GetSteelGroup() { return m_strSteelGroup; }

	double GetThermalConductivity() { return m_dThermalConductivity; }
	double GetSpecificHeat() { return m_dSpecificHeat; }
	double GetDensity() { return m_dDensity; }
	double GetAmbientTemperature() { return m_dAmbientTemperature; }
	double GetLeftCoilerTemperature() { return m_dLeftCoilerTemperature; }
	double GetRightCoilerTemperature() { return m_dRightCoilerTemperature; }
	double GetWaterTemperature() { return m_dWaterTemperature; }
	double GetWorkRollDiameterS1Top() { return m_dWorkRollDiameterS1Top; }
	double GetWorkRollDiameterS1Bottom() { return m_dWorkRollDiameterS1Bottom; }
	double GetWorkRollDiameterS2Top() { return m_dWorkRollDiameterS2Top; }
	double GetWorkRollDiameterS2Bottom() { return m_dWorkRollDiameterS2Bottom; }
	double GetBackupRollDiameterS1Top() { return m_dBackupRollDiameterS1Top; }
	double GetBackupRollDiameterS1Bottom() { return m_dBackupRollDiameterS1Top; }
	double GetBackupRollDiameterS2Top() { return m_dBackupRollDiameterS2Top; }
	double GetBackupRollDiameterS2Bottom() { return m_dBackupRollDiameterS2Bottom; }

	double GetEntryThickness() { return m_dEntryThickness; }
	double GetEntryWidth() { return m_dEntryWidth; }
	double GetEntryLength() { return m_dEntryLength; }

	void SetId(CString value) { m_strId = value; }
	void SetDIN(CString value) { m_strDIN = value; }
	void SetBendingControl(int value) { m_nBendingControl = value; }

	void SetSteelGroup(CString value) { m_strSteelGroup = value; }

	void SetThermalConductivity(double value) { m_dThermalConductivity = value; }
	void SetSpecificHeat(double value) { m_dSpecificHeat = value; }
	void SetDensity(double value) { m_dDensity = value; }
	void SetAmbientTemperature(double value) { m_dAmbientTemperature = value; }
	void SetLeftCoilerTemperature(double value) { m_dLeftCoilerTemperature = value; }
	void SetRightCoilerTemperature(double value) { m_dRightCoilerTemperature = value; }
	void SetWaterTemperature(double value) { m_dWaterTemperature = value; }
	void SetWorkRollDiameterS1Top(double value) { m_dWorkRollDiameterS1Top = value; }
	void SetWorkRollDiameterS1Bottom(double value) { m_dWorkRollDiameterS1Bottom = value; }
	void SetWorkRollDiameterS2Top(double value) { m_dWorkRollDiameterS2Top = value; }
	void SetWorkRollDiameterS2Bottom(double value) { m_dWorkRollDiameterS2Bottom = value; }
	void SetBackupRollDiameterS1Top(double value) { m_dBackupRollDiameterS1Top = value; }
	void SetBackupRollDiameterS1Bottom(double value) { m_dBackupRollDiameterS1Top = value; }
	void SetBackupRollDiameterS2Top(double value) { m_dBackupRollDiameterS2Top = value; }
	void SetBackupRollDiameterS2Bottom(double value) { m_dBackupRollDiameterS2Bottom = value; }

	void SetEntryThickness(double value) { m_dEntryThickness = value; }
	void SetEntryWidth(double value) { m_dEntryWidth = value; }
	void SetEntryLength(double value) { m_dEntryLength = value; }

	int GetPassCount() { return m_Passes.size(); }
	CStandPass* GetPass(int nIndex);

	std::vector<CStandPass*>& GetAllStandPasses() { return m_Passes; }

	void AddPass(CStandPass* pPass);

	CChemicalComposition& GetChemicalComposition() { return m_ChemicalComposition; }
};