class RoadPath extends GraphPath<RoadPath, RoadSegment, RoadConnection> {

	@Pure
	public Direction1D getSegmentDirectionAt(int index) {
		final RoadSegment sgmt = get(index);
		assert sgmt != null;
		final RoadConnection conn = getStartingPointFor(index);
		assert conn != null;
		if (conn.equals(sgmt.getBeginPoint())) {
			return Direction1D.SEGMENT_DIRECTION;
		}
		assert conn.equals(sgmt.getEndPoint());
		return Direction1D.REVERTED_DIRECTION;
	}

	protected  RoadPath(List<RoadSegment> original);
	public  RoadPath();
	public  RoadPath(RoadSegment segment);
	public  RoadPath(RoadSegment segment, RoadConnection starting_point);
	public  RoadPath(RoadPath path);

}