package org.opentrafficsim.xml.bindings; import org.djunits.value.vdouble.scalar.Direction; import org.djutils.logger.CategoryLogger; /** * DirectionAdapter converts between the XML String for an Direction and the DJUnits Direction. EAST is taken as zero degrees, * and the Direction adapts an ENU (East-North-Up) model, where positive x is East, positive y is North, positive z is up, and * degrees go anti-clockwise from the positive x-axis (East).
*
* Copyright (c) 2003-2022 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See * for project information www.simulation.tudelft.nl. The * source code and binary code of this software is proprietary information of Delft University of Technology. * @author Alexander Verbraeck */ public class DirectionAdapter extends UnitAdapter { /** {@inheritDoc} */ @Override public Direction unmarshal(final String field) throws IllegalArgumentException { try { String direction = field; if (direction.trim().endsWith("deg")) { direction = direction.replace("deg", "deg(E)"); } if (direction.trim().endsWith("rad")) { direction = direction.replace("deg", "rad(E)"); } direction = direction.replace("East", "E"); direction = direction.replace("North", "N"); return Direction.valueOf(direction); } catch (Exception exception) { CategoryLogger.always().error(exception, "Problem parsing Direction '" + field + "'"); throw exception; } } }