#pragma once
#include <string>

#include "mesh/Node.hpp"

class SPData
{
public:
	SPData();
	~SPData();
	SPData(std::string);
	SPData& operator= (const SPData& that);

	void addNodes(std::vector< std::shared_ptr<Node >>, double);
	void writeData(std::string filename);


	std::string getDomainName();
	double getTime();
	std::vector<double> getAusteniteFraction();
	std::vector<double> getBainiteFraction();
	std::vector<double> getMartensiteFraction();
	std::vector<double> getStartTime();
	std::vector<double> getRealTime();
	std::vector<double> getNodeActivity();
	std::vector<int> getNodeNr();



	//set functions

	void setAusteniteFraction(std::vector<double>);
	void setBainiteFraction(std::vector<double>);
	void setMartensiteFraction(std::vector<double>);
	void setStartTime(std::vector<double>);
	void setRealTime(std::vector<double>);
	void setNodeActivity(std::vector<double>);
	void setTime(double);
	void setName(std::string);

	

private:
	std::string domain_name;
	double time;
	std::vector<int> node_nr;
	std::vector<double> node_x, node_y, node_z;
	std::vector<double> austenite_fraction;
	std::vector<double> bainite_fraction;
	std::vector<double> martensite_fraction;
	std::vector<double> start_time;
	std::vector<double> real_time;
	std::vector<double> node_activity;
};