/*******************************************************************************
* Copyright (c) 2009-2013 CWI
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* * Atze van der Ploeg - Atze.van.der.Ploeg@cwi.nl (CWI)
*******************************************************************************/
package org.rascalmpl.eclipse.library.vis.util.vector;
import static org.rascalmpl.eclipse.library.vis.util.vector.Dimension.X;
import static org.rascalmpl.eclipse.library.vis.util.vector.Dimension.Y;
import java.util.Comparator;
import java.util.EnumMap;
public final class Coordinate extends TwoDimensionalDouble{
public Coordinate(double x, double y){
super(x,y);
}
public Coordinate(Dimension majorDimension,double major, double minor){
this();
set(majorDimension,major);
set(majorDimension.other(),minor);
}
public Coordinate(){
super();
}
public Coordinate(Coordinate rhs){
super(rhs);
}
public String toString(){
return String.format("(%f,%f)", x,y);
}
public static class CoordinateDimensionComparator implements Comparator<Coordinate>{
public static final EnumMap<Dimension, CoordinateDimensionComparator> INSTANCES = new EnumMap<Dimension, Coordinate.CoordinateDimensionComparator>(Dimension.class);
static {
INSTANCES.put(X, new CoordinateDimensionComparator(X));
INSTANCES.put(Y, new CoordinateDimensionComparator(Y));
}
Dimension major;
CoordinateDimensionComparator(Dimension major){
this.major = major;
}
@Override
public int compare(Coordinate o1, Coordinate o2) {
return (int)Math.signum(o1.get(major) - o2.get(major));
}
}
}