From 3807f1bddd017bb36f17551c232209b04c95cffd Mon Sep 17 00:00:00 2001 From: Luc Maisonobe <luc@orekit.org> Date: Tue, 29 Apr 2014 15:51:33 +0200 Subject: [PATCH] Moved reference date from Rugged top class to LineDatation model. --- .../org/orekit/rugged/api/LineDatation.java | 10 ++- .../orekit/rugged/api/LinearLineDatation.java | 26 ++++--- .../java/org/orekit/rugged/api/Rugged.java | 47 +++--------- .../java/org/orekit/rugged/core/Sensor.java | 11 +-- .../org/orekit/rugged/api/RuggedTest.java | 75 +++++++++---------- .../org/orekit/rugged/core/SensorTest.java | 8 +- 6 files changed, 78 insertions(+), 99 deletions(-) diff --git a/src/main/java/org/orekit/rugged/api/LineDatation.java b/src/main/java/org/orekit/rugged/api/LineDatation.java index ba032920..83963f0d 100644 --- a/src/main/java/org/orekit/rugged/api/LineDatation.java +++ b/src/main/java/org/orekit/rugged/api/LineDatation.java @@ -16,6 +16,8 @@ */ package org.orekit.rugged.api; +import org.orekit.time.AbsoluteDate; + /** Interface representing line datation model. * @see LinearLineDatation * @author Luc Maisonobe @@ -24,14 +26,14 @@ public interface LineDatation { /** Get the date for a given line. * @param lineNumber line number - * @return date, as an offset in seconds from reference date + * @return date at which line is acquired */ - double getDate(double lineNumber); + AbsoluteDate getDate(double lineNumber); /** Get the line for a given date. - * @param date date, as an offset in seconds from reference date + * @param date date * @return line number */ - double getLine(double date); + double getLine(AbsoluteDate date); } diff --git a/src/main/java/org/orekit/rugged/api/LinearLineDatation.java b/src/main/java/org/orekit/rugged/api/LinearLineDatation.java index def52ccc..18f6c449 100644 --- a/src/main/java/org/orekit/rugged/api/LinearLineDatation.java +++ b/src/main/java/org/orekit/rugged/api/LinearLineDatation.java @@ -16,6 +16,8 @@ */ package org.orekit.rugged.api; +import org.orekit.time.AbsoluteDate; + /** Linear model for {@link LineDatation line datation}. * <p> @@ -25,31 +27,37 @@ package org.orekit.rugged.api; */ public class LinearLineDatation implements LineDatation { + /** Reference date. */ + private final AbsoluteDate referenceDate; + /** Line number at reference date. */ - private final double line0; + private final double referenceLine; /** Rate of lines scanning (lines / seconds). */ private final double rate; /** Simple constructor. - * @param line0 line number at reference date + * @param referenceDate reference date + * @param referenceLine line number at reference date * @param rate rate of lines scanning (lines / seconds) */ - public LinearLineDatation(final double line0, final double rate) { - this.line0 = line0; - this.rate = rate; + public LinearLineDatation(final AbsoluteDate referenceDate, final double referenceLine, + final double rate) { + this.referenceDate = referenceDate; + this.referenceLine = referenceLine; + this.rate = rate; } /** {@inheritDoc} */ @Override - public double getDate(final double lineNumber) { - return (lineNumber - line0) / rate; + public AbsoluteDate getDate(final double lineNumber) { + return referenceDate.shiftedBy((lineNumber - referenceLine) / rate); } /** {@inheritDoc} */ @Override - public double getLine(final double date) { - return line0 + rate * date; + public double getLine(final AbsoluteDate date) { + return referenceLine + rate * date.durationFrom(referenceDate); } } diff --git a/src/main/java/org/orekit/rugged/api/Rugged.java b/src/main/java/org/orekit/rugged/api/Rugged.java index ca1fdbbd..b39d620b 100644 --- a/src/main/java/org/orekit/rugged/api/Rugged.java +++ b/src/main/java/org/orekit/rugged/api/Rugged.java @@ -68,9 +68,6 @@ public class Rugged { /** Maximum number of evaluations for inverse localization. */ private static final int INVERSE_LOCALIZATION_MAX_EVAL = 1000; - /** Reference date. */ - private final AbsoluteDate referenceDate; - /** Reference ellipsoid. */ private final ExtendedEllipsoid ellipsoid; @@ -98,7 +95,6 @@ public class Rugged { * and {@link #setAberrationOfLightCorrection(boolean) setAberrationOfLightCorrection} * can be made after construction if these phenomena should not be corrected. * </p> - * @param referenceDate reference date from which all other dates are computed * @param updater updater used to load Digital Elevation Model tiles * @param maxCachedTiles maximum number of tiles stored in the cache * @param algorithmID identifier of algorithm to use for Digital Elevation Model intersection @@ -111,14 +107,13 @@ public class Rugged { * @param aInterpolationOrder order to use for attitude interpolation * @exception RuggedException if data needed for some frame cannot be loaded */ - public Rugged(final AbsoluteDate referenceDate, - final TileUpdater updater, final int maxCachedTiles, + public Rugged(final TileUpdater updater, final int maxCachedTiles, final AlgorithmId algorithmID, final EllipsoidId ellipsoidID, final InertialFrameId inertialFrameID, final BodyRotatingFrameId bodyRotatingFrameID, final List<Pair<AbsoluteDate, PVCoordinates>> positionsVelocities, final int pvInterpolationOrder, final List<Pair<AbsoluteDate, Rotation>> quaternions, final int aInterpolationOrder) throws RuggedException { - this(referenceDate, updater, maxCachedTiles, algorithmID, + this(updater, maxCachedTiles, algorithmID, selectEllipsoid(ellipsoidID, selectBodyRotatingFrame(bodyRotatingFrameID)), selectInertialFrame(inertialFrameID), positionsVelocities, pvInterpolationOrder, quaternions, aInterpolationOrder); @@ -133,7 +128,6 @@ public class Rugged { * and {@link #setAberrationOfLightCorrection(boolean) setAberrationOfLightCorrection} * can be made after construction if these phenomena should not be corrected. * </p> - * @param referenceDate reference date from which all other dates are computed * @param updater updater used to load Digital Elevation Model tiles * @param maxCachedTiles maximum number of tiles stored in the cache * @param algorithmID identifier of algorithm to use for Digital Elevation Model intersection @@ -145,13 +139,12 @@ public class Rugged { * @param aInterpolationOrder order to use for attitude interpolation * @exception RuggedException if data needed for some frame cannot be loaded */ - public Rugged(final AbsoluteDate referenceDate, - final TileUpdater updater, final int maxCachedTiles, + public Rugged(final TileUpdater updater, final int maxCachedTiles, final AlgorithmId algorithmID, final OneAxisEllipsoid ellipsoid, final Frame inertialFrame, final List<Pair<AbsoluteDate, PVCoordinates>> positionsVelocities, final int pvInterpolationOrder, final List<Pair<AbsoluteDate, Rotation>> quaternions, final int aInterpolationOrder) throws RuggedException { - this(referenceDate, updater, maxCachedTiles, algorithmID, + this(updater, maxCachedTiles, algorithmID, extend(ellipsoid), inertialFrame, selectPVCoordinatesProvider(positionsVelocities, pvInterpolationOrder, inertialFrame), selectAttitudeProvider(quaternions, aInterpolationOrder, inertialFrame)); @@ -166,7 +159,6 @@ public class Rugged { * and {@link #setAberrationOfLightCorrection(boolean) setAberrationOfLightCorrection} * can be made after construction if these phenomena should not be corrected. * </p> - * @param referenceDate reference date from which all other dates are computed * @param updater updater used to load Digital Elevation Model tiles * @param maxCachedTiles maximum number of tiles stored in the cache * @param algorithmID identifier of algorithm to use for Digital Elevation Model intersection @@ -176,13 +168,12 @@ public class Rugged { * @param propagator global propagator * @exception RuggedException if data needed for some frame cannot be loaded */ - public Rugged(final AbsoluteDate referenceDate, - final TileUpdater updater, final int maxCachedTiles, + public Rugged(final TileUpdater updater, final int maxCachedTiles, final AlgorithmId algorithmID, final EllipsoidId ellipsoidID, final InertialFrameId inertialFrameID, final BodyRotatingFrameId bodyRotatingFrameID, final Propagator propagator) throws RuggedException { - this(referenceDate, updater, maxCachedTiles, algorithmID, + this(updater, maxCachedTiles, algorithmID, selectEllipsoid(ellipsoidID, selectBodyRotatingFrame(bodyRotatingFrameID)), selectInertialFrame(inertialFrameID), propagator); } @@ -196,7 +187,6 @@ public class Rugged { * and {@link #setAberrationOfLightCorrection(boolean) setAberrationOfLightCorrection} * can be made after construction if these phenomena should not be corrected. * </p> - * @param referenceDate reference date from which all other dates are computed * @param updater updater used to load Digital Elevation Model tiles * @param maxCachedTiles maximum number of tiles stored in the cache * @param algorithmID identifier of algorithm to use for Digital Elevation Model intersection @@ -205,18 +195,16 @@ public class Rugged { * @param propagator global propagator * @exception RuggedException if data needed for some frame cannot be loaded */ - public Rugged(final AbsoluteDate referenceDate, - final TileUpdater updater, final int maxCachedTiles, + public Rugged(final TileUpdater updater, final int maxCachedTiles, final AlgorithmId algorithmID, final OneAxisEllipsoid ellipsoid, final Frame inertialFrame, final Propagator propagator) throws RuggedException { - this(referenceDate, updater, maxCachedTiles, algorithmID, + this(updater, maxCachedTiles, algorithmID, extend(ellipsoid), inertialFrame, propagator, propagator.getAttitudeProvider()); } /** Low level private constructor. - * @param referenceDate reference date from which all other dates are computed * @param updater updater used to load Digital Elevation Model tiles * @param maxCachedTiles maximum number of tiles stored in the cache * @param algorithmID identifier of algorithm to use for Digital Elevation Model intersection @@ -226,15 +214,11 @@ public class Rugged { * @param aProvider attitude propagator/interpolator * @exception RuggedException if data needed for some frame cannot be loaded */ - private Rugged(final AbsoluteDate referenceDate, - final TileUpdater updater, final int maxCachedTiles, final AlgorithmId algorithmID, - final ExtendedEllipsoid ellipsoid, final Frame inertialFrame, - final PVCoordinatesProvider pvProvider, final AttitudeProvider aProvider) + private Rugged(final TileUpdater updater, final int maxCachedTiles, final AlgorithmId algorithmID, + final ExtendedEllipsoid ellipsoid, final Frame inertialFrame, + final PVCoordinatesProvider pvProvider, final AttitudeProvider aProvider) throws RuggedException { - // time reference - this.referenceDate = referenceDate; - // space reference this.ellipsoid = ellipsoid; @@ -250,13 +234,6 @@ public class Rugged { } - /** Get the reference date. - * @return reference date - */ - public AbsoluteDate getReferenceDate() { - return referenceDate; - } - /** Set flag for light time correction. * <p> * This methods set the flag for compensating or not light time between @@ -322,7 +299,7 @@ public class Rugged { positions.add(new Vector3D(plos.getPx(), plos.getPy(), plos.getPz())); los.add(new Vector3D(plos.getDx(), plos.getDy(), plos.getDz()).normalize()); } - final Sensor sensor = new Sensor(sensorName, referenceDate, datationModel, positions, los); + final Sensor sensor = new Sensor(sensorName, datationModel, positions, los); sensors.put(sensor.getName(), sensor); } diff --git a/src/main/java/org/orekit/rugged/core/Sensor.java b/src/main/java/org/orekit/rugged/core/Sensor.java index 4c87acd0..3f4e953b 100644 --- a/src/main/java/org/orekit/rugged/core/Sensor.java +++ b/src/main/java/org/orekit/rugged/core/Sensor.java @@ -36,9 +36,6 @@ public class Sensor { /** Name of the sensor. */ private final String name; - /** Reference date. */ - private final AbsoluteDate referenceDate; - /** Pixels positions. */ private final List<Vector3D> positions; @@ -61,12 +58,10 @@ public class Sensor { * @param los pixels lines-of-sight * @param datationModel datation model */ - public Sensor(final String name, - final AbsoluteDate referenceDate, final LineDatation datationModel, + public Sensor(final String name, final LineDatation datationModel, final List<Vector3D> positions, final List<Vector3D> los) { this.name = name; - this.referenceDate = referenceDate; this.positions = positions; this.los = los; this.datationModel = datationModel; @@ -146,7 +141,7 @@ public class Sensor { * @return date corresponding to line number */ public AbsoluteDate getDate(final double lineNumber) { - return referenceDate.shiftedBy(datationModel.getDate(lineNumber)); + return datationModel.getDate(lineNumber); } /** Get the line number. @@ -154,7 +149,7 @@ public class Sensor { * @return line number corresponding to date */ public double getLine(final AbsoluteDate date) { - return datationModel.getLine(date.durationFrom(referenceDate)); + return datationModel.getLine(date); } /** Get the mean plane normal. diff --git a/src/test/java/org/orekit/rugged/api/RuggedTest.java b/src/test/java/org/orekit/rugged/api/RuggedTest.java index bac02f19..fbd7234e 100644 --- a/src/test/java/org/orekit/rugged/api/RuggedTest.java +++ b/src/test/java/org/orekit/rugged/api/RuggedTest.java @@ -140,15 +140,13 @@ public class RuggedTest { FastMath.toRadians(30.0), 16.0, FastMath.toRadians(1.0), 1201); - Rugged rugged = new Rugged(t0, updater, 8, + Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, pv, 8, q, 8); - Assert.assertEquals(new AbsoluteDate("2012-01-01T00:00:00", TimeScalesFactory.getUTC()), - rugged.getReferenceDate()); Assert.assertTrue(rugged.isLightTimeCorrected()); rugged.setLightTimeCorrection(false); Assert.assertFalse(rugged.isLightTimeCorrected()); @@ -174,14 +172,13 @@ public class RuggedTest { FastMath.toRadians(30.0), 16.0, FastMath.toRadians(1.0), 1201); - Rugged rugged = new Rugged(propagator.getInitialState().getDate(), updater, 8, + Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, propagator); - Assert.assertEquals(propagator.getInitialState().getDate(), rugged.getReferenceDate()); Assert.assertTrue(rugged.isLightTimeCorrected()); rugged.setLightTimeCorrection(false); Assert.assertFalse(rugged.isLightTimeCorrected()); @@ -220,17 +217,17 @@ public class RuggedTest { FastMath.toRadians(10.0), dimension); // linear datation model: at reference time we get line 1000, and the rate is one line every 1.5ms - LineDatation lineDatation = new LinearLineDatation(dimension / 2, 1.0 / 1.5e-3); + LineDatation lineDatation = new LinearLineDatation(crossing, dimension / 2, 1.0 / 1.5e-3); int firstLine = 0; int lastLine = dimension; Propagator propagator = createPropagator(earth, gravityField, orbit); - propagator.propagate(crossing.shiftedBy(lineDatation.getDate(firstLine) - 1.0)); + propagator.propagate(lineDatation.getDate(firstLine).shiftedBy(-1.0)); propagator.setEphemerisMode(); - propagator.propagate(crossing.shiftedBy(lineDatation.getDate(lastLine) + 1.0)); + propagator.propagate(lineDatation.getDate(lastLine).shiftedBy(+1.0)); Propagator ephemeris = propagator.getGeneratedEphemeris(); - Rugged rugged = new Rugged(crossing, updater, 8, + Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, @@ -299,17 +296,17 @@ public class RuggedTest { FastMath.toRadians(10.0), dimension); // linear datation model: at reference time we get line 200, and the rate is one line every 1.5ms - LineDatation lineDatation = new LinearLineDatation(dimension / 2, 1.0 / 1.5e-3); + LineDatation lineDatation = new LinearLineDatation(crossing, dimension / 2, 1.0 / 1.5e-3); int firstLine = 0; int lastLine = dimension; - Rugged rugged = new Rugged(crossing, null, -1, + Rugged rugged = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - orbitToPV(orbit, earth, lineDatation, crossing, firstLine, lastLine, 0.25), 8, - orbitToQ(orbit, earth, lineDatation, crossing, firstLine, lastLine, 0.25), 2); + orbitToPV(orbit, earth, lineDatation, firstLine, lastLine, 0.25), 8, + orbitToQ(orbit, earth, lineDatation, firstLine, lastLine, 0.25), 2); rugged.setLineSensor("line", los, lineDatation); @@ -350,17 +347,17 @@ public class RuggedTest { FastMath.toRadians(10.0), dimension); // linear datation model: at reference time we get line 200, and the rate is one line every 1.5ms - LineDatation lineDatation = new LinearLineDatation(dimension / 2, 1.0 / 1.5e-3); + LineDatation lineDatation = new LinearLineDatation(crossing, dimension / 2, 1.0 / 1.5e-3); int firstLine = 0; int lastLine = dimension; - Rugged rugged = new Rugged(crossing, null, -1, + Rugged rugged = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - orbitToPV(orbit, earth, lineDatation, crossing, firstLine, lastLine, 0.25), 8, - orbitToQ(orbit, earth, lineDatation, crossing, firstLine, lastLine, 0.25), 2); + orbitToPV(orbit, earth, lineDatation, firstLine, lastLine, 0.25), 8, + orbitToQ(orbit, earth, lineDatation, firstLine, lastLine, 0.25), 2); rugged.setLineSensor("line", los, lineDatation); @@ -403,7 +400,7 @@ public class RuggedTest { FastMath.toRadians(1.0), dimension); // linear datation model: at reference time we get line 100, and the rate is one line every 1.5ms - LineDatation lineDatation = new LinearLineDatation(dimension / 2, 1.0 / 1.5e-3); + LineDatation lineDatation = new LinearLineDatation(crossing, dimension / 2, 1.0 / 1.5e-3); int firstLine = 0; int lastLine = dimension; @@ -411,23 +408,23 @@ public class RuggedTest { new RandomLandscapeUpdater(0.0, 9000.0, 0.5, 0xf0a401650191f9f6l, FastMath.toRadians(1.0), 257); - Rugged ruggedFull = new Rugged(crossing, updater, 8, + Rugged ruggedFull = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - orbitToPV(orbit, earth, lineDatation, crossing, firstLine, lastLine, 0.25), 8, - orbitToQ(orbit, earth, lineDatation, crossing, firstLine, lastLine, 0.25), 2); + orbitToPV(orbit, earth, lineDatation, firstLine, lastLine, 0.25), 8, + orbitToQ(orbit, earth, lineDatation, firstLine, lastLine, 0.25), 2); ruggedFull.setLineSensor("line", los, lineDatation); GeodeticPoint[] gpWithFlatBodyCorrection = ruggedFull.directLocalization("line", 100); - Rugged ruggedFlat = new Rugged(crossing, updater, 8, + Rugged ruggedFlat = new Rugged(updater, 8, AlgorithmId.DUVENHAGE_FLAT_BODY, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - orbitToPV(orbit, earth, lineDatation, crossing, firstLine, lastLine, 0.25), 8, - orbitToQ(orbit, earth, lineDatation, crossing, firstLine, lastLine, 0.25), 2); + orbitToPV(orbit, earth, lineDatation, firstLine, lastLine, 0.25), 8, + orbitToQ(orbit, earth, lineDatation, firstLine, lastLine, 0.25), 2); ruggedFlat.setLineSensor("line", los, lineDatation); GeodeticPoint[] gpWithoutFlatBodyCorrection = ruggedFlat.directLocalization("line", 100); @@ -465,7 +462,7 @@ public class RuggedTest { FastMath.toRadians(1.0), dimension); // linear datation model: at reference time we get line 100, and the rate is one line every 1.5ms - LineDatation lineDatation = new LinearLineDatation(dimension / 2, 1.0 / 1.5e-3); + LineDatation lineDatation = new LinearLineDatation(crossing, dimension / 2, 1.0 / 1.5e-3); int firstLine = 0; int lastLine = dimension; @@ -473,24 +470,24 @@ public class RuggedTest { new RandomLandscapeUpdater(0.0, 9000.0, 0.5, 0xf0a401650191f9f6l, FastMath.toRadians(1.0), 257); - Rugged rugged = new Rugged(crossing, updater, 8, + Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF, - orbitToPV(orbit, earth, lineDatation, crossing, firstLine, lastLine, 0.25), 8, - orbitToQ(orbit, earth, lineDatation, crossing, firstLine, lastLine, 0.25), 2); + orbitToPV(orbit, earth, lineDatation, firstLine, lastLine, 0.25), 8, + orbitToQ(orbit, earth, lineDatation, firstLine, lastLine, 0.25), 2); rugged.setLightTimeCorrection(false); rugged.setAberrationOfLightCorrection(false); rugged.setLineSensor("line", los, lineDatation); - double referenceLine = 100.00; + double referenceLine = 100.00; GeodeticPoint[] gp = rugged.directLocalization("line", referenceLine); for (int i = 1; i < gp.length; ++i) { SensorPixel sp = rugged.inverseLocalization("line", gp[i], 0, dimension); - Assert.assertEquals(referenceLine, sp.getLineNumber(), 3.0e-9); - Assert.assertEquals(i, sp.getPixelNumber(), 8.0e-5); + Assert.assertEquals(referenceLine, sp.getLineNumber(), 3.0e-9); + Assert.assertEquals(i, sp.getPixelNumber(), 8.0e-5); } } @@ -586,13 +583,13 @@ public class RuggedTest { return new Pair<AbsoluteDate, Rotation>(t0.shiftedBy(dt), new Rotation(q0, q1, q2, q3, true)); } - private List<Pair<AbsoluteDate, PVCoordinates>> orbitToPV(Orbit orbit, BodyShape earth, LineDatation lineDatation, - AbsoluteDate crossing, int firstLine, int lastLine, + private List<Pair<AbsoluteDate, PVCoordinates>> orbitToPV(Orbit orbit, BodyShape earth, + LineDatation lineDatation, int firstLine, int lastLine, double step) throws PropagationException { Propagator propagator = new KeplerianPropagator(orbit); propagator.setAttitudeProvider(new YawCompensation(new NadirPointing(earth))); - propagator.propagate(crossing.shiftedBy(lineDatation.getDate(firstLine) - 1.0)); + propagator.propagate(lineDatation.getDate(firstLine).shiftedBy(-1.0)); final List<Pair<AbsoluteDate, PVCoordinates>> list = new ArrayList<Pair<AbsoluteDate, PVCoordinates>>(); propagator.setMasterMode(step, new OrekitFixedStepHandler() { public void init(SpacecraftState s0, AbsoluteDate t) { @@ -602,17 +599,17 @@ public class RuggedTest { currentState.getPVCoordinates())); } }); - propagator.propagate(crossing.shiftedBy(lineDatation.getDate(lastLine) + 1.0)); + propagator.propagate(lineDatation.getDate(lastLine).shiftedBy(+1.0)); return list; } - private List<Pair<AbsoluteDate, Rotation>> orbitToQ(Orbit orbit, BodyShape earth, LineDatation lineDatation, - AbsoluteDate crossing, int firstLine, int lastLine, + private List<Pair<AbsoluteDate, Rotation>> orbitToQ(Orbit orbit, BodyShape earth, + LineDatation lineDatation, int firstLine, int lastLine, double step) throws PropagationException { Propagator propagator = new KeplerianPropagator(orbit); propagator.setAttitudeProvider(new YawCompensation(new NadirPointing(earth))); - propagator.propagate(crossing.shiftedBy(lineDatation.getDate(firstLine) - 1.0)); + propagator.propagate(lineDatation.getDate(firstLine).shiftedBy(-1.0)); final List<Pair<AbsoluteDate, Rotation>> list = new ArrayList<Pair<AbsoluteDate, Rotation>>(); propagator.setMasterMode(step, new OrekitFixedStepHandler() { public void init(SpacecraftState s0, AbsoluteDate t) { @@ -622,7 +619,7 @@ public class RuggedTest { currentState.getAttitude().getRotation())); } }); - propagator.propagate(crossing.shiftedBy(lineDatation.getDate(lastLine) + 1.0)); + propagator.propagate(lineDatation.getDate(lastLine).shiftedBy(+1.0)); return list; } diff --git a/src/test/java/org/orekit/rugged/core/SensorTest.java b/src/test/java/org/orekit/rugged/core/SensorTest.java index 9a5c3eae..748aedbb 100644 --- a/src/test/java/org/orekit/rugged/core/SensorTest.java +++ b/src/test/java/org/orekit/rugged/core/SensorTest.java @@ -47,8 +47,8 @@ public class SensorTest { los.add(new Vector3D(FastMath.cos(alpha), fovCenter, FastMath.sin(alpha), cross)); } - final Sensor sensor = new Sensor("perfect line", AbsoluteDate.J2000_EPOCH, - new LinearLineDatation(0.0, 1.0 / 1.5e-3), positions, los); + final Sensor sensor = new Sensor("perfect line", + new LinearLineDatation(AbsoluteDate.J2000_EPOCH, 0.0, 1.0 / 1.5e-3), positions, los); Assert.assertEquals("perfect line", sensor.getName()); Assert.assertEquals(AbsoluteDate.J2000_EPOCH, sensor.getDate(0.0)); @@ -80,8 +80,8 @@ public class SensorTest { los.add(new Vector3D(cA * cD, fovCenter, sA * cD, cross, sD, normal)); } - final Sensor sensor = new Sensor("noisy line", AbsoluteDate.J2000_EPOCH, - new LinearLineDatation(0.0, 1.0 / 1.5e-3), positions, los); + final Sensor sensor = new Sensor("noisy line", + new LinearLineDatation(AbsoluteDate.J2000_EPOCH, 0.0, 1.0 / 1.5e-3), positions, los); Assert.assertEquals("noisy line", sensor.getName()); Assert.assertEquals(AbsoluteDate.J2000_EPOCH, sensor.getDate(0.0)); -- GitLab