/*
* Copyright (c) 2014 tabletoptool.com team.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* rptools.com team - initial implementation
* tabletoptool.com team - further development
*/
package com.t3.client.walker;
import com.t3.model.CellPoint;
import com.t3.model.Path;
public interface ZoneWalker {
public void setWaypoints(CellPoint... points);
public void addWaypoints(CellPoint... point);
public CellPoint replaceLastWaypoint(CellPoint point);
public boolean isWaypoint(CellPoint point);
public int getDistance();
public Path<CellPoint> getPath();
public CellPoint getLastPoint();
/**
* Remove an existing waypoint. Nothing is removed if the passed point is not a waypoint.
*
* @param point
* The point to be removed
* @return The value <code>true</code> is returned if the point is removed.
*/
boolean removeWaypoint(CellPoint point);
/**
* Toggle the existence of a way point. A waypoint is added if the passed point is not on an existing waypoint or a
* waypoint is removed if it is on an existing point.
*
* @param point
* Point being toggled
* @return The value <code>true</code> if a waypoint was added, <code>false</code> if one was removed.
*/
boolean toggleWaypoint(CellPoint point);
}