content: /* amodeus - Copyright (c) 2018, ETH Zurich, Institute for Dynamic Systems and Control */
  package amodeus.amodeus.testutils;
  
  import org.matsim.core.utils.geometry.CoordinateTransformation;
  import org.matsim.core.utils.geometry.transformations.GeotoolsTransformation;
  import org.matsim.core.utils.geometry.transformations.IdentityTransformation;
  
  import amodeus.amodeus.data.ReferenceFrame;
  import amodeus.amodeus.util.math.SI;
  import ch.ethz.idsc.tensor.qty.Unit;
  
  /* package */ enum TestReferenceFrames implements ReferenceFrame {
      IDENTITY( //
              new IdentityTransformation(), //
              new IdentityTransformation()), //
      SANFRANCISCO( //
              new GeotoolsTransformation("EPSG:26743", "WGS84"), //
              new GeotoolsTransformation("WGS84", "EPSG:26743"), //
              Unit.of("ft")) //
      ;
  
      // ---
      private final CoordinateTransformation coords_toWGS84;
      private final CoordinateTransformation coords_fromWGS84;
      private final Unit unit;
  
      TestReferenceFrames(CoordinateTransformation c1, CoordinateTransformation c2) {
          this(c1, c2, SI.METER);
      }
  
      TestReferenceFrames(CoordinateTransformation c1, CoordinateTransformation c2, Unit unit) {
          coords_toWGS84 = c1;
          coords_fromWGS84 = c2;
          this.unit = unit;
      }
  
      @Override
      public CoordinateTransformation coords_fromWGS84() {
          return coords_fromWGS84;
      }
  
      @Override
      public CoordinateTransformation coords_toWGS84() {
          return coords_toWGS84;
      }
  
      @Override
      public Unit unit() {
          return unit;
      }
  }
  