List of usage examples for org.apache.commons.math3.geometry.euclidean.threed FieldVector3D FieldVector3D
public FieldVector3D(final double a1, final FieldVector3D<T> u1, final double a2, final FieldVector3D<T> u2, final double a3, final FieldVector3D<T> u3)
From source file:org.orekit.utils.FieldAngularCoordinates.java
/** Add an offset from the instance. * <p>/*from w w w . ja v a 2s. c om*/ * We consider here that the offset FieldRotation<T> is applied first and the * instance is applied afterward. Note that angular coordinates do <em>not</em> * commute under this operation, i.e. {@code a.addOffset(b)} and {@code * b.addOffset(a)} lead to <em>different</em> results in most cases. * </p> * <p> * The two methods {@link #addOffset(FieldAngularCoordinates) addOffset} and * {@link #subtractOffset(FieldAngularCoordinates) subtractOffset} are designed * so that round trip applications are possible. This means that both {@code * ac1.subtractOffset(ac2).addOffset(ac2)} and {@code * ac1.addOffset(ac2).subtractOffset(ac2)} return angular coordinates equal to ac1. * </p> * @param offset offset to subtract * @return new instance, with offset subtracted * @see #subtractOffset(FieldAngularCoordinates) */ public FieldAngularCoordinates<T> addOffset(final FieldAngularCoordinates<T> offset) { final FieldVector3D<T> rOmega = rotation.applyTo(offset.rotationRate); final FieldVector3D<T> rOmegaDot = rotation.applyTo(offset.rotationAcceleration); return new FieldAngularCoordinates<T>(rotation.applyTo(offset.rotation), rotationRate.add(rOmega), new FieldVector3D<T>(1.0, rotationAcceleration, 1.0, rOmegaDot, -1.0, FieldVector3D.crossProduct(rotationRate, rOmega))); }
From source file:org.orekit.utils.FieldPVCoordinates.java
/** Linear constructor * <p>Build a PVCoordinates from three other ones and corresponding scale factors.</p> * <p>The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3</p> * @param a1 first scale factor/*www.j ava 2 s.c o m*/ * @param pv1 first base (unscaled) PVCoordinates * @param a2 second scale factor * @param pv2 second base (unscaled) PVCoordinates * @param a3 third scale factor * @param pv3 third base (unscaled) PVCoordinates */ public FieldPVCoordinates(final double a1, final FieldPVCoordinates<T> pv1, final double a2, final FieldPVCoordinates<T> pv2, final double a3, final FieldPVCoordinates<T> pv3) { position = new FieldVector3D<T>(a1, pv1.position, a2, pv2.position, a3, pv3.position); velocity = new FieldVector3D<T>(a1, pv1.velocity, a2, pv2.velocity, a3, pv3.velocity); acceleration = new FieldVector3D<T>(a1, pv1.acceleration, a2, pv2.acceleration, a3, pv3.acceleration); }
From source file:org.orekit.utils.FieldPVCoordinates.java
/** Linear constructor * <p>Build a PVCoordinates from three other ones and corresponding scale factors.</p> * <p>The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3</p> * @param a1 first scale factor/* w ww . ja va 2 s .c om*/ * @param pv1 first base (unscaled) PVCoordinates * @param a2 second scale factor * @param pv2 second base (unscaled) PVCoordinates * @param a3 third scale factor * @param pv3 third base (unscaled) PVCoordinates */ public FieldPVCoordinates(final T a1, final FieldPVCoordinates<T> pv1, final T a2, final FieldPVCoordinates<T> pv2, final T a3, final FieldPVCoordinates<T> pv3) { position = new FieldVector3D<T>(a1, pv1.position, a2, pv2.position, a3, pv3.position); velocity = new FieldVector3D<T>(a1, pv1.velocity, a2, pv2.velocity, a3, pv3.velocity); acceleration = new FieldVector3D<T>(a1, pv1.acceleration, a2, pv2.acceleration, a3, pv3.acceleration); }
From source file:org.orekit.utils.FieldPVCoordinates.java
/** Linear constructor * <p>Build a PVCoordinates from three other ones and corresponding scale factors.</p> * <p>The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3</p> * @param a1 first scale factor//w w w.j a v a 2 s. c o m * @param pv1 first base (unscaled) PVCoordinates * @param a2 second scale factor * @param pv2 second base (unscaled) PVCoordinates * @param a3 third scale factor * @param pv3 third base (unscaled) PVCoordinates */ public FieldPVCoordinates(final T a1, final PVCoordinates pv1, final T a2, final PVCoordinates pv2, final T a3, final PVCoordinates pv3) { position = new FieldVector3D<T>(a1, pv1.getPosition(), a2, pv2.getPosition(), a3, pv3.getPosition()); velocity = new FieldVector3D<T>(a1, pv1.getVelocity(), a2, pv2.getVelocity(), a3, pv3.getVelocity()); acceleration = new FieldVector3D<T>(a1, pv1.getAcceleration(), a2, pv2.getAcceleration(), a3, pv3.getAcceleration()); }
From source file:org.orekit.utils.FieldPVCoordinates.java
/** Get a time-shifted state. * <p>// w w w . ja v a 2s .c om * The state can be slightly shifted to close dates. This shift is based on * a simple quadratic model. It is <em>not</em> intended as a replacement for * proper orbit propagation (it is not even Keplerian!) but should be sufficient * for either small time shifts or coarse accuracy. * </p> * @param dt time shift in seconds * @return a new state, shifted with respect to the instance (which is immutable) */ public FieldPVCoordinates<T> shiftedBy(final double dt) { return new FieldPVCoordinates<T>( new FieldVector3D<T>(1, position, dt, velocity, 0.5 * dt * dt, acceleration), new FieldVector3D<T>(1, velocity, dt, acceleration), acceleration); }
From source file:org.orekit.utils.TimeStampedFieldAngularCoordinates.java
/** Add an offset from the instance. * <p>//from w w w . ja v a2s . c om * We consider here that the offset FieldRotation<T> is applied first and the * instance is applied afterward. Note that angular coordinates do <em>not</em> * commute under this operation, i.e. {@code a.addOffset(b)} and {@code * b.addOffset(a)} lead to <em>different</em> results in most cases. * </p> * <p> * The two methods {@link #addOffset(FieldAngularCoordinates) addOffset} and * {@link #subtractOffset(FieldAngularCoordinates) subtractOffset} are designed * so that round trip applications are possible. This means that both {@code * ac1.subtractOffset(ac2).addOffset(ac2)} and {@code * ac1.addOffset(ac2).subtractOffset(ac2)} return angular coordinates equal to ac1. * </p> * @param offset offset to subtract * @return new instance, with offset subtracted * @see #subtractOffset(FieldAngularCoordinates) */ public TimeStampedFieldAngularCoordinates<T> addOffset(final FieldAngularCoordinates<T> offset) { final FieldVector3D<T> rOmega = getRotation().applyTo(offset.getRotationRate()); final FieldVector3D<T> rOmegaDot = getRotation().applyTo(offset.getRotationAcceleration()); return new TimeStampedFieldAngularCoordinates<T>(date, getRotation().applyTo(offset.getRotation()), getRotationRate().add(rOmega), new FieldVector3D<T>(1.0, getRotationAcceleration(), 1.0, rOmegaDot, -1.0, FieldVector3D.crossProduct(getRotationRate(), rOmega))); }
From source file:org.orekit.utils.TimeStampedFieldPVCoordinates.java
/** Linear constructor * <p>Build a PVCoordinates from three other ones and corresponding scale factors.</p> * <p>The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3</p> * @param date date of the built coordinates * @param a1 first scale factor/* w w w. java2 s. c om*/ * @param pv1 first base (unscaled) PVCoordinates * @param a2 second scale factor * @param pv2 second base (unscaled) PVCoordinates * @param a3 third scale factor * @param pv3 third base (unscaled) PVCoordinates */ public TimeStampedFieldPVCoordinates(final AbsoluteDate date, final double a1, final FieldPVCoordinates<T> pv1, final double a2, final FieldPVCoordinates<T> pv2, final double a3, final FieldPVCoordinates<T> pv3) { super(new FieldVector3D<T>(a1, pv1.getPosition(), a2, pv2.getPosition(), a3, pv3.getPosition()), new FieldVector3D<T>(a1, pv1.getVelocity(), a2, pv2.getVelocity(), a3, pv3.getVelocity()), new FieldVector3D<T>(a1, pv1.getAcceleration(), a2, pv2.getAcceleration(), a3, pv3.getAcceleration())); this.date = date; }
From source file:org.orekit.utils.TimeStampedFieldPVCoordinates.java
/** Linear constructor * <p>Build a PVCoordinates from three other ones and corresponding scale factors.</p> * <p>The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3</p> * @param date date of the built coordinates * @param a1 first scale factor// w w w . ja va 2 s .c o m * @param pv1 first base (unscaled) PVCoordinates * @param a2 second scale factor * @param pv2 second base (unscaled) PVCoordinates * @param a3 third scale factor * @param pv3 third base (unscaled) PVCoordinates */ public TimeStampedFieldPVCoordinates(final AbsoluteDate date, final T a1, final FieldPVCoordinates<T> pv1, final T a2, final FieldPVCoordinates<T> pv2, final T a3, final FieldPVCoordinates<T> pv3) { super(new FieldVector3D<T>(a1, pv1.getPosition(), a2, pv2.getPosition(), a3, pv3.getPosition()), new FieldVector3D<T>(a1, pv1.getVelocity(), a2, pv2.getVelocity(), a3, pv3.getVelocity()), new FieldVector3D<T>(a1, pv1.getAcceleration(), a2, pv2.getAcceleration(), a3, pv3.getAcceleration())); this.date = date; }
From source file:org.orekit.utils.TimeStampedFieldPVCoordinates.java
/** Linear constructor * <p>Build a PVCoordinates from three other ones and corresponding scale factors.</p> * <p>The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3</p> * @param date date of the built coordinates * @param a1 first scale factor//from w w w .j a v a 2 s . c om * @param pv1 first base (unscaled) PVCoordinates * @param a2 second scale factor * @param pv2 second base (unscaled) PVCoordinates * @param a3 third scale factor * @param pv3 third base (unscaled) PVCoordinates */ public TimeStampedFieldPVCoordinates(final AbsoluteDate date, final T a1, final PVCoordinates pv1, final T a2, final PVCoordinates pv2, final T a3, final PVCoordinates pv3) { super(new FieldVector3D<T>(a1, pv1.getPosition(), a2, pv2.getPosition(), a3, pv3.getPosition()), new FieldVector3D<T>(a1, pv1.getVelocity(), a2, pv2.getVelocity(), a3, pv3.getVelocity()), new FieldVector3D<T>(a1, pv1.getAcceleration(), a2, pv2.getAcceleration(), a3, pv3.getAcceleration())); this.date = date; }