public class TLcdXYZRotation extends Object implements ILcdXYZRotation
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.
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:
Note that for the assigned cartesian coordinate axes to an ellipsoid angles are measured:
Constructor and Description |
---|
TLcdXYZRotation()
Default constructor creates a no-rotation.
|
TLcdXYZRotation(double aAlpha,
double aBeta,
double aGamma)
Constructor creates a rotation with the three given angles.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object aXYZRotation)
Two 3D rotations are equal if they have the same rotation angles
around the three cartesian axes (applied in the same order).
|
double |
getAlpha()
Gets the eulerian angle a around the X-axis
in decimal degrees and positive counterclockwise (right hand rule).
|
double |
getBeta()
Gets the eulerian angle b around the Y-axis
in decimal degrees and positive counterclockwise (right hand rule).
|
double |
getGamma()
Gets the eulerian angle g around the Z-axis
in decimal degrees and positive counterclockwise (right hand rule).
|
int |
hashCode() |
void |
inverseRotateSFCT(ILcdPoint aXYZPoint,
ILcd3DEditablePoint aXYZPointOut)
Application of the 3D inverse rotation to
aXYZPoint
results in the ILcd3DEditablePoint aXYZPointOut . |
void |
rotateSFCT(ILcdPoint aXYZPoint,
ILcd3DEditablePoint aXYZPointOut)
Apply the three rotations a,
b, and g
to the cartesian
ILcdPoint aXYZPoint . |
void |
setAlpha(double aAlpha)
Sets the Eulerian angle a around the X-axis
to
aAlpha . |
void |
setBeta(double aBeta)
Sets the Eulerian angle b around the Y-axis
to
aBeta . |
void |
setGamma(double aGamma)
Sets the Eulerian angle g around the Z-axis
to
aGamma . |
public TLcdXYZRotation()
public TLcdXYZRotation(double aAlpha, double aBeta, double aGamma)
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).ILcdXYZRotation
public void setAlpha(double aAlpha)
ILcdXYZRotation
aAlpha
.
The angle is in decimal degrees and positive counterclockwise (right hand rule).setAlpha
in interface ILcdXYZRotation
aAlpha
- the Eulerian angle a around the X-axis.ILcdXYZRotation.getAlpha()
public double getAlpha()
ILcdXYZRotation
getAlpha
in interface ILcdXYZRotation
ILcdXYZRotation.setAlpha(double)
public void setBeta(double aBeta)
ILcdXYZRotation
aBeta
.
The angle is in decimal degrees and positive counterclockwise (right hand rule).setBeta
in interface ILcdXYZRotation
aBeta
- the Eulerian angle b around the Y-axis.ILcdXYZRotation.getBeta()
public double getBeta()
ILcdXYZRotation
getBeta
in interface ILcdXYZRotation
ILcdXYZRotation.setBeta(double)
public void setGamma(double aGamma)
ILcdXYZRotation
aGamma
.
The angle is in decimal degrees and positive counterclockwise (right hand rule).setGamma
in interface ILcdXYZRotation
aGamma
- the Eulerian angle g around the Z-axis.ILcdXYZRotation.getGamma()
public double getGamma()
ILcdXYZRotation
getGamma
in interface ILcdXYZRotation
ILcdXYZRotation.setGamma(double)
public void rotateSFCT(ILcdPoint aXYZPoint, ILcd3DEditablePoint aXYZPointOut)
ILcdXYZRotation
ILcdPoint
aXYZPoint
.
The resulting cartesian coordinate is aXYZPointOut
.rotateSFCT
in interface ILcdXYZRotation
aXYZPoint
- the point to be rotated.aXYZPointOut
- the resulting point of the rotation as side effect.public void inverseRotateSFCT(ILcdPoint aXYZPoint, ILcd3DEditablePoint aXYZPointOut)
ILcdXYZRotation
aXYZPoint
results in the ILcd3DEditablePoint
aXYZPointOut
.inverseRotateSFCT
in interface ILcdXYZRotation
aXYZPoint
- the point to be rotated.aXYZPointOut
- the resulting point of the rotation as side effect.public boolean equals(Object aXYZRotation)
equals
in interface ILcdXYZRotation
equals
in class Object