package org.djutils.draw; /** * Directed.java. *

* Copyright (c) 2020-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
* BSD-style license. See DJUTILS License. *

* @author Alexander Verbraeck * @author Peter Knoppers * @param The Directed type (2d or 3d) */ public interface Directed> { /** * Return a new DirectedPoint2d with negated coordinate values. Add 180 degrees (pi radians) to the rotation(s). * @return D; a new D with negated coordinate values and a rotation in the opposite direction */ D neg(); // /** // * Return a new DirectedPoint2d with absolute coordinate values. Leave the rotation unchanged. // * @return DirectedPoint2d; a new point with absolute coordinate values and an unchanged rotation // */ // D abs(); // // /** // * Return the DirectedPoint2d with a length of 1 to the origin. Leave the rotation unchanged. // * @return DirectedPoint2d; the normalized point and an unchanged rotation // */ // D normalize(); // // /** // * Interpolate the coordinates and rotation between this point and the given point. It is allowed for fraction to be less // * than zero or larger than 1. In that case the interpolation becomes extrapolation. The rotations along the z axis (and; if // * applicable, x, and y-axes) are also interpolated or extrapolated in a clockwise fashion and normalized between -π and // * π. // * @param point D; the other point // * @param fraction double; the factor for interpolation between this D and point. When fraction is // * between 0 and 1, it is an interpolation, otherwise an extrapolation. When fraction is 0 this // * method returns this ; when fraction is 1 this method returns the point // * parameter // * @return D; the point that is "fraction" away on the line between this D and the given D // * @throws NullPointerException when point is null // * @throws IllegalArgumentException when fraction is NaN // */ // D interpolate(final P point, final double fraction); // }