|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.orekit.frames.Frame
public class Frame
Tridimensional references frames class.
This class is the base class for all frames in OREKIT. The frames are linked together in a tree with some specific
frame chosen as the root of the tree. Each frame is defined by transforms
combining any number of
translations and rotations from a reference frame which is its parent frame in the tree structure.
When we say a transform
t is from frameA
to frameB, we mean that if the coordinates of some absolute vector (say the direction of a distant
star for example) has coordinates uA in frameA and uB in frameB, then
uB=t.transformVector(uA)
.
The transforms may be constant or varying, depending on the implementation of the transform
provider
used to define the frame. For simple fixed transforms, using FixedTransformProvider
is sufficient.
For varying transforms (time-dependent or telemetry-based for example), it may be useful to define specific
implementations of transform provider
.
Constructor Summary | |
---|---|
|
Frame(Frame parent,
TransformProvider transformProvider,
String name)
Build a non-inertial frame from its transform with respect to its parent. |
|
Frame(Frame parent,
TransformProvider transformProvider,
String name,
boolean pseudoInertial)
Build a frame from its transform with respect to its parent. |
|
Frame(Frame parent,
Transform transform,
String name)
Build a non-inertial frame from its transform with respect to its parent. |
|
Frame(Frame parent,
Transform transform,
String name,
boolean pseudoInertial)
Build a frame from its transform with respect to its parent. |
protected |
Frame(String name,
boolean pseudoInertial)
Private constructor used only for the root frame. |
Method Summary | |
---|---|
protected Frame |
getAncestor(int n)
Get the nth ancestor of the frame. |
protected int |
getDepth()
Get the depth of the frame. |
Frame |
getFrozenFrame(Frame reference,
AbsoluteDate freezingDate,
String frozenName)
Get a new version of the instance, frozen with respect to a reference frame. |
String |
getName()
Get the name. |
Frame |
getParent()
Get the parent frame. |
protected static Frame |
getRoot()
Get the unique root frame. |
RealMatrix |
getTransformJacobian(Frame to,
AbsoluteDate date)
Compute the Jacobian from current frame to target frame at provided date. |
TransformProvider |
getTransformProvider()
Get the provider for transform from parent frame to instance. |
Transform |
getTransformTo(Frame destination,
AbsoluteDate date)
Get the transform from the instance to another frame. |
Transform |
getTransformTo(Frame destination,
AbsoluteDate date,
boolean computeSpinDerivatives)
Get the transform from the instance to another frame. |
Transform |
getTransformTo(Frame destination,
AbsoluteDate date,
FramesConfiguration config)
Get the transform from the instance to another frame. |
Transform |
getTransformTo(Frame destination,
AbsoluteDate date,
FramesConfiguration config,
boolean computeSpinDerivatives)
Get the transform from the instance to another frame. |
boolean |
isChildOf(Frame potentialAncestor)
Determine if a Frame is a child of another one. |
boolean |
isPseudoInertial()
Check if the frame is pseudo-inertial. |
boolean |
isQuasiInertial()
Deprecated. as of 6.0, replaced by isPseudoInertial() |
String |
toString()
New definition of the java.util toString() method. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
protected Frame(String name, boolean pseudoInertial)
name
- name of the framepseudoInertial
- true if frame is considered pseudo-inertial (i.e. suitable for propagating orbit)public Frame(Frame parent, Transform transform, String name) throws IllegalArgumentException
calling this constructor is equivalent to call {link
.
Frame(parent, transform, name, false)
parent
- parent frame (must be non-null)transform
- transform from parent frame to instancename
- name of the frame
IllegalArgumentException
- if the parent frame is nullpublic Frame(Frame parent, TransformProvider transformProvider, String name) throws IllegalArgumentException
calling this constructor is equivalent to call {link
.
Frame(parent, transform, name, false)
parent
- parent frame (must be non-null)transformProvider
- provider for transform from parent frame to instancename
- name of the frame
IllegalArgumentException
- if the parent frame is nullpublic Frame(Frame parent, Transform transform, String name, boolean pseudoInertial) throws IllegalArgumentException
The convention for the transform is that it is from parent frame to instance. This means that the two following frames are similar:
Frame frame1 = new Frame(FramesFactory.getGCRF(), new Transform(t1, t2)); Frame frame2 = new Frame(new Frame(FramesFactory.getGCRF(), t1), t2);
parent
- parent frame (must be non-null)transform
- transform from parent frame to instancename
- name of the framepseudoInertial
- true if frame is considered pseudo-inertial (i.e. suitable for propagating orbit)
IllegalArgumentException
- if the parent frame is nullpublic Frame(Frame parent, TransformProvider transformProvider, String name, boolean pseudoInertial) throws IllegalArgumentException
The convention for the transform is that it is from parent frame to instance. This means that the two following frames are similar:
Frame frame1 = new Frame(FramesFactory.getGCRF(), new Transform(t1, t2)); Frame frame2 = new Frame(new Frame(FramesFactory.getGCRF(), t1), t2);
parent
- parent frame (must be non-null)transformProvider
- provider for transform from parent frame to instancename
- name of the framepseudoInertial
- true if frame is considered pseudo-inertial (i.e. suitable for propagating orbit)
IllegalArgumentException
- if the parent frame is nullMethod Detail |
---|
public String getName()
protected int getDepth()
The depth of a frame is the number of parents frame between it and the frames tree root. It is 0 for the root frame, and the depth of a frame is the depth of its parent frame plus one.
protected Frame getAncestor(int n) throws IllegalArgumentException
n
- index of the ancestor (0 is the instance, 1 is its parent, 2
is the parent of its parent...)
IllegalArgumentException
- if n is larger than the depth of the instance@Deprecated public boolean isQuasiInertial()
isPseudoInertial()
Pseudo-inertial frames are frames that do have a linear motion and either do not rotate or rotate at a very low rate resulting in neglectible inertial forces. This means they are suitable for orbit definition and propagation using Newtonian mechanics. Frames that are not pseudo-inertial are not suitable for orbit definition and propagation.
public boolean isPseudoInertial()
Pseudo-inertial frames are frames that do have a linear motion and either do not rotate or rotate at a very low rate resulting in neglectible inertial forces. This means they are suitable for orbit definition and propagation using Newtonian mechanics. Frames that are not pseudo-inertial are not suitable for orbit definition and propagation.
public String toString()
toString
in class Object
public Frame getParent()
public Transform getTransformTo(Frame destination, AbsoluteDate date) throws OrekitException
destination
- destination frame to which we want to transform vectorsdate
- the date (can be null if it is sure than no date dependent frame is used)
OrekitException
- if some frame specific error occurspublic Transform getTransformTo(Frame destination, AbsoluteDate date, boolean computeSpinDerivatives) throws OrekitException
destination
- destination frame to which we want to transform vectorsdate
- the date (can be null if it is sure than no date dependent frame is used)computeSpinDerivatives
- spin derivatives are computed : true, or not : false
OrekitException
- if some frame specific error occurspublic Transform getTransformTo(Frame destination, AbsoluteDate date, FramesConfiguration config) throws OrekitException
destination
- destination frame to which we want to transform vectorsdate
- the date (can be null if it is sure than no date dependent frame is used)config
- frames configuration to use
OrekitException
- if some frame specific error occurspublic Transform getTransformTo(Frame destination, AbsoluteDate date, FramesConfiguration config, boolean computeSpinDerivatives) throws OrekitException
destination
- destination frame to which we want to transform vectorsdate
- the date (can be null if it is sure than no date dependent frame is used)config
- frames configuration to usecomputeSpinDerivatives
- spin derivatives are computed : true, or not : false
OrekitException
- if some frame specific error occurspublic TransformProvider getTransformProvider()
public boolean isChildOf(Frame potentialAncestor)
potentialAncestor
- supposed ancestor frame
protected static Frame getRoot()
public Frame getFrozenFrame(Frame reference, AbsoluteDate freezingDate, String frozenName) throws OrekitException
Freezing a frame consist in computing its position and orientation with respect to another frame at some freezing date and fixing them so they do not depend on time anymore. This means the frozen frame is fixed with respect to the reference frame.
One typical use of this method is to compute an inertial launch reference frame by freezing a
topocentric frame
at launch date with respect to an inertial frame. Another use is to
freeze an equinox-related celestial frame at a reference epoch date.
Only the frame returned by this method is frozen, the instance by itself is not affected by calling this method and still moves freely.
reference
- frame with respect to which the instance will be frozenfreezingDate
- freezing datefrozenName
- name of the frozen frame
OrekitException
- if transform between reference frame and instance cannot be computed at freezing framepublic RealMatrix getTransformJacobian(Frame to, AbsoluteDate date) throws OrekitException
to
- target framedate
- date
OrekitException
- Failed to compute frame transformation
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |