/*
 * Instituto Superior de Engenharia do Porto
 *
 * Estruturas de Informação
 *
 * 2000/2001
 *
 * ------------------------------------------
 *
 * classe para representar pontos num espaço tridimensional 
 *		
 * Ponto3D.h
 *
 */

#ifndef __PONTO3D_INC__

#define __PONTO3D_INC__

#include "ponto2d.h"


class Ponto3D : public Ponto2D
{
	int m_iZ;
public:
	Ponto3D(int x = 0, int y = 0, int z = 0);
	Ponto3D(const Ponto3D& o);

	int getZ() const			{ return m_iZ;}

	void setZ(int z)			{ m_iZ = z; }
	void setXYZ(int x, int y, int z)	{ setX(x); setY(y); setZ(z);}

	Ponto3D& operator=(const Ponto3D& o);
	Ponto3D& operator-=(const Ponto3D& o);
	Ponto3D& operator+=(const Ponto3D& o);
};

Ponto3D operator+(const Ponto3D& a, const Ponto3D& b);
Ponto3D operator-(const Ponto3D& a, const Ponto3D& b);
bool operator==(const Ponto3D& a, const Ponto3D& b);
double distancia(const Ponto3D& a, const Ponto3D& b);
ostream& operator<<(ostream& output, const Ponto3D& obj);

#endif
