All Downloads are FREE. Search and download functionalities are using the official Maven repository.

us.ihmc.euclid.referenceFrame.interfaces.FrameVector2DBasics Maven / Gradle / Ivy

package us.ihmc.euclid.referenceFrame.interfaces;

import us.ihmc.euclid.referenceFrame.ReferenceFrame;
import us.ihmc.euclid.tuple2D.interfaces.Vector2DBasics;

/**
 * Write and read interface for a 2D vector expressed in a changeable reference frame, i.e. the
 * reference frame in which this vector is expressed can be changed.
 * 

* In addition to representing a {@link Vector2DBasics}, a {@link ReferenceFrame} is associated to a * {@code FrameVector2DBasics}. This allows, for instance, to enforce, at runtime, that operations * on vectors occur in the same coordinate system. *

*

* Because a {@code FrameVector2DBasics} extends {@code Vector2DBasics}, it is compatible with * methods only requiring {@code Vector2DBasics}. However, these methods do NOT assert that the * operation occur in the proper coordinate system. Use this feature carefully and always prefer * using methods requiring {@code FrameVector2DBasics}. *

*/ public interface FrameVector2DBasics extends FixedFrameVector2DBasics, FrameTuple2DBasics, FrameChangeable { /** * Performs a transformation of the vector such that it is expressed in a new frame * {@code desireFrame}. *

* Because the transformation between two reference frames is a 3D transformation, the result of * transforming this vector 2D can result in a vector 3D. This method projects the result of the * transformation onto the XY-plane. *

* * @param desiredFrame the reference frame in which the vector is to be expressed. */ void changeFrameAndProjectToXYPlane(ReferenceFrame desiredFrame); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy