InstantSpectroProperties.hh 2.4 KB
/*
 * InstantSpectroProperties.hh
 *
 *  Created on: 18 déc. 2014
 *      Author: AKKA
 */

#ifndef INSTANTSPECTROPROPERTIES_HH_
#define INSTANTSPECTROPROPERTIES_HH_

#include <sstream>
#include <string>
#include <vector>
#include <algorithm>
#include <map>

#include "SpectroProperties.hh"

namespace plot {

/**
 * Instant Serie properties for InstantPlot
 */
class InstantSpectroProperties: public SpectroProperties {
public:
	InstantSpectroProperties() :
		SpectroProperties(),
		_dimOnXAxis(0),
		_table0ParamsId(),
		_table1ParamsId() {
	}
	InstantSpectroProperties(const SpectroProperties& ref_) :
		SpectroProperties(ref_),
		_dimOnXAxis(0),
		_table0ParamsId(),
		_table1ParamsId()
	{
	}

	InstantSpectroProperties(const InstantSpectroProperties& pParamDrawingProperties_) :
		SpectroProperties(pParamDrawingProperties_),
		_dimOnXAxis(pParamDrawingProperties_._dimOnXAxis),
		_table0ParamsId(),
		_table1ParamsId()
	{
	}

	InstantSpectroProperties& operator=(const InstantSpectroProperties& ref_) {
		SpectroProperties::operator=(ref_);
		_dimOnXAxis = ref_._dimOnXAxis;
		_table0ParamsId = ref_._table0ParamsId;
		_table1ParamsId = ref_._table1ParamsId;
		return *this;
	}


	virtual ~InstantSpectroProperties() {
	}

	int getDimOnXAxis() const {
		return _dimOnXAxis;
	}

	void setDimOnXAxis(int dimOnXAxis) {
		_dimOnXAxis = dimOnXAxis;
	}

	std::string getTable0ParamIdByName(std::string paramName){
		return _table0ParamsId[paramName];
	}

	std::map<std::string, std::string>& getTable0Params() {
		return _table0ParamsId;
	}

	void addTable0Param(std::string paramName, std::string paramId) {
		_table0ParamsId[paramName] = paramId;
	}

	std::string getTable1ParamIdByName(std::string paramName){
		return _table1ParamsId[paramName];
	}

	std::map<std::string, std::string>& getTable1Params() {
		return _table1ParamsId;
	}

	void addTable1Param(std::string paramName, std::string paramId) {
		_table1ParamsId[paramName] = paramId;
	}

	/*
	 * Dumps properties for test.
	 */
	void dump(std::ostream& out_, std::string& prefix_);

private :

	/**
	 * dimension to draw on X Axis
	 */
	int _dimOnXAxis;

	/**
	 * @brief Calculated tableParamsId for dimension 0 (from resolution).
	*/
	std::map<std::string, std::string> _table0ParamsId;

	/**
	 * @brief Calculated tableParamsId for dimension 1 (from resolution).
	*/
	std::map<std::string, std::string> _table1ParamsId;
};

} /* namespace plot */
#endif /* INSTANTSPECTROPROPERTIES_HH_ */