Top Description Fields Constructors Methods
org.apache.commons.math3.geometry.euclidean.threed

public final Enum RotationConvention

extends Enum<RotationConvention>
Class Inheritance

This enumerates is used to differentiate the semantics of a rotation.
Since
3.6
See Also
Rotation

Field Summary

Modifier and TypeField and Description
public static final RotationConvention
FRAME_TRANSFORM

Constant for rotation that have the semantics of a frame conversion.

public static final RotationConvention
VECTOR_OPERATOR

Constant for rotation that have the semantics of a vector operator.

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static RotationConvention
public static RotationConvention[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

FRAME_TRANSFORMback to summary
public static final RotationConvention FRAME_TRANSFORM

Constant for rotation that have the semantics of a frame conversion.

According to this convention, the rotation considered vectors to be fixed, but their coordinates change as they are converted from an initial frame to a destination frame rotated with respect to the initial frame.

This means that if we define rotation r is a 90 degrees rotation around the Z axis, the image of vector Vector3D#PLUS_I would be Vector3D#MINUS_J, the image of vector Vector3D#PLUS_J would be Vector3D#PLUS_I, the image of vector Vector3D#PLUS_K would be Vector3D#PLUS_K, and the image of vector with coordinates (1, 2, 3) would be vector (2, -1, 3). This means that the coordinates of the vector rotates clockwise, because they are expressed with respect to a destination frame that is rotated counterclockwise.

The difference with VECTOR_OPERATOR is only the semantics of the sign of the angle. It is always possible to create or use a rotation using either convention to really represent a rotation that would have been best created or used with the other convention, by changing accordingly the sign of the rotation angle. This is how things were done up to version 3.5.

VECTOR_OPERATORback to summary
public static final RotationConvention VECTOR_OPERATOR

Constant for rotation that have the semantics of a vector operator.

According to this convention, the rotation moves vectors with respect to a fixed reference frame.

This means that if we define rotation r is a 90 degrees rotation around the Z axis, the image of vector Vector3D#PLUS_I would be Vector3D#PLUS_J, the image of vector Vector3D#PLUS_J would be Vector3D#MINUS_I, the image of vector Vector3D#PLUS_K would be Vector3D#PLUS_K, and the image of vector with coordinates (1, 2, 3) would be vector (-2, 1, 3). This means that the vector rotates counterclockwise.

This convention was the only one supported by Apache Commons Math up to version 3.5.

The difference with FRAME_TRANSFORM is only the semantics of the sign of the angle. It is always possible to create or use a rotation using either convention to really represent a rotation that would have been best created or used with the other convention, by changing accordingly the sign of the rotation angle. This is how things were done up to version 3.5.

Constructor Detail

RotationConventionback to summary
private RotationConvention()

Method Detail

valueOfback to summary
public static RotationConvention valueOf(String name)
valuesback to summary
public static RotationConvention[] values()