using System; using System.Collections.Generic; using System.Linq; using System.Text; using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; using HeuristicLab.Core; using HeuristicLab.Common; using HeuristicLab.PDPSimulation.DomainModel; namespace HeuristicLab.PDPSimulation.DistanceMeasures { [StorableClass] public abstract class DistanceMeasure: ParameterizedNamedItem { public DistanceMeasure(): base() { } [StorableConstructor] protected DistanceMeasure(bool deserializing) : base(deserializing) { } protected DistanceMeasure(DistanceMeasure original, Cloner cloner) : base(original, cloner) { } public abstract bool DiversionSupported { get; } public abstract double GetDistance(double sourceX, double sourceY, double destX, double destY); public abstract double GetDistance(double sourceX, double sourceY, double currentX, double currentY, double destX, double destY); public abstract void Move(double sourceX, double sourceY, double currentX, double currentY, double destX, double destY, double time, Vehicle.MoveInformation moveInfo, out double newPosX, out double newPosY, out double length); } }