DrawingProperties.hh 2.92 KB
/*
 * DrawingProperties.hh
 *
 *  Created on: Dec 9, 2013
 *      Author: amdadev
 */

#ifndef DRAWINGPROPERTIES_HH_
#define DRAWINGPROPERTIES_HH_

#include <string>

#include "Color.hh"
#include "LineProperties.hh"
#include "SymbolProperties.hh"
#include "TimeTickProperties.hh"
#include "IntervalTickProperties.hh"
#include "ResamplingProperties.hh"
#include "ErrorBarProperties.hh"


namespace plot {
/**
 * base class holding properties used when drawing a paramter's dimensions.
 */
class DrawingProperties {
public:

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

	DrawingProperties();
	DrawingProperties(const DrawingProperties& ref_);
	DrawingProperties& operator=(const DrawingProperties& ref_);
	virtual ~DrawingProperties();

	const Color& getColor() const;
	Color& getColor();
	void setColor(const Color& color);

	const LineProperties& getLineProperties() const;
	LineProperties& getLineProperties();
	void setLineProperties(const LineProperties& lineProperties);

	const SymbolProperties& getSymbolProperties() const;
	SymbolProperties& getSymbolProperties();
	void setSymbolProperties(const SymbolProperties& symbolProperties) ;

	const TimeTickProperties& getTimeTickProperties() const;
	TimeTickProperties& getTimeTickProperties();
	void setTimeTickProperties(const TimeTickProperties& _imeTickProperties) ;

	const IntervalTickProperties& getIntervalTickProperties() const;
	IntervalTickProperties& getIntervalTickProperties();
	void setIntervalTickProperties(const IntervalTickProperties& intervalTickProperties) ;

	const std::string& getXAxisId() const;
	void setXAxisId(const std::string& axisId);

	const std::string& getYAxisId() const;
	void setYAxisId(const std::string& axisId);
        
	const std::string& getZAxisId() const;
	void setZAxisId(const std::string& axisId);

	double getMax() const;
	void setMax(double max);

	double getMin() const;
	void setMin(double min);

	int getMaxResolution() const;
	void setMaxResolution(const int resolution);

	const ResamplingProperties& getResamplingProperties() const;
	ResamplingProperties& getResamplingProperties();
	void setResamplingProperties(const ResamplingProperties& resamplingProperties);

	const ErrorBarProperties& getErrorBarProperties() const;
	ErrorBarProperties& getErrorBarProperties();
	void setErrorBarProperties(const ErrorBarProperties& errorBarProperties);

private:
	LineProperties _lineProperties;
	SymbolProperties _symbolProperties;
	TimeTickProperties _timeTickProperties;
	IntervalTickProperties _intervalTickProperties;
	ResamplingProperties _resamplingProperties;
	ErrorBarProperties _errorBarProperties;
	std::string _xAxisId;
	std::string _yAxisId;
	std::string _zAxisId;
	Color _color;
	double _min;
	double _max;


	/**
	 * Max number of points per plot for this serie.
	 */
	int _maxResolution;
};

} /* namespace plot */

#endif /* DRAWINGPROPERTIES_HH_ */