#ifndef POSITION_H_
#define POSITION_H_

#include <iostream>
#include <string>
#include <vector>
#include "math.h"
#include "../core/Quantity.h"

namespace cosi {

class Position : public Quantity {
	std::vector<double> mPosition;
public:
	Position();
	Position(double pX, double pY, double pZ);
	~Position();

	Position Get();
	void Set(Position pP);
	std::vector<double> GetValue();

	double GetX() const;
	double GetY() const;
	double GetZ() const;

	bool operator ==(Position pP);

	Position operator+(Position pT);

	Position operator-(Position pT);

	bool operator<(const Position &pP) const ;

	friend std::ostream& operator <<(std::ostream &pOs, const Position &pP);

	static std::string sQuantityType;
	static std::string sQuantityName;

};

extern double Norm1(Position P1, Position P2);
extern double Norm2(Position P1, Position P2);

}

#endif /*POSITION_H_*/
