#ifndef PATHADT_H
#define PATHADT_H

#include "PointADT.h"
#include "LineADT.h"
#include "MapTypes.h"

#include <vector>

using std::vector;

class PathT 
{
  private: 
    vector<LineT> s;
    void translatePriv(int dx, int dy);
    vector<PointT> pointsInLine(LineT ln) const;
    PointT adjPt(CompassT o) const;
    bool intersects(LineT a, LineT b) const;    
  
  public:
    PathT(PointT st, CompassT o, nat l);
    void append(CompassT o, nat l);
    PointT strt() const;
    PointT end() const;
    LineT line(nat i) const;
    nat size() const;
    nat len() const;
    PathT translate(int dx, int dy) const;
};

#endif