Package com.luciad.geometry.cartesian
Class TLcdXYZRotation
java.lang.Object
com.luciad.geometry.cartesian.TLcdXYZRotation
- All Implemented Interfaces:
ILcdXYZRotation,Serializable
Implements
ILcdXYZRotation (3D rotation in a cartesian coordinate system),
forward and inverse rotations.
An ILcdXYZRotation is a cartesian 3D rotation defined by three
Eulerian angles (a, b, g).
The angles are in decimal degrees and measured counterclockwise
around the X, Y, and Z axes of a cartesian coordinate system.
- rotation a around the X-axis
- rotation b around the Y-axis
- rotation g around the Z-axis
For geodetic projections with an origin of the projection (l0,j0) and with an oblique central meridianin an azimuthal direction Az the rotations are applied in following order:
- l0 around Z-axis
- -j0 around Y-axis
- -Az around X-axis
Note that for the assigned cartesian coordinate axes to an ellipsoid angles are measured:
- l0 is positive counterclockwise
- j0 is positive clockwise
- Az is positive clockwise and measured from the north
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor creates a no-rotation.TLcdXYZRotation(double aAlpha, double aBeta, double aGamma) Constructor creates a rotation with the three given angles. -
Method Summary
Modifier and TypeMethodDescriptionbooleanTwo 3D rotations are equal if they have the same rotation angles around the three cartesian axes (applied in the same order).doublegetAlpha()Gets the eulerian angle a around the X-axis in decimal degrees and positive counterclockwise (right hand rule).doublegetBeta()Gets the eulerian angle b around the Y-axis in decimal degrees and positive counterclockwise (right hand rule).doublegetGamma()Gets the eulerian angle g around the Z-axis in decimal degrees and positive counterclockwise (right hand rule).inthashCode()voidinverseRotateSFCT(ILcdPoint aXYZPoint, ILcd3DEditablePoint aXYZPointOut) Application of the 3D inverse rotation toaXYZPointresults in theILcd3DEditablePointaXYZPointOut.voidrotateSFCT(ILcdPoint aXYZPoint, ILcd3DEditablePoint aXYZPointOut) Apply the three rotations a, b, and g to the cartesianILcdPointaXYZPoint.voidsetAlpha(double aAlpha) Sets the Eulerian angle a around the X-axis toaAlpha.voidsetBeta(double aBeta) Sets the Eulerian angle b around the Y-axis toaBeta.voidsetGamma(double aGamma) Sets the Eulerian angle g around the Z-axis toaGamma.
-
Constructor Details
-
TLcdXYZRotation
public TLcdXYZRotation()Default constructor creates a no-rotation. -
TLcdXYZRotation
public TLcdXYZRotation(double aAlpha, double aBeta, double aGamma) Constructor creates a rotation with the three given angles.- Parameters:
aAlpha- rotation a around the X-axis (decimal degrees).aBeta- rotation b around the Y-axis (decimal degrees).aGamma- rotation g around the Z-axis (decimal degrees).- See Also:
-
-
Method Details
-
setAlpha
public void setAlpha(double aAlpha) Description copied from interface:ILcdXYZRotationSets the Eulerian angle a around the X-axis toaAlpha. The angle is in decimal degrees and positive counterclockwise (right hand rule).- Specified by:
setAlphain interfaceILcdXYZRotation- Parameters:
aAlpha- the Eulerian angle a around the X-axis.- See Also:
-
getAlpha
public double getAlpha()Description copied from interface:ILcdXYZRotationGets the eulerian angle a around the X-axis in decimal degrees and positive counterclockwise (right hand rule).- Specified by:
getAlphain interfaceILcdXYZRotation- Returns:
- the eulerian angle a around the X-axis in decimal degrees and positive counterclockwise (right hand rule).
- See Also:
-
setBeta
public void setBeta(double aBeta) Description copied from interface:ILcdXYZRotationSets the Eulerian angle b around the Y-axis toaBeta. The angle is in decimal degrees and positive counterclockwise (right hand rule).- Specified by:
setBetain interfaceILcdXYZRotation- Parameters:
aBeta- the Eulerian angle b around the Y-axis.- See Also:
-
getBeta
public double getBeta()Description copied from interface:ILcdXYZRotationGets the eulerian angle b around the Y-axis in decimal degrees and positive counterclockwise (right hand rule).- Specified by:
getBetain interfaceILcdXYZRotation- Returns:
- the eulerian angle b around the Y-axis in decimal degrees and positive counterclockwise (right hand rule).
- See Also:
-
setGamma
public void setGamma(double aGamma) Description copied from interface:ILcdXYZRotationSets the Eulerian angle g around the Z-axis toaGamma. The angle is in decimal degrees and positive counterclockwise (right hand rule).- Specified by:
setGammain interfaceILcdXYZRotation- Parameters:
aGamma- the Eulerian angle g around the Z-axis.- See Also:
-
getGamma
public double getGamma()Description copied from interface:ILcdXYZRotationGets the eulerian angle g around the Z-axis in decimal degrees and positive counterclockwise (right hand rule).- Specified by:
getGammain interfaceILcdXYZRotation- Returns:
- the eulerian angle g around the Z-axis in decimal degrees and positive counterclockwise (right hand rule).
- See Also:
-
rotateSFCT
Description copied from interface:ILcdXYZRotationApply the three rotations a, b, and g to the cartesianILcdPointaXYZPoint. The resulting cartesian coordinate isaXYZPointOut.- Specified by:
rotateSFCTin interfaceILcdXYZRotation- Parameters:
aXYZPoint- the point to be rotated.aXYZPointOut- the resulting point of the rotation as side effect.
-
inverseRotateSFCT
Description copied from interface:ILcdXYZRotationApplication of the 3D inverse rotation toaXYZPointresults in theILcd3DEditablePointaXYZPointOut.- Specified by:
inverseRotateSFCTin interfaceILcdXYZRotation- Parameters:
aXYZPoint- the point to be rotated.aXYZPointOut- the resulting point of the rotation as side effect.
-
equals
Two 3D rotations are equal if they have the same rotation angles around the three cartesian axes (applied in the same order).- Specified by:
equalsin interfaceILcdXYZRotation- Overrides:
equalsin classObject
-
hashCode
public int hashCode()
-