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, final double a4, final FieldVector3D<T> u4)
From source file:org.orekit.frames.Transform.java
/** Transform {@link FieldPVCoordinates} including kinematic effects. * @param pv position-velocity to transform. * @param <T> type of the field elements * @return transformed position-velocity *//*from ww w . j ava2 s . c om*/ public <T extends RealFieldElement<T>> FieldPVCoordinates<T> transformPVCoordinates( final FieldPVCoordinates<T> pv) { // apply translation final FieldVector3D<T> intermediateP = pv.getPosition().add(cartesian.getPosition()); final FieldVector3D<T> intermediateV = pv.getVelocity().add(cartesian.getVelocity()); final FieldVector3D<T> intermediateA = pv.getAcceleration().add(cartesian.getAcceleration()); // apply rotation final FieldVector3D<T> transformedP = FieldRotation.applyTo(angular.getRotation(), intermediateP); final FieldVector3D<T> crossP = FieldVector3D.crossProduct(angular.getRotationRate(), transformedP); final FieldVector3D<T> transformedV = FieldRotation.applyTo(angular.getRotation(), intermediateV) .subtract(crossP); final FieldVector3D<T> crossV = FieldVector3D.crossProduct(angular.getRotationRate(), transformedV); final FieldVector3D<T> crossCrossP = FieldVector3D.crossProduct(angular.getRotationRate(), crossP); final FieldVector3D<T> crossDotP = FieldVector3D.crossProduct(angular.getRotationAcceleration(), transformedP); final FieldVector3D<T> transformedA = new FieldVector3D<T>(1, FieldRotation.applyTo(angular.getRotation(), intermediateA), -2, crossV, -1, crossCrossP, -1, crossDotP); // build transformed object return new FieldPVCoordinates<T>(transformedP, transformedV, transformedA); }
From source file:org.orekit.frames.Transform.java
/** Transform {@link TimeStampedFieldPVCoordinates} including kinematic effects. * <p>//from ww w. j ava 2s .c o m * In order to allow the user more flexibility, this method does <em>not</em> check for * consistency between the transform {@link #getDate() date} and the time-stamped * position-velocity {@link TimeStampedFieldPVCoordinates#getDate() date}. The returned * value will always have the same {@link TimeStampedFieldPVCoordinates#getDate() date} as * the input argument, regardless of the instance {@link #getDate() date}. * </p> * @param pv time-stamped position-velocity to transform. * @param <T> type of the field elements * @return transformed time-stamped position-velocity * @since 7.0 */ public <T extends RealFieldElement<T>> TimeStampedFieldPVCoordinates<T> transformPVCoordinates( final TimeStampedFieldPVCoordinates<T> pv) { // apply translation final FieldVector3D<T> intermediateP = pv.getPosition().add(cartesian.getPosition()); final FieldVector3D<T> intermediateV = pv.getVelocity().add(cartesian.getVelocity()); final FieldVector3D<T> intermediateA = pv.getAcceleration().add(cartesian.getAcceleration()); // apply rotation final FieldVector3D<T> transformedP = FieldRotation.applyTo(angular.getRotation(), intermediateP); final FieldVector3D<T> crossP = FieldVector3D.crossProduct(angular.getRotationRate(), transformedP); final FieldVector3D<T> transformedV = FieldRotation.applyTo(angular.getRotation(), intermediateV) .subtract(crossP); final FieldVector3D<T> crossV = FieldVector3D.crossProduct(angular.getRotationRate(), transformedV); final FieldVector3D<T> crossCrossP = FieldVector3D.crossProduct(angular.getRotationRate(), crossP); final FieldVector3D<T> crossDotP = FieldVector3D.crossProduct(angular.getRotationAcceleration(), transformedP); final FieldVector3D<T> transformedA = new FieldVector3D<T>(1, FieldRotation.applyTo(angular.getRotation(), intermediateA), -2, crossV, -1, crossCrossP, -1, crossDotP); // build transformed object return new TimeStampedFieldPVCoordinates<T>(pv.getDate(), transformedP, transformedV, transformedA); }
From source file:org.orekit.utils.FieldPVCoordinates.java
/** Linear constructor * <p>Build a PVCoordinates from four other ones and corresponding scale factors.</p> * <p>The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4</p> * @param a1 first scale factor/*from ww w.j a v a 2s . 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 * @param a4 fourth scale factor * @param pv4 fourth 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, final double a4, final FieldPVCoordinates<T> pv4) { position = new FieldVector3D<T>(a1, pv1.position, a2, pv2.position, a3, pv3.position, a4, pv4.position); velocity = new FieldVector3D<T>(a1, pv1.velocity, a2, pv2.velocity, a3, pv3.velocity, a4, pv4.velocity); acceleration = new FieldVector3D<T>(a1, pv1.acceleration, a2, pv2.acceleration, a3, pv3.acceleration, a4, pv4.acceleration); }
From source file:org.orekit.utils.FieldPVCoordinates.java
/** Linear constructor * <p>Build a PVCoordinates from four other ones and corresponding scale factors.</p> * <p>The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4</p> * @param a1 first scale factor// ww w . j a v a2 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 * @param a4 fourth scale factor * @param pv4 fourth 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, final T a4, final FieldPVCoordinates<T> pv4) { position = new FieldVector3D<T>(a1, pv1.position, a2, pv2.position, a3, pv3.position, a4, pv4.position); velocity = new FieldVector3D<T>(a1, pv1.velocity, a2, pv2.velocity, a3, pv3.velocity, a4, pv4.velocity); acceleration = new FieldVector3D<T>(a1, pv1.acceleration, a2, pv2.acceleration, a3, pv3.acceleration, a4, pv4.acceleration); }
From source file:org.orekit.utils.FieldPVCoordinates.java
/** Linear constructor * <p>Build a PVCoordinates from four other ones and corresponding scale factors.</p> * <p>The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4</p> * @param a1 first scale factor//from w ww .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 * @param a4 fourth scale factor * @param pv4 fourth base (unscaled) PVCoordinates */ public FieldPVCoordinates(final T a1, final PVCoordinates pv1, final T a2, final PVCoordinates pv2, final T a3, final PVCoordinates pv3, final T a4, final PVCoordinates pv4) { position = new FieldVector3D<T>(a1, pv1.getPosition(), a2, pv2.getPosition(), a3, pv3.getPosition(), a4, pv4.getPosition()); velocity = new FieldVector3D<T>(a1, pv1.getVelocity(), a2, pv2.getVelocity(), a3, pv3.getVelocity(), a4, pv4.getVelocity()); acceleration = new FieldVector3D<T>(a1, pv1.getAcceleration(), a2, pv2.getAcceleration(), a3, pv3.getAcceleration(), a4, pv4.getAcceleration()); }
From source file:org.orekit.utils.TimeStampedFieldPVCoordinates.java
/** Linear constructor * <p>Build a PVCoordinates from four other ones and corresponding scale factors.</p> * <p>The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4</p> * @param date date of the built coordinates * @param a1 first scale factor/* w ww . 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 * @param a4 fourth scale factor * @param pv4 fourth 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, final double a4, final FieldPVCoordinates<T> pv4) { super(new FieldVector3D<T>(a1, pv1.getPosition(), a2, pv2.getPosition(), a3, pv3.getPosition(), a4, pv4.getPosition()), new FieldVector3D<T>(a1, pv1.getVelocity(), a2, pv2.getVelocity(), a3, pv3.getVelocity(), a4, pv4.getVelocity()), new FieldVector3D<T>(a1, pv1.getAcceleration(), a2, pv2.getAcceleration(), a3, pv3.getAcceleration(), a4, pv4.getAcceleration())); this.date = date; }
From source file:org.orekit.utils.TimeStampedFieldPVCoordinates.java
/** Linear constructor * <p>Build a PVCoordinates from four other ones and corresponding scale factors.</p> * <p>The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4</p> * @param date date of the built coordinates * @param a1 first scale factor/*from ww w . j av 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 * @param a4 fourth scale factor * @param pv4 fourth 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, final T a4, final FieldPVCoordinates<T> pv4) { super(new FieldVector3D<T>(a1, pv1.getPosition(), a2, pv2.getPosition(), a3, pv3.getPosition(), a4, pv4.getPosition()), new FieldVector3D<T>(a1, pv1.getVelocity(), a2, pv2.getVelocity(), a3, pv3.getVelocity(), a4, pv4.getVelocity()), new FieldVector3D<T>(a1, pv1.getAcceleration(), a2, pv2.getAcceleration(), a3, pv3.getAcceleration(), a4, pv4.getAcceleration())); this.date = date; }
From source file:org.orekit.utils.TimeStampedFieldPVCoordinates.java
/** Linear constructor * <p>Build a PVCoordinates from four other ones and corresponding scale factors.</p> * <p>The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4</p> * @param date date of the built coordinates * @param a1 first scale factor// w ww . 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 * @param a4 fourth scale factor * @param pv4 fourth 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, final T a4, final PVCoordinates pv4) { super(new FieldVector3D<T>(a1, pv1.getPosition(), a2, pv2.getPosition(), a3, pv3.getPosition(), a4, pv4.getPosition()), new FieldVector3D<T>(a1, pv1.getVelocity(), a2, pv2.getVelocity(), a3, pv3.getVelocity(), a4, pv4.getVelocity()), new FieldVector3D<T>(a1, pv1.getAcceleration(), a2, pv2.getAcceleration(), a3, pv3.getAcceleration(), a4, pv4.getAcceleration())); this.date = date; }