Package com.irurueta.navigation.frames
Class ECIorECEFFrame<T extends ECIorECEFFrame<?>>
java.lang.Object
com.irurueta.navigation.frames.ECIorECEFFrame<T>
- All Implemented Interfaces:
Frame,Serializable
public abstract class ECIorECEFFrame<T extends ECIorECEFFrame<?>>
extends Object
implements Frame, Serializable
Base class for ECI or ECEF frames containing common logic and data for such frames.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) CoordinateTransformationBody to ECI frame coordinate transformation matrix.Actual type classstatic final intNumber of coordinates representing position.static final intNumber of coordinates representing velocity.(package private) doubleX coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECI or ECEF frame, resolved along the corresponding frame axes.(package private) doubleY coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECI or ECEF frame, resolved along the corresponding frame axes.(package private) doubleZ coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECI or ECEF frame, resolved along the corresponding frame axes.(package private) doubleCartesian x coordinate of body position expressed in meters (m) with respect ECI or ECEF frame, resolved along the corresponding frame axes.(package private) doubleCartesian y coordinate of body position expressed in meters (m) with respect ECI or ECEF frame, resolved along the corresponding frame axes.(package private) doubleCartesian z coordinate of body position expressed in meters (m) with respect ECI or ECEF frame, resolved along the corresponding frame axes. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidCopies data of provided instance into this instance.voidCopies this instance data into provided instance.booleanChecks if provided instance has exactly the same contents as this instance.booleanChecks if provided instance has contents similar to this instance up to provided threshold value.com.irurueta.algebra.MatrixGets coordinate transformation matrix.voidgetCoordinateTransformationMatrix(com.irurueta.algebra.Matrix result) Gets coordinate transformation matrix.com.irurueta.geometry.Rotation3DGets coordinate transformation as a new 3D rotation instance.voidgetCoordinateTransformationRotation(com.irurueta.geometry.Rotation3D result) Gets coordinate transformation as a 3D rotation.com.irurueta.geometry.Point3DGets body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.voidgetPosition(com.irurueta.geometry.Point3D result) Gets body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.doubleGets norm of position expressed in meters (m), which represents the distance to Earth's center of mass.com.irurueta.units.DistanceGets norm of position, which represents the distance to Earth's center of mass.voidgetPositionNormAsDistance(com.irurueta.units.Distance result) Gets norm of position, which represents the distance to Earth's center of mass.com.irurueta.units.DistanceGets cartesian x coordinate of body position resolved along ECI or ECEF-frame axes.voidgetPositionX(com.irurueta.units.Distance result) Gets cartesian x coordinate of body position resolved along ECI or ECEF-frame axes.com.irurueta.units.DistanceGets cartesian y coordinate of body position resolved along ECI or ECEF-frame axes.voidgetPositionY(com.irurueta.units.Distance result) Gets cartesian y coordinate of body position resolved along ECI or ECEF-frame axes.com.irurueta.units.DistanceGets cartesian z coordinate of body position resolved along ECI or ECEF-frame axes.voidgetPositionZ(com.irurueta.units.Distance result) Gets cartesian z coordinate of body position resolved along ECI or ECEF-frame axes.com.irurueta.units.SpeedGets x coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.voidgetSpeedX(com.irurueta.units.Speed result) Gets x coordinate of velocity of body frame resolved along ECEF-frame axes.com.irurueta.units.SpeedGets y coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.voidgetSpeedY(com.irurueta.units.Speed result) Gets y coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.com.irurueta.units.SpeedGets z coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.voidgetSpeedZ(com.irurueta.units.Speed result) Gets z coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.doubleGets norm of velocity expressed in meters per second (m/s), which represents the speed of the body.com.irurueta.units.SpeedGets norm of velocity, which represents the speed of the body.voidgetVelocityNormAsSpeed(com.irurueta.units.Speed result) Gets norm of velocity, which represents the speed of the body.doublegetVx()Gets x coordinate of velocity of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.doublegetVy()Gets y coordinate of velocity of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.doublegetVz()Gets z coordinate of velocity of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.doublegetX()Gets cartesian x coordinate of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.doublegetY()Gets cartesian y coordinate of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.doublegetZ()Gets cartesian z coordinate of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.inthashCode()Computes and returns hash code for this instance.voidsetCoordinates(double x, double y, double z) Sets cartesian coordinates of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.voidsetCoordinateTransformationMatrix(com.irurueta.algebra.Matrix matrix) Sts coordinate transformation matrix keeping current source and destinationFrameType.voidsetCoordinateTransformationMatrix(com.irurueta.algebra.Matrix matrix, double threshold) Sets coordinate transformation matrix keeping current source and destinationFrameType.voidsetCoordinateTransformationRotation(com.irurueta.geometry.Rotation3D rotation) Sets coordinate transformation from 3D rotation and keeping current source and destinationFrameType.voidsetPosition(com.irurueta.geometry.Point3D point) Sets body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.voidsetPositionCoordinates(com.irurueta.units.Distance positionX, com.irurueta.units.Distance positionY, com.irurueta.units.Distance positionZ) Sets cartesian coordinates of body position resolved along ECI or ECEF-frame axes.voidsetPositionX(com.irurueta.units.Distance positionX) Sets cartesian x coordinate of body position resolved along ECI or ECEF-frame axes.voidsetPositionY(com.irurueta.units.Distance positionY) Sets cartesian y coordinate of body position resolved along ECI or ECEF-frame axes.voidsetPositionZ(com.irurueta.units.Distance positionZ) Sets cartesian z coordinate of body position resolved along ECI or ECEF-frame axes.voidsetSpeedCoordinates(com.irurueta.units.Speed speedX, com.irurueta.units.Speed speedY, com.irurueta.units.Speed speedZ) Sets velocity coordinates of body frame resolved along ECI or ECEF-frame axes.voidsetSpeedX(com.irurueta.units.Speed speedX) Sets x coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.voidsetSpeedY(com.irurueta.units.Speed speedY) Sets y coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.voidsetSpeedZ(com.irurueta.units.Speed speedZ) Sets z coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.voidsetVelocityCoordinates(double vx, double vy, double vz) Sets velocity coordinates of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.voidsetVx(double vx) Sets x coordinate of velocity of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.voidsetVy(double vy) Sets y coordinate of velocity of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.voidsetVz(double vz) Sets z coordinate of velocity of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.voidsetX(double x) Sets cartesian x coordinate of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.voidsetY(double y) Sets cartesian y coordinate of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.voidsetZ(double z) Sets cartesian z coordinate of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.irurueta.navigation.frames.Frame
getCoordinateTransformation, getCoordinateTransformation, setCoordinateTransformation
-
Field Details
-
NUM_POSITION_COORDINATES
public static final int NUM_POSITION_COORDINATESNumber of coordinates representing position.- See Also:
-
NUM_VELOCITY_COORDINATES
public static final int NUM_VELOCITY_COORDINATESNumber of coordinates representing velocity.- See Also:
-
x
double xCartesian x coordinate of body position expressed in meters (m) with respect ECI or ECEF frame, resolved along the corresponding frame axes. -
y
double yCartesian y coordinate of body position expressed in meters (m) with respect ECI or ECEF frame, resolved along the corresponding frame axes. -
z
double zCartesian z coordinate of body position expressed in meters (m) with respect ECI or ECEF frame, resolved along the corresponding frame axes. -
vx
double vxX coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECI or ECEF frame, resolved along the corresponding frame axes. -
vy
double vyY coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECI or ECEF frame, resolved along the corresponding frame axes. -
vz
double vzZ coordinate of velocity of body frame expressed in meters per second (m/s) with respect ECI or ECEF frame, resolved along the corresponding frame axes. -
c
Body to ECI frame coordinate transformation matrix. -
clazz
Actual type class
-
-
Constructor Details
-
ECIorECEFFrame
Constructor.
-
-
Method Details
-
getX
public double getX()Gets cartesian x coordinate of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.- Returns:
- cartesian x coordinate of body position.
-
setX
public void setX(double x) Sets cartesian x coordinate of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.- Parameters:
x- cartesian x coordinate of body position.
-
getY
public double getY()Gets cartesian y coordinate of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.- Returns:
- cartesian y coordinate of body position.
-
setY
public void setY(double y) Sets cartesian y coordinate of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.- Parameters:
y- cartesian y coordinate of body position.
-
getZ
public double getZ()Gets cartesian z coordinate of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.- Returns:
- cartesian z coordinate of body position.
-
setZ
public void setZ(double z) Sets cartesian z coordinate of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.- Parameters:
z- cartesian z coordinate of body position.
-
setCoordinates
public void setCoordinates(double x, double y, double z) Sets cartesian coordinates of body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.- Parameters:
x- cartesian x coordinate of body position, resolved along ECI or ECEF-frame axes.y- cartesian y coordinate of body position, resolved along ECI or ECEF-frame axes.z- cartesian z coordinate of body position, resolved along ECI or ECEF-frame axes.
-
getPosition
public com.irurueta.geometry.Point3D getPosition()Gets body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.- Returns:
- body position.
-
getPosition
public void getPosition(com.irurueta.geometry.Point3D result) Gets body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.- Parameters:
result- instance where position data is copied to.
-
setPosition
public void setPosition(com.irurueta.geometry.Point3D point) Sets body position expressed in meters (m) and resolved along ECI or ECEF-frame axes.- Parameters:
point- body position to be set.
-
getPositionX
public void getPositionX(com.irurueta.units.Distance result) Gets cartesian x coordinate of body position resolved along ECI or ECEF-frame axes.- Parameters:
result- instance where cartesian x coordinate of body position will be stored.
-
getPositionX
public com.irurueta.units.Distance getPositionX()Gets cartesian x coordinate of body position resolved along ECI or ECEF-frame axes.- Returns:
- x coordinate of body position resolved along ECI or ECEF-frame axes.
-
setPositionX
public void setPositionX(com.irurueta.units.Distance positionX) Sets cartesian x coordinate of body position resolved along ECI or ECEF-frame axes.- Parameters:
positionX- cartesian x coordinate of body position to be set.
-
getPositionY
public void getPositionY(com.irurueta.units.Distance result) Gets cartesian y coordinate of body position resolved along ECI or ECEF-frame axes.- Parameters:
result- instance where cartesian y coordinate of body position will be stored.
-
getPositionY
public com.irurueta.units.Distance getPositionY()Gets cartesian y coordinate of body position resolved along ECI or ECEF-frame axes.- Returns:
- y coordinate of body position resolved along ECI or ECEF-frame axes.
-
setPositionY
public void setPositionY(com.irurueta.units.Distance positionY) Sets cartesian y coordinate of body position resolved along ECI or ECEF-frame axes.- Parameters:
positionY- cartesian y coordinate of body position to be set.
-
getPositionZ
public void getPositionZ(com.irurueta.units.Distance result) Gets cartesian z coordinate of body position resolved along ECI or ECEF-frame axes.- Parameters:
result- instance where cartesian z coordinate of body position will be stored.
-
getPositionZ
public com.irurueta.units.Distance getPositionZ()Gets cartesian z coordinate of body position resolved along ECI or ECEF-frame axes.- Returns:
- z coordinate of body position resolved along ECI or ECEF-frame axes.
-
setPositionZ
public void setPositionZ(com.irurueta.units.Distance positionZ) Sets cartesian z coordinate of body position resolved along ECI or ECEF-frame axes.- Parameters:
positionZ- cartesian z coordinate of body position to be set.
-
setPositionCoordinates
public void setPositionCoordinates(com.irurueta.units.Distance positionX, com.irurueta.units.Distance positionY, com.irurueta.units.Distance positionZ) Sets cartesian coordinates of body position resolved along ECI or ECEF-frame axes.- Parameters:
positionX- cartesian x coordinate of body position to be set, resolved along ECI or ECEF-frame axes.positionY- cartesian y coordinate of body position to be set, resolved along ECI or ECEF-frame axes.positionZ- cartesian z coordinate of body position to be set, resolved along ECI or ECEF-frame axes.
-
getPositionNorm
public double getPositionNorm()Gets norm of position expressed in meters (m), which represents the distance to Earth's center of mass.- Returns:
- position norm expressed in meters (m).
-
getPositionNormAsDistance
public void getPositionNormAsDistance(com.irurueta.units.Distance result) Gets norm of position, which represents the distance to Earth's center of mass.- Parameters:
result- instance where result will be stored.
-
getPositionNormAsDistance
public com.irurueta.units.Distance getPositionNormAsDistance()Gets norm of position, which represents the distance to Earth's center of mass.- Returns:
- position norm.
-
getVx
public double getVx()Gets x coordinate of velocity of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.- Returns:
- x coordinate of velocity.
-
setVx
public void setVx(double vx) Sets x coordinate of velocity of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.- Parameters:
vx- x coordinate of velocity.
-
getVy
public double getVy()Gets y coordinate of velocity of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.- Returns:
- y coordinate of velocity.
-
setVy
public void setVy(double vy) Sets y coordinate of velocity of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.- Parameters:
vy- y coordinate of velocity.
-
getVz
public double getVz()Gets z coordinate of velocity of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.- Returns:
- z coordinate of velocity.
-
setVz
public void setVz(double vz) Sets z coordinate of velocity of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.- Parameters:
vz- z coordinate of velocity.
-
setVelocityCoordinates
public void setVelocityCoordinates(double vx, double vy, double vz) Sets velocity coordinates of body frame expressed in meters per second (m/s) resolved along ECI or ECEF-frame axes.- Parameters:
vx- x coordinate of velocity.vy- y coordinate of velocity.vz- z coordinate of velocity.
-
getVelocityNorm
public double getVelocityNorm()Gets norm of velocity expressed in meters per second (m/s), which represents the speed of the body.- Returns:
- norm of velocity expressed in meters per second (m/s).
-
getVelocityNormAsSpeed
public void getVelocityNormAsSpeed(com.irurueta.units.Speed result) Gets norm of velocity, which represents the speed of the body.- Parameters:
result- velocity norm.
-
getVelocityNormAsSpeed
public com.irurueta.units.Speed getVelocityNormAsSpeed()Gets norm of velocity, which represents the speed of the body.- Returns:
- velocity norm.
-
getSpeedX
public void getSpeedX(com.irurueta.units.Speed result) Gets x coordinate of velocity of body frame resolved along ECEF-frame axes.- Parameters:
result- instance where x coordinate of velocity will be stored.
-
getSpeedX
public com.irurueta.units.Speed getSpeedX()Gets x coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.- Returns:
- x coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.
-
setSpeedX
public void setSpeedX(com.irurueta.units.Speed speedX) Sets x coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.- Parameters:
speedX- x coordinate of velocity of body frame resolved along ECI or ECEF-frame axes to be set.
-
getSpeedY
public void getSpeedY(com.irurueta.units.Speed result) Gets y coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.- Parameters:
result- instance where y coordinate of velocity will be stored.
-
getSpeedY
public com.irurueta.units.Speed getSpeedY()Gets y coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.- Returns:
- y coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.
-
setSpeedY
public void setSpeedY(com.irurueta.units.Speed speedY) Sets y coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.- Parameters:
speedY- y coordinate of velocity of body frame resolved along ECI or ECEF-frame axes to be set.
-
getSpeedZ
public void getSpeedZ(com.irurueta.units.Speed result) Gets z coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.- Parameters:
result- instance where z coordinate of velocity will be stored.
-
getSpeedZ
public com.irurueta.units.Speed getSpeedZ()Gets z coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.- Returns:
- z coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.
-
setSpeedZ
public void setSpeedZ(com.irurueta.units.Speed speedZ) Sets z coordinate of velocity of body frame resolved along ECI or ECEF-frame axes.- Parameters:
speedZ- z coordinate of velocity of body frame resolved along ECI or ECEF-frame axes to be set.
-
setSpeedCoordinates
public void setSpeedCoordinates(com.irurueta.units.Speed speedX, com.irurueta.units.Speed speedY, com.irurueta.units.Speed speedZ) Sets velocity coordinates of body frame resolved along ECI or ECEF-frame axes.- Parameters:
speedX- x coordinate of velocity to be set.speedY- y coordinate of velocity to be set.speedZ- z coordinate of velocity to be set.
-
getCoordinateTransformationMatrix
public com.irurueta.algebra.Matrix getCoordinateTransformationMatrix()Gets coordinate transformation matrix. This is equivalent to calling getCoordinateTransformation(), but more efficient- Specified by:
getCoordinateTransformationMatrixin interfaceFrame- Returns:
- coordinate transformation matrix.
-
getCoordinateTransformationMatrix
public void getCoordinateTransformationMatrix(com.irurueta.algebra.Matrix result) Gets coordinate transformation matrix. This is equivalent to calling getCoordinateTransformation().getMatrix(), but more efficient- Specified by:
getCoordinateTransformationMatrixin interfaceFrame- Parameters:
result- instance where coordinate transformation matrix will be copied to.
-
setCoordinateTransformationMatrix
public void setCoordinateTransformationMatrix(com.irurueta.algebra.Matrix matrix, double threshold) throws com.irurueta.geometry.InvalidRotationMatrixException Sets coordinate transformation matrix keeping current source and destinationFrameType. This is more efficient than getting a copy of coordinate transformation calling toFrame.getCoordinateTransformation(), setting coordinate matrix into copied coordinate transformation and then setting the coordinate transformation callingFrame.setCoordinateTransformation(CoordinateTransformation).- Specified by:
setCoordinateTransformationMatrixin interfaceFrame- Parameters:
matrix- a 3x3 coordinate transformation matrix to be set.threshold- threshold to validate rotation matrix.- Throws:
com.irurueta.geometry.InvalidRotationMatrixException- if provided matrix is not a valid rotation matrix (3x3 and orthonormal).IllegalArgumentException- if provided threshold is negative.
-
setCoordinateTransformationMatrix
public void setCoordinateTransformationMatrix(com.irurueta.algebra.Matrix matrix) throws com.irurueta.geometry.InvalidRotationMatrixException Sts coordinate transformation matrix keeping current source and destinationFrameType. This is more efficient than getting a copy of coordinate transformation calling toFrame.getCoordinateTransformation(), setting coordinate matrix into copied coordinate transformation and then setting the coordinate transformation callingFrame.setCoordinateTransformation(CoordinateTransformation).- Specified by:
setCoordinateTransformationMatrixin interfaceFrame- Parameters:
matrix- a 3x3 coordinate transformation matrix to be set.- Throws:
com.irurueta.geometry.InvalidRotationMatrixException- if provided matrix is not a valid rotation matrix (3x3 and orthonormal).
-
getCoordinateTransformationRotation
public com.irurueta.geometry.Rotation3D getCoordinateTransformationRotation() throws com.irurueta.geometry.InvalidRotationMatrixExceptionGets coordinate transformation as a new 3D rotation instance. This is equivalent to calling getCoordinateTransformation().asRotation(), but more efficient.- Specified by:
getCoordinateTransformationRotationin interfaceFrame- Returns:
- new coordinate transformation as a 3D rotation.
- Throws:
com.irurueta.geometry.InvalidRotationMatrixException- if internal matrix cannot be converted to a 3D rotation.
-
getCoordinateTransformationRotation
public void getCoordinateTransformationRotation(com.irurueta.geometry.Rotation3D result) throws com.irurueta.geometry.InvalidRotationMatrixException Gets coordinate transformation as a 3D rotation. This is equivalent to calling getCoordinateTransformation().asRotation(), but more efficient.- Specified by:
getCoordinateTransformationRotationin interfaceFrame- Parameters:
result- instance where coordinate transformation 3D rotation will be copied to.- Throws:
com.irurueta.geometry.InvalidRotationMatrixException- if internal matrix cannot be converted to a 3D rotation.
-
setCoordinateTransformationRotation
public void setCoordinateTransformationRotation(com.irurueta.geometry.Rotation3D rotation) Sets coordinate transformation from 3D rotation and keeping current source and destinationFrameType. This is more efficient than getting a copy of coordinate transformation calling toFrame.getCoordinateTransformation(), setting rotation into copied coordinate transformation and then setting the coordinate transformation callingFrame.setCoordinateTransformation(CoordinateTransformation).- Specified by:
setCoordinateTransformationRotationin interfaceFrame- Parameters:
rotation- set rotation into current coordinate rotation.
-
copyTo
Copies this instance data into provided instance.- Parameters:
output- destination instance where data will be copied to.
-
copyFrom
Copies data of provided instance into this instance.- Parameters:
input- instance to copy data from.
-
hashCode
public int hashCode()Computes and returns hash code for this instance. Hash codes are almost unique values that are useful for fast classification and storage of objects in collections. -
equals
Checks if provided instance has exactly the same contents as this instance. -
equals
Checks if provided instance has contents similar to this instance up to provided threshold value.- Parameters:
other- instance to be compared.threshold- maximum difference allowed between position, velocity and coordinate transformation matrix.- Returns:
- true if both instances are considered to be equal (up to provided threshold), false otherwise.
-