// CCamino.h. Declaración de la clase CCamino

//** Es una sucesión de puntos que representan un camino a través del
//** contorno de la imagen. Utilizado por la clase CContorno.

#ifndef __CCamino_H__
#define __CCamino_H__

class CCamino : public CObject
{
public:
	int longitud;   // Longitud actual del camino
	int num_puntos; // Nº máximo de puntos que puede tener el camino
	CPoint *ptos;   // Sucesión de puntos que conforma el camino
public:
	// Constructores
	CCamino();
	CCamino(long num_ptos);

	// Destructor
	~CCamino();

	// Constructor de copia
	CCamino(const CCamino&);

	const CCamino& operator =(const CCamino& camSrc);

	// Otras funciones miembro //
	
	// Añade el punto 'vecino' al camino
	void AnadirPunto(CPoint vecino);
	// Borra el punto situado en la posición 'pos' del camino
	void BorrarPuntoPos(int pos);
	// Devuelve true si el punto 'vecino' está en el camino.
	bool EstaEnRama(CPoint vecino);
	// Nos dice si 'extremo' es el extremo izdo. o dcho. del camino
	int PosExtremo(CPoint extremo);
};

#endif // __CCamino_H__