diff --git a/src/main/java/org/orekit/models/earth/PythonEarthShape.java b/src/main/java/org/orekit/models/earth/PythonEarthShape.java index 1b8908426b..35fd6dd98f 100644 --- a/src/main/java/org/orekit/models/earth/PythonEarthShape.java +++ b/src/main/java/org/orekit/models/earth/PythonEarthShape.java @@ -60,165 +60,42 @@ public void finalize() /** Part of JCC Python interface to object */ public native void pythonDecRef(); - /** - * Get the underlying ellipsoid model that defines latitude and longitude. If the - * height component of a {@link GeodeticPoint} is not needed, - * then using the ellipsoid will provide the quickest transformation. - * - * @return the reference ellipsoid. May be {@code this}, but never {@code null}. - */ + /** {@inheritDoc} */ @Override public native ReferenceEllipsoid getEllipsoid(); - /** - * Get body frame related to body shape. - * - * @return body frame related to body shape - */ + /** {@inheritDoc} */ @Override public native Frame getBodyFrame(); - /** - * Get the intersection point of a line with the surface of the body. - *

A line may have several intersection points with a closed - * surface (we consider the one point case as a degenerated two - * points case). The close parameter is used to select which of - * these points should be returned. The selected point is the one - * that is closest to the close point.

- * - * @param line test line (may intersect the body or not) - * @param close point used for intersections selection - * @param frame frame in which line is expressed - * @param date date of the line in given frame - * @return intersection point at altitude zero or null if the line does - * not intersect the surface - */ @Override public native GeodeticPoint getIntersectionPoint(Line line, Vector3D close, Frame frame, AbsoluteDate date); - /** - * Get the intersection point of a line with the surface of the body. - *

A line may have several intersection points with a closed - * surface (we consider the one point case as a degenerated two - * points case). The close parameter is used to select which of - * these points should be returned. The selected point is the one - * that is closest to the close point.

- * - * @param line test line (may intersect the body or not) - * @param close point used for intersections selection - * @param frame frame in which line is expressed - * @param date date of the line in given frame - * @return intersection point at altitude zero or null if the line does - * not intersect the surface - * @since 9.0 - */ @Override - public > FieldGeodeticPoint getIntersectionPoint(FieldLine line, FieldVector3D close, Frame frame, FieldAbsoluteDate date) { - return this.getIntersectionPoint_FFFF(line, close, frame, date); - } + public native > FieldGeodeticPoint getIntersectionPoint(FieldLine line, FieldVector3D close, Frame frame, FieldAbsoluteDate date); - public native > FieldGeodeticPoint getIntersectionPoint_FFFF(FieldLine line, FieldVector3D close, Frame frame, FieldAbsoluteDate date); - - /** - * Project a point to the ground. - * - * @param point point to project - * @param date current date - * @param frame frame in which moving point is expressed - * @return ground point exactly at the local vertical of specified point, - * in the same frame as specified point - * @see #projectToGround(TimeStampedPVCoordinates, Frame) - * @since 7.0 - */ + /** {@inheritDoc} */ @Override public native Vector3D projectToGround(Vector3D point, AbsoluteDate date, Frame frame); - /** - * Project a moving point to the ground. - * - * @param pv moving point - * @param frame frame in which moving point is expressed - * @return ground point exactly at the local vertical of specified point, - * in the same frame as specified point - * @see #projectToGround(Vector3D, AbsoluteDate, Frame) - * @since 7.0 - */ + /** {@inheritDoc} */ @Override - public TimeStampedPVCoordinates projectToGround(TimeStampedPVCoordinates pv, Frame frame) { - return this.projectToGround_TF(pv,frame); - } + public native TimeStampedPVCoordinates projectToGround(TimeStampedPVCoordinates pv, Frame frame); - public native TimeStampedPVCoordinates projectToGround_TF(TimeStampedPVCoordinates pv, Frame frame); - - /** - * Transform a Cartesian point to a surface-relative point. - * - * @param point Cartesian point - * @param frame frame in which Cartesian point is expressed - * @param date date of the computation (used for frames conversions) - * @return point at the same location but as a surface-relative point - */ + /** {@inheritDoc} */ @Override public native GeodeticPoint transform(Vector3D point, Frame frame, AbsoluteDate date); - /** - * Transform a Cartesian point to a surface-relative point. - * - * @param point Cartesian point - * @param frame frame in which Cartesian point is expressed - * @param date date of the computation (used for frames conversions) - * @return point at the same location but as a surface-relative point - * @since 9.0 - */ + /** {@inheritDoc} */ @Override - public > FieldGeodeticPoint transform(FieldVector3D point, Frame frame, FieldAbsoluteDate date) { - return this.transform_FFF(point,frame, date); - } + public native > FieldGeodeticPoint transform(FieldVector3D point, Frame frame, FieldAbsoluteDate date); - /** - * Transform a surface-relative point to a Cartesian point. - * - * @param point surface-relative point - * @return point at the same location but as a Cartesian point - */ + /** {@inheritDoc} */ @Override - public Vector3D transform(GeodeticPoint point) { - return this.transform_G(point); - } + public native Vector3D transform(GeodeticPoint point); - /** - * Transform a Cartesian point to a surface-relative point. - * - * @param point Cartesian point - * @param frame frame in which Cartesian point is expressed - * @param date date of the computation (used for frames conversions) - * @return point at the same location but as a surface-relative point - * @since 9.0 - */ - - public native > FieldGeodeticPoint transform_FFF(FieldVector3D point, Frame frame, FieldAbsoluteDate date); - - /** - * Transform a surface-relative point to a Cartesian point. - * - * @param point surface-relative point - * @return point at the same location but as a Cartesian point - */ - - public native Vector3D transform_G(GeodeticPoint point); - - /** - * Transform a surface-relative point to a Cartesian point. - * - * @param point surface-relative point - * @return point at the same location but as a Cartesian point - * @since 9.0 - */ + /** {@inheritDoc} */ @Override - public > FieldVector3D transform(FieldGeodeticPoint point) { - return this.transform_F(point); - } - - public native > FieldVector3D transform_F(FieldGeodeticPoint point); + public native > FieldVector3D transform(FieldGeodeticPoint point); } diff --git a/src/main/java/org/orekit/models/earth/atmosphere/PythonAtmosphere.java b/src/main/java/org/orekit/models/earth/atmosphere/PythonAtmosphere.java index 63097bd044..6f3e5a28df 100644 --- a/src/main/java/org/orekit/models/earth/atmosphere/PythonAtmosphere.java +++ b/src/main/java/org/orekit/models/earth/atmosphere/PythonAtmosphere.java @@ -57,92 +57,24 @@ public void finalize() /** Part of JCC Python interface to object */ public native void pythonDecRef(); - /** - * Get the frame of the central body. - * - * @return frame of the central body. - * @since 6.0 - */ + /** {@inheritDoc} */ @Override public native Frame getFrame(); - /** - * Get the local density. - * Extension point for Python. - * - * @param date current date - * @param position current position in frame - * @param frame the frame in which is defined the position - * @return local density (kg/m³) - */ + /** {@inheritDoc} */ @Override public native double getDensity(AbsoluteDate date, Vector3D position, Frame frame); - /** - * Get the local density. - * Redirects to getDensity_FFF - * - * @param date current date - * @param position current position in frame - * @param frame the frame in which is defined the position - * @return local density (kg/m³) - */ + /** {@inheritDoc} */ @Override - public > T getDensity(FieldAbsoluteDate date, FieldVector3D position, Frame frame) { - return this.getDensity_FFF(date, position, frame); - } - + public native > T getDensity(FieldAbsoluteDate date, FieldVector3D position, Frame frame); - /** - * Get the local density. - * Extension point for Python. - * - * @param date current date - * @param position current position in frame - * @param frame the frame in which is defined the position - * @return local density (kg/m³) - */ - public native > T getDensity_FFF(FieldAbsoluteDate date, FieldVector3D position, Frame frame); - - - /** - * Get the inertial velocity of atmosphere molecules. - * Extension point for Python. - * - *

By default, atmosphere is supposed to have a null - * velocity in the central body frame.

- * - * @param date current date - * @param position current position in frame - * @param frame the frame in which is defined the position - * @return velocity (m/s) (defined in the same frame as the position) - */ + /** {@inheritDoc} */ @Override public native Vector3D getVelocity(AbsoluteDate date, Vector3D position, Frame frame); - /** - * Get the inertial velocity of atmosphere molecules. - * Redirects to getVelocity_FFF(...) - * - * @param date current date - * @param position current position in frame - * @param frame the frame in which is defined the position - * @return velocity (m/s) (defined in the same frame as the position) - */ + /** {@inheritDoc} */ @Override - public > FieldVector3D getVelocity(FieldAbsoluteDate date, FieldVector3D position, Frame frame) { - return this.getVelocity_FFF(date, position, frame); - } - - /** - * Get the inertial velocity of atmosphere molecules. - * Extension point for Python. - * - * @param date current date - * @param position current position in frame - * @param frame the frame in which is defined the position - * @return velocity (m/s) (defined in the same frame as the position) - */ - public native > FieldVector3D getVelocity_FFF(FieldAbsoluteDate date, FieldVector3D position, Frame frame); + public native > FieldVector3D getVelocity(FieldAbsoluteDate date, FieldVector3D position, Frame frame); } diff --git a/src/main/java/org/orekit/models/earth/ionosphere/PythonIonosphericModel.java b/src/main/java/org/orekit/models/earth/ionosphere/PythonIonosphericModel.java index 545c48c45b..a8407888d7 100644 --- a/src/main/java/org/orekit/models/earth/ionosphere/PythonIonosphericModel.java +++ b/src/main/java/org/orekit/models/earth/ionosphere/PythonIonosphericModel.java @@ -55,83 +55,24 @@ public void finalize() /** Part of JCC Python interface to object */ public native void pythonDecRef(); - /** - * Calculates the ionospheric path delay for the signal path from a ground - * station to a satellite. - *

- * This method is intended to be used for orbit determination issues. - * In that respect, if the elevation is below 0° the path delay will be equal to zero. - *

- * For individual use of the ionospheric model (i.e. not for orbit determination), another - * method signature can be implemented to compute the path delay for any elevation angle. - *

- * - * @param state spacecraft state - * @param baseFrame base frame associated with the station - * @param frequency frequency of the signal in Hz - * @param parameters ionospheric model parameters - * @return the path delay due to the ionosphere in m - */ + /** {@inheritDoc} */ @Override - public double pathDelay(SpacecraftState state, TopocentricFrame baseFrame, double frequency, double[] parameters) { - return this.pathDelay_STdd(state, baseFrame, frequency, parameters); - } - - public native double pathDelay_STdd(SpacecraftState state, TopocentricFrame baseFrame, double frequency, double[] parameters); - - + public native double pathDelay(SpacecraftState state, TopocentricFrame baseFrame, double frequency, double[] parameters); - - /** - * Calculates the ionospheric path delay for the signal path from a ground - * station to a satellite. - *

- * This method is intended to be used for orbit determination issues. - * In that respect, if the elevation is below 0° the path delay will be equal to zero. - *

- * For individual use of the ionospheric model (i.e. not for orbit determination), another - * method signature can be implemented to compute the path delay for any elevation angle. - *

- * - * @param state spacecraft state - * @param baseFrame base frame associated with the station - * @param frequency frequency of the signal in Hz - * @param parameters ionospheric model parameters - * @return the path delay due to the ionosphere in m - */ + /** {@inheritDoc} */ @Override - public > T pathDelay(FieldSpacecraftState state, TopocentricFrame baseFrame, double frequency, T[] parameters) { - return this.pathDelay_FTdT(state, baseFrame, frequency, parameters); - } + public native > T pathDelay(FieldSpacecraftState state, TopocentricFrame baseFrame, double frequency, T[] parameters); - public native > T pathDelay_FTdT(FieldSpacecraftState state, TopocentricFrame baseFrame, double frequency, T[] parameters); - - /** - * Get the drivers for ionospheric model parameters. - * - * @return drivers for ionospheric model parameters - */ + /** {@inheritDoc} */ @Override public native List getParametersDrivers(); - /** - * Get ionospheric model parameters. - * - * @return ionospheric model parameters - */ + /** {@inheritDoc} */ @Override public native double[] getParameters(); - /** - * Get ionospheric model parameters. - * - * @param field field to which the elements belong - * @return ionospheric model parameters - */ + /** {@inheritDoc} */ @Override - public > T[] getParameters(Field field) { - return this.getParameters_F(field); - } + public native > T[] getParameters(Field field); - public native > T[] getParameters_F(Field field); } diff --git a/src/main/java/org/orekit/models/earth/troposphere/PythonDiscreteTroposphericModel.java b/src/main/java/org/orekit/models/earth/troposphere/PythonDiscreteTroposphericModel.java index bbc057cd9b..c33f3f11a0 100644 --- a/src/main/java/org/orekit/models/earth/troposphere/PythonDiscreteTroposphericModel.java +++ b/src/main/java/org/orekit/models/earth/troposphere/PythonDiscreteTroposphericModel.java @@ -58,89 +58,24 @@ public void finalize() /** Part of JCC Python interface to object */ public native void pythonDecRef(); - /** - * Calculates the tropospheric path delay for the signal path from a ground - * station to a satellite. - * Extension point for Python. - * - * @param elevation the elevation of the satellite, in radians - * @param height the height of the station in m above sea level - * @param parameters tropospheric model parameters. - * @param date current date - * @return the path delay due to the troposphere in m - */ + /** {@inheritDoc} */ @Override public native double pathDelay(double elevation, GeodeticPoint point, double[] parameters, AbsoluteDate date); - /** - * Calculates the tropospheric path delay for the signal path from a ground - * station to a satellite. - * Redirects to pathDelay_TTTF(...) for Python extension - * - * @param elevation the elevation of the satellite, in radians - * @param height the height of the station in m above sea level - * @param parameters tropospheric model parameters. - * @param date current date - * @return the path delay due to the troposphere in m - */ + /** {@inheritDoc} */ @Override - public > T pathDelay(T elevation, FieldGeodeticPoint point, T[] parameters, FieldAbsoluteDate date) { - return this.pathDelay_TTTF(elevation, point, parameters, date); - } - - /** - * Calculates the tropospheric path delay for the signal path from a ground - * station to a satellite. - * Extension point for Python. Called by pathDelay for this parameter set. - * - * @param elevation the elevation of the satellite, in radians - * @param height the height of the station in m above sea level - * @param parameters tropospheric model parameters. - * @param date current date - * @return the path delay due to the troposphere in m - */ - public native > T pathDelay_TTTF(T elevation, FieldGeodeticPoint point, T[] parameters, FieldAbsoluteDate date); - - + public native > T pathDelay(T elevation, FieldGeodeticPoint point, T[] parameters, FieldAbsoluteDate date); - - /** - * Get the drivers for tropospheric model parameters. - * Extension point for Python. - * - * @return drivers for tropospheric model parameters - */ + /** {@inheritDoc} */ @Override public native List getParametersDrivers(); - /** - * Get tropospheric model parameters. - * Extension point for Python. - * - * @return tropospheric model parameters - */ + /** {@inheritDoc} */ @Override public native double[] getParameters(); - /** - * Get tropospheric model parameters. - * Extension point for Python. - * - * @param field field to which the elements belong - * @return tropospheric model parameters - */ + /** {@inheritDoc} */ @Override - public > T[] getParameters(Field field) { - return this.getParameters_F(field); - } - - /** - * Get tropospheric model parameters. - * Extension point for Python. - * - * @param field field to which the elements belong - * @return tropospheric model parameters - */ - public native > T[] getParameters_F(Field field); + public native > T[] getParameters(Field field); } diff --git a/src/main/java/org/orekit/propagation/PythonFieldBoundedPropagator.java b/src/main/java/org/orekit/propagation/PythonFieldBoundedPropagator.java index 8d0d1674c0..e1ee36b083 100644 --- a/src/main/java/org/orekit/propagation/PythonFieldBoundedPropagator.java +++ b/src/main/java/org/orekit/propagation/PythonFieldBoundedPropagator.java @@ -59,250 +59,80 @@ public void finalize() /** Part of JCC Python interface to object */ public native void pythonDecRef(); - /** - * Get the first date of the range. - * - * @return the first date of the range - */ + /** {@inheritDoc} */ @Override public native FieldAbsoluteDate getMinDate(); - /** - * Get the last date of the range. - * - * @return the last date of the range - */ + /** {@inheritDoc} */ @Override public native FieldAbsoluteDate getMaxDate(); - /** - * Get the multiplexer holding all step handlers. - * - * @return multiplexer holding all step handlers - * @since 11.0 - */ + /** {@inheritDoc} */ @Override public native FieldStepHandlerMultiplexer getMultiplexer(); - /** - * Set up an ephemeris generator that will monitor the propagation for building - * an ephemeris from it once completed. - * - *

- * This generator can be used when the user needs fast random access to the orbit - * state at any time between the initial and target times. A typical example is the - * implementation of search and iterative algorithms that may navigate forward and - * backward inside the propagation range before finding their result even if the - * propagator used is integration-based and only goes from one initial time to one - * target time. - *

- *

- * Beware that when used with integration-based propagators, the generator will - * store all intermediate results. It is therefore memory intensive - * for long integration-based ranges and high precision/short time steps. When - * used with analytical propagators, the generator only stores start/stop time - * and a reference to the analytical propagator itself to call it back as needed, - * so it is less memory intensive. - *

- *

- * The returned ephemeris generator will be initially empty, it will be filled - * with propagation data when a subsequent call to either {@link #propagate(FieldAbsoluteDate) - * propagate(target)} or {@link #propagate(FieldAbsoluteDate, FieldAbsoluteDate) - * propagate(start, target)} is called. The proper way to use this method is - * therefore to do: - *

- *
-     *   FieldEphemerisGenerator<T> generator = propagator.getEphemerisGenerator();
-     *   propagator.propagate(target);
-     *   FieldBoundedPropagator<T> ephemeris = generator.getGeneratedEphemeris();
-     * 
- * - * @return ephemeris generator - */ + /** {@inheritDoc} */ @Override public native FieldEphemerisGenerator getEphemerisGenerator(); - /** - * Get the propagator initial state. - * - * @return initial state - */ + /** {@inheritDoc} */ @Override public native FieldSpacecraftState getInitialState(); - /** - * Reset the propagator initial state. - * - * @param state new initial state to consider - */ + /** {@inheritDoc} */ @Override public native void resetInitialState(FieldSpacecraftState state); - /** - * Add a set of user-specified state parameters to be computed along with the orbit propagation. - * - * @param additionalStateProvider provider for additional state - */ + /** {@inheritDoc} */ @Override public native void addAdditionalStateProvider(FieldAdditionalStateProvider additionalStateProvider); - /** - * Get an unmodifiable list of providers for additional state. - * - * @return providers for the additional states - */ + /** {@inheritDoc} */ @Override public native List> getAdditionalStateProviders(); - /** - * Check if an additional state is managed. - *

- * Managed states are states for which the propagators know how to compute - * its evolution. They correspond to additional states for which an - * {@link FieldAdditionalStateProvider additional state provider} has been registered - * by calling the {@link #addAdditionalStateProvider(FieldAdditionalStateProvider) - * addAdditionalStateProvider} method. If the propagator is an {@link - * FieldAbstractIntegratedPropagator integrator-based - * propagator}, the states for which a set of {@link - * FieldAdditionalEquations additional equations} has - * been registered by calling the {@link - * FieldAbstractIntegratedPropagator#addAdditionalEquations( - *FieldAdditionalEquations) addAdditionalEquations} - * method are also counted as managed additional states. - *

- *

- * Additional states that are present in the {@link #getInitialState() initial state} - * but have no evolution method registered are not considered as managed states. - * These unmanaged additional states are not lost during propagation, though. Their - * value will simply be copied unchanged throughout propagation. - *

- * - * @param name name of the additional state - * @return true if the additional state is managed - */ + /** {@inheritDoc} */ @Override public native boolean isAdditionalStateManaged(String name); - /** - * Get all the names of all managed states. - * - * @return names of all managed states - */ + /** {@inheritDoc} */ @Override public native String[] getManagedAdditionalStates(); - /** - * Add an event detector. - * - * @param detector event detector to add - * @see #clearEventsDetectors() - * @see #getEventsDetectors() - */ + /** {@inheritDoc} */ @Override public native > void addEventDetector(D detector); - /** - * Get all the events detectors that have been added. - * - * @return an unmodifiable collection of the added detectors - * @see #addEventDetector(FieldEventDetector) - * @see #clearEventsDetectors() - */ + /** {@inheritDoc} */ @Override public native Collection> getEventsDetectors(); - /** - * Remove all events detectors. - * - * @see #addEventDetector(FieldEventDetector) - * @see #getEventsDetectors() - */ + /** {@inheritDoc} */ @Override public native void clearEventsDetectors(); - /** - * Get attitude provider. - * - * @return attitude provider - */ + /** {@inheritDoc} */ @Override public native AttitudeProvider getAttitudeProvider(); - /** - * Set attitude provider. - * - * @param attitudeProvider attitude provider - */ + /** {@inheritDoc} */ @Override public native void setAttitudeProvider(AttitudeProvider attitudeProvider); - /** - * Get the frame in which the orbit is propagated. - *

- * The propagation frame is the definition frame of the initial - * state, so this method should be called after this state has - * been set, otherwise it may return null. - *

- * - * @return frame in which the orbit is propagated - * @see #resetInitialState(FieldSpacecraftState) - */ + /** {@inheritDoc} */ @Override public native Frame getFrame(); - /** - * Propagate towards a target date. - *

Simple propagators use only the target date as the specification for - * computing the propagated state. More feature rich propagators can consider - * other information and provide different operating modes or G-stop - * facilities to stop at pinpointed events occurrences. In these cases, the - * target date is only a hint, not a mandatory objective.

- * - * @param target target date towards which orbit state should be propagated - * @return propagated state - */ + /** {@inheritDoc} */ @Override public native FieldSpacecraftState propagate(FieldAbsoluteDate target); - /** - * Propagate from a start date towards a target date. - *

Those propagators use a start date and a target date to - * compute the propagated state. For propagators using event detection mechanism, - * if the provided start date is different from the initial state date, a first, - * simple propagation is performed, without processing any event computation. - * Then complete propagation is performed from start date to target date.

- * - * @param start start date from which orbit state should be propagated - * @param target target date to which orbit state should be propagated - * @return propagated state - */ + /** {@inheritDoc} */ @Override - public FieldSpacecraftState propagate(FieldAbsoluteDate start, FieldAbsoluteDate target) { - return this.propagate_FF(start, target); - } - - /** - * Propagate from a start date towards a target date. - *

Those propagators use a start date and a target date to - * compute the propagated state. For propagators using event detection mechanism, - * if the provided start date is different from the initial state date, a first, - * simple propagation is performed, without processing any event computation. - * Then complete propagation is performed from start date to target date.

- * - * @param start start date from which orbit state should be propagated - * @param target target date to which orbit state should be propagated - * @return propagated state - */ - public native FieldSpacecraftState propagate_FF(FieldAbsoluteDate start, FieldAbsoluteDate target); + public native FieldSpacecraftState propagate(FieldAbsoluteDate start, FieldAbsoluteDate target); - /** - * Get the {@link FieldPVCoordinates} of the body in the selected frame. - * - * @param date current date - * @param frame the frame where to define the position - * @return time-stamped position/velocity of the body (m and m/s) - */ + /** {@inheritDoc} */ @Override public native TimeStampedFieldPVCoordinates getPVCoordinates(FieldAbsoluteDate date, Frame frame); } diff --git a/src/main/java/org/orekit/propagation/PythonFieldPropagator.java b/src/main/java/org/orekit/propagation/PythonFieldPropagator.java index 1f4a6d2194..fc39820ab8 100644 --- a/src/main/java/org/orekit/propagation/PythonFieldPropagator.java +++ b/src/main/java/org/orekit/propagation/PythonFieldPropagator.java @@ -64,254 +64,71 @@ public void finalize() public native void pythonDecRef(); - - /** - * Set the propagator to master mode with fixed steps. - *

This mode is used when the user needs to have some custom function called at the - * end of each finalized step during integration. The (master) propagator integration - * loop calls the (slave) application callback methods at each finalized step.

- * - * @param h fixed stepsize (s) - * @param handler handler called at the end of each finalized step - * @see #setSlaveMode() - * @see #setMasterMode(FieldOrekitStepHandler) - * @see #setEphemerisMode() - * @see #getMode() - * @see #MASTER_MODE - */ - public native void setMasterMode_TF(T h, FieldOrekitFixedStepHandler handler); - - - - - /** - * Get the multiplexer holding all step handlers. - * - * @return multiplexer holding all step handlers - * @since 11.0 - */ + /** {@inheritDoc} */ @Override public native FieldStepHandlerMultiplexer getMultiplexer(); - /** - * Set up an ephemeris generator that will monitor the propagation for building - * an ephemeris from it once completed. - * - *

- * This generator can be used when the user needs fast random access to the orbit - * state at any time between the initial and target times. A typical example is the - * implementation of search and iterative algorithms that may navigate forward and - * backward inside the propagation range before finding their result even if the - * propagator used is integration-based and only goes from one initial time to one - * target time. - *

- *

- * Beware that when used with integration-based propagators, the generator will - * store all intermediate results. It is therefore memory intensive - * for long integration-based ranges and high precision/short time steps. When - * used with analytical propagators, the generator only stores start/stop time - * and a reference to the analytical propagator itself to call it back as needed, - * so it is less memory intensive. - *

- *

- * The returned ephemeris generator will be initially empty, it will be filled - * with propagation data when a subsequent call to either {@link #propagate(FieldAbsoluteDate) - * propagate(target)} or {@link #propagate(FieldAbsoluteDate, FieldAbsoluteDate) - * propagate(start, target)} is called. The proper way to use this method is - * therefore to do: - *

- *
-     *   FieldEphemerisGenerator<T> generator = propagator.getEphemerisGenerator();
-     *   propagator.propagate(target);
-     *   FieldBoundedPropagator<T> ephemeris = generator.getGeneratedEphemeris();
-     * 
- * - * @return ephemeris generator - */ + /** {@inheritDoc} */ @Override public native FieldEphemerisGenerator getEphemerisGenerator(); - /** - * Get the propagator initial state. - * - * @return initial state - */ + /** {@inheritDoc} */ @Override public native FieldSpacecraftState getInitialState(); - /** - * Reset the propagator initial state. - * - * @param state new initial state to consider - */ + /** {@inheritDoc} */ @Override public native void resetInitialState(FieldSpacecraftState state); - /** - * Add a set of user-specified state parameters to be computed along with the orbit propagation. - * - * @param additionalStateProvider provider for additional state - */ + /** {@inheritDoc} */ @Override public native void addAdditionalStateProvider(FieldAdditionalStateProvider additionalStateProvider); - /** - * Get an unmodifiable list of providers for additional state. - * - * @return providers for the additional states - */ + /** {@inheritDoc} */ @Override public native List> getAdditionalStateProviders(); - /** - * Check if an additional state is managed. - *

- * Managed states are states for which the propagators know how to compute - * its evolution. They correspond to additional states for which an - * {@link FieldAdditionalStateProvider additional state provider} has been registered - * by calling the {@link #addAdditionalStateProvider(FieldAdditionalStateProvider) - * addAdditionalStateProvider} method. If the propagator is an {@link - * FieldAbstractIntegratedPropagator integrator-based - * propagator}, the states for which a set of {@link - * FieldAdditionalEquations additional equations} has - * been registered by calling the {@link - * FieldAbstractIntegratedPropagator#addAdditionalEquations( - *FieldAdditionalEquations) addAdditionalEquations} - * method are also counted as managed additional states. - *

- *

- * Additional states that are present in the {@link #getInitialState() initial state} - * but have no evolution method registered are not considered as managed states. - * These unmanaged additional states are not lost during propagation, though. Their - * value will simply be copied unchanged throughout propagation. - *

- * - * @param name name of the additional state - * @return true if the additional state is managed - */ + /** {@inheritDoc} */ @Override public native boolean isAdditionalStateManaged(String name); - /** - * Get all the names of all managed states. - * - * @return names of all managed states - */ + /** {@inheritDoc} */ @Override public native String[] getManagedAdditionalStates(); - /** - * Add an event detector. - * - * @param detector event detector to add - * @see #clearEventsDetectors() - * @see #getEventsDetectors() - */ + /** {@inheritDoc} */ @Override public native > void addEventDetector(D detector); - /** - * Get all the events detectors that have been added. - * - * @return an unmodifiable collection of the added detectors - * @see #addEventDetector(FieldEventDetector) - * @see #clearEventsDetectors() - */ + /** {@inheritDoc} */ @Override public native Collection> getEventsDetectors(); - /** - * Remove all events detectors. - * - * @see #addEventDetector(FieldEventDetector) - * @see #getEventsDetectors() - */ + /** {@inheritDoc} */ @Override public native void clearEventsDetectors(); - /** - * Get attitude provider. - * - * @return attitude provider - */ + /** {@inheritDoc} */ @Override public native AttitudeProvider getAttitudeProvider(); - /** - * Set attitude provider. - * - * @param attitudeProvider attitude provider - */ + /** {@inheritDoc} */ @Override public native void setAttitudeProvider(AttitudeProvider attitudeProvider); - /** - * Get the frame in which the orbit is propagated. - *

- * The propagation frame is the definition frame of the initial - * state, so this method should be called after this state has - * been set, otherwise it may return null. - *

- * - * @return frame in which the orbit is propagated - * @see #resetInitialState(FieldSpacecraftState) - */ + /** {@inheritDoc} */ @Override public native Frame getFrame(); - /** - * Propagate towards a target date. - *

Simple propagators use only the target date as the specification for - * computing the propagated state. More feature rich propagators can consider - * other information and provide different operating modes or G-stop - * facilities to stop at pinpointed events occurrences. In these cases, the - * target date is only a hint, not a mandatory objective.

- * - * @param target target date towards which orbit state should be propagated - * @return propagated state - */ + /** {@inheritDoc} */ @Override public native FieldSpacecraftState propagate(FieldAbsoluteDate target); - /** - * Propagate from a start date towards a target date. - *

Those propagators use a start date and a target date to - * compute the propagated state. For propagators using event detection mechanism, - * if the provided start date is different from the initial state date, a first, - * simple propagation is performed, without processing any event computation. - * Then complete propagation is performed from start date to target date.

- * - * @param start start date from which orbit state should be propagated - * @param target target date to which orbit state should be propagated - * @return propagated state - */ + /** {@inheritDoc} */ @Override - public FieldSpacecraftState propagate(FieldAbsoluteDate start, FieldAbsoluteDate target) { - return this.propagate_FF(start, target); - } - - /** - * Propagate from a start date towards a target date. - *

Those propagators use a start date and a target date to - * compute the propagated state. For propagators using event detection mechanism, - * if the provided start date is different from the initial state date, a first, - * simple propagation is performed, without processing any event computation. - * Then complete propagation is performed from start date to target date.

- * - * @param start start date from which orbit state should be propagated - * @param target target date to which orbit state should be propagated - * @return propagated state - */ - public native FieldSpacecraftState propagate_FF(FieldAbsoluteDate start, FieldAbsoluteDate target); - + public native FieldSpacecraftState propagate(FieldAbsoluteDate start, FieldAbsoluteDate target); - /** - * Get the {@link FieldPVCoordinates} of the body in the selected frame. - * - * @param date current date - * @param frame the frame where to define the position - * @return time-stamped position/velocity of the body (m and m/s) - */ + /** {@inheritDoc} */ @Override public native TimeStampedFieldPVCoordinates getPVCoordinates(FieldAbsoluteDate date, Frame frame); } diff --git a/src/main/java/org/orekit/propagation/analytical/tle/generation/PythonTleGenerationAlgorithm.java b/src/main/java/org/orekit/propagation/analytical/tle/generation/PythonTleGenerationAlgorithm.java index 331033301e..5c03b9c91d 100644 --- a/src/main/java/org/orekit/propagation/analytical/tle/generation/PythonTleGenerationAlgorithm.java +++ b/src/main/java/org/orekit/propagation/analytical/tle/generation/PythonTleGenerationAlgorithm.java @@ -20,14 +20,11 @@ public long pythonExtension() { public void finalize() throws Throwable { pythonDecRef(); } public native void pythonDecRef(); - + /** {@inheritDoc} */ @Override public native TLE generate(SpacecraftState state, TLE templateTLE); + /** {@inheritDoc} */ @Override - public > FieldTLE generate(FieldSpacecraftState state, FieldTLE templateTLE) { - return this.generate_FF(state, templateTLE); - } - - public native > FieldTLE generate_FF(FieldSpacecraftState state, FieldTLE templateTLE); + public native > FieldTLE generate(FieldSpacecraftState state, FieldTLE templateTLE); } diff --git a/src/main/java/org/orekit/propagation/integration/PythonAbstractGradientConverter.java b/src/main/java/org/orekit/propagation/integration/PythonAbstractGradientConverter.java index b2338cc310..a41a2a73bc 100644 --- a/src/main/java/org/orekit/propagation/integration/PythonAbstractGradientConverter.java +++ b/src/main/java/org/orekit/propagation/integration/PythonAbstractGradientConverter.java @@ -15,46 +15,16 @@ public PythonAbstractGradientConverter(int freeStateParameters) { } - /** Get the number of free state parameters. - * @return number of free state parameters - */ + /** {@inheritDoc} */ public native int getFreeStateParameters(); - /** Add zero derivatives. - * @param original original scalar - * @param freeParameters total number of free parameters in the gradient - * @return extended scalar - */ + /** {@inheritDoc} */ public native Gradient extend(final Gradient original, final int freeParameters); - /** Add zero derivatives. - * @param original original vector - * @param freeParameters total number of free parameters in the gradient - * @return extended vector - */ - public FieldVector3D extend(final FieldVector3D original, final int freeParameters) { - return this.extend_FVi(original, freeParameters); - } - - public native FieldVector3D extend_FVi(final FieldVector3D original, final int freeParameters); - - - /** Add zero derivatives. - * @param original original rotation - * @param freeParameters total number of free parameters in the gradient - * @return extended rotation - */ - public FieldRotation extend(final FieldRotation original, final int freeParameters) { - return this.extend_FRi(original, freeParameters); - } - - /** Add zero derivatives. - * @param original original rotation - * @param freeParameters total number of free parameters in the gradient - * @return extended rotation - */ - public native FieldRotation extend_FRi(final FieldRotation original, final int freeParameters); - + /** {@inheritDoc} */ + public native FieldVector3D extend(final FieldVector3D original, final int freeParameters); + /** {@inheritDoc} */ + public native FieldRotation extend(final FieldRotation original, final int freeParameters); } diff --git a/src/main/java/org/orekit/propagation/semianalytical/dsst/forces/PythonAbstractGaussianContribution.java b/src/main/java/org/orekit/propagation/semianalytical/dsst/forces/PythonAbstractGaussianContribution.java index d72493e324..a95a6ba39c 100644 --- a/src/main/java/org/orekit/propagation/semianalytical/dsst/forces/PythonAbstractGaussianContribution.java +++ b/src/main/java/org/orekit/propagation/semianalytical/dsst/forces/PythonAbstractGaussianContribution.java @@ -64,10 +64,6 @@ public PythonAbstractGaussianContribution(String coefficientsKeyPrefix, double t /** {@inheritDoc} */ @Override - public > T[] getLLimits(FieldSpacecraftState state, FieldAuxiliaryElements auxiliaryElements) { - return this.getLLimits_FF(state, auxiliaryElements); - } - - public native > T[] getLLimits_FF(FieldSpacecraftState state, FieldAuxiliaryElements auxiliaryElements); + public native > T[] getLLimits(FieldSpacecraftState state, FieldAuxiliaryElements auxiliaryElements); } diff --git a/src/main/java/org/orekit/propagation/semianalytical/dsst/forces/PythonDSSTForceModel.java b/src/main/java/org/orekit/propagation/semianalytical/dsst/forces/PythonDSSTForceModel.java index 95c1daa382..dc8a6066cb 100644 --- a/src/main/java/org/orekit/propagation/semianalytical/dsst/forces/PythonDSSTForceModel.java +++ b/src/main/java/org/orekit/propagation/semianalytical/dsst/forces/PythonDSSTForceModel.java @@ -59,116 +59,35 @@ public void finalize() /** Part of JCC Python interface to object */ public native void pythonDecRef(); - /** - * Performs initialization prior to propagation for the current force model. - *

- * This method aims at being called at the very beginning of a propagation. - *

- * - * @param auxiliaryElements auxiliary elements related to the current orbit - * @param type type of the elements used during the propagation - * @param parameters values of the force model parameters - * @return a list of objects that will hold short period terms (the objects - * are also retained by the force model, which will update them during propagation) - */ + /** {@inheritDoc} */ @Override public native List initializeShortPeriodTerms(AuxiliaryElements auxiliaryElements, PropagationType type, double[] parameters); - /** - * Performs initialization prior to propagation for the current force model. - *

- * This method aims at being called at the very beginning of a propagation. - *

- * - * @param auxiliaryElements auxiliary elements related to the current orbit - * @param type type of the elements used during the propagation - * @param parameters values of the force model parameters - * @return a list of objects that will hold short period terms (the objects - * are also retained by the force model, which will update them during propagation) - */ - - public native > List> initializeShortPeriodTerms_FPT(FieldAuxiliaryElements auxiliaryElements, PropagationType type, T[] parameters); - + /** {@inheritDoc} */ @Override - public > List> initializeShortPeriodTerms(FieldAuxiliaryElements auxiliaryElements, PropagationType type, T[] parameters) { - return this.initializeShortPeriodTerms_FPT(auxiliaryElements, type, parameters); - } + public native > List> initializeShortPeriodTerms(FieldAuxiliaryElements auxiliaryElements, PropagationType type, T[] parameters); - /** - * Computes the mean equinoctial elements rates dai / dt. - * - * @param state current state information: date, kinematics, attitude - * @param auxiliaryElements auxiliary elements related to the current orbit - * @param parameters values of the force model parameters - * @return the mean element rates dai/dt - */ + /** {@inheritDoc} */ @Override public native double[] getMeanElementRate(SpacecraftState state, AuxiliaryElements auxiliaryElements, double[] parameters); - /** - * Computes the mean equinoctial elements rates dai / dt. - * - * @param state current state information: date, kinematics, attitude - * @param auxiliaryElements auxiliary elements related to the current orbit - * @param parameters values of the force model parameters - * @return the mean element rates dai/dt - */ - public native > T[] getMeanElementRate_FFT(FieldSpacecraftState state, FieldAuxiliaryElements auxiliaryElements, T[] parameters); - + /** {@inheritDoc} */ @Override - public > T[] getMeanElementRate(FieldSpacecraftState state, FieldAuxiliaryElements auxiliaryElements, T[] parameters) { - return this.getMeanElementRate_FFT(state, auxiliaryElements, parameters); - } + public native > T[] getMeanElementRate(FieldSpacecraftState state, FieldAuxiliaryElements auxiliaryElements, T[] parameters); - - /** - * Register an attitude provider. - *

- * Register an attitude provider that can be used by the force model. - *

- * - * @param provider the {@link AttitudeProvider} - */ + /** {@inheritDoc} */ @Override public native void registerAttitudeProvider(AttitudeProvider provider); - /** - * Update the short period terms. - *

- * The {@link ShortPeriodTerms short period terms} that will be updated - * are the ones that were returned during the call to {@link - * #initializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])}. - *

- * - * @param parameters values of the force model parameters - * @param meanStates mean states information: date, kinematics, attitude - */ + /** {@inheritDoc} */ @Override public native void updateShortPeriodTerms(double[] parameters, SpacecraftState... meanStates); - /** - * Update the short period terms. - *

- * The {@link ShortPeriodTerms short period terms} that will be updated - * are the ones that were returned during the call to {@link - * #initializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])}. - *

- * - * @param parameters values of the force model parameters - * @param meanStates mean states information: date, kinematics, attitude - */ - public native > void updateShortPeriodTerms_TF(T[] parameters, FieldSpacecraftState... meanStates); - + /** {@inheritDoc} */ @Override - public > void updateShortPeriodTerms(T[] parameters, FieldSpacecraftState... meanStates) { - this.updateShortPeriodTerms_TF(parameters, meanStates); - } + public native > void updateShortPeriodTerms(T[] parameters, FieldSpacecraftState... meanStates); - /** - * Get the drivers for force model parameters. - * - * @return drivers for force model parameters - */ + /** {@inheritDoc} */ @Override public native List getParametersDrivers(); } diff --git a/src/main/java/org/orekit/time/PythonTimeScalarFunction.java b/src/main/java/org/orekit/time/PythonTimeScalarFunction.java index 95639c693d..c491ab0a56 100644 --- a/src/main/java/org/orekit/time/PythonTimeScalarFunction.java +++ b/src/main/java/org/orekit/time/PythonTimeScalarFunction.java @@ -47,32 +47,12 @@ public void finalize() /** Part of JCC Python interface to object */ public native void pythonDecRef(); - /** - * Compute a function of time. - * - * @param date date - * @return value of the function - */ + /** {@inheritDoc} */ @Override public native double value(AbsoluteDate date); - /** - * Compute a function of time. - * - * @param date date - * @return value of the function - */ + /** {@inheritDoc} */ @Override - public > T value(FieldAbsoluteDate date) { - return this.value_F(date); - } - + public native > T value(FieldAbsoluteDate date); - /** - * Compute a function of time. - * - * @param date date - * @return value of the function - */ - public native > T value_F(FieldAbsoluteDate date); } diff --git a/src/main/java/org/orekit/time/PythonTimeScale.java b/src/main/java/org/orekit/time/PythonTimeScale.java index 7f8864509b..2326b4965e 100644 --- a/src/main/java/org/orekit/time/PythonTimeScale.java +++ b/src/main/java/org/orekit/time/PythonTimeScale.java @@ -53,48 +53,15 @@ public void finalize() /** Part of JCC Python interface to object */ public native void pythonDecRef(); - /** - * Get the offset to convert locations from {@link TAIScale} to instance. - * - * @param date conversion date - * @return offset in seconds to add to a location in {@link TAIScale} - * time scale to get a location in instance time scale - * @see #offsetToTAI(DateComponents, TimeComponents) - */ + /** {@inheritDoc} */ @Override public native double offsetFromTAI(AbsoluteDate date); - /** - * Get the offset to convert locations from {@link TAIScale} to instance. - * - * @param date conversion date - * @return offset in seconds to add to a location in {@link TAIScale} - * time scale to get a location in instance time scale - * @see #offsetToTAI(DateComponents, TimeComponents) - * @since 9.0 - */ + /** {@inheritDoc} */ @Override - public > T offsetFromTAI(FieldAbsoluteDate date) { - return this.offsetFromTAI_F(date); - } - - /** - * Get the offset to convert locations from {@link TAIScale} to instance. - * - * @param date conversion date - * @return offset in seconds to add to a location in {@link TAIScale} - * time scale to get a location in instance time scale - * @see #offsetToTAI(DateComponents, TimeComponents) - * @since 9.0 - */ - public native > T offsetFromTAI_F(FieldAbsoluteDate date); - + public native > T offsetFromTAI(FieldAbsoluteDate date); - /** - * Get the name time scale. - * - * @return name of the time scale - */ + /** {@inheritDoc} */ @Override public native String getName(); } diff --git a/src/main/java/org/orekit/time/PythonTimeVectorFunction.java b/src/main/java/org/orekit/time/PythonTimeVectorFunction.java index fcb0bf40b3..f26b4e7dec 100644 --- a/src/main/java/org/orekit/time/PythonTimeVectorFunction.java +++ b/src/main/java/org/orekit/time/PythonTimeVectorFunction.java @@ -51,31 +51,12 @@ public void finalize() /** Part of JCC Python interface to object */ public native void pythonDecRef(); - /** - * Compute a function of time. - * - * @param date date - * @return value of the function - */ + /** {@inheritDoc} */ @Override public native double[] value(AbsoluteDate date); - /** - * Compute a function of time. - * - * @param date date - * @return value of the function - */ + /** {@inheritDoc} */ @Override - public > T[] value(FieldAbsoluteDate date) { - return this.value_F(date); - } + public native > T[] value(FieldAbsoluteDate date); - /** - * Compute a function of time. - * - * @param date date - * @return value of the function - */ - public native > T[] value_F(FieldAbsoluteDate date); -} + } diff --git a/src/main/java/org/orekit/utils/PythonExtendedPVCoordinatesProvider.java b/src/main/java/org/orekit/utils/PythonExtendedPVCoordinatesProvider.java index 7736667e83..043006c600 100644 --- a/src/main/java/org/orekit/utils/PythonExtendedPVCoordinatesProvider.java +++ b/src/main/java/org/orekit/utils/PythonExtendedPVCoordinatesProvider.java @@ -51,34 +51,11 @@ public void finalize() /** Part of JCC Python interface to object */ public native void pythonDecRef(); - /** - * Get the {@link FieldPVCoordinates} of the body in the selected frame. - * - * @param date current date - * @param frame the frame where to define the position - * @return time-stamped position/velocity of the body (m and m/s) - */ + /** {@inheritDoc} */ @Override - public > TimeStampedFieldPVCoordinates getPVCoordinates(FieldAbsoluteDate date, Frame frame) { - return this.getPVCoordinates_FF(date, frame); - } - - /** - * Get the {@link FieldPVCoordinates} of the body in the selected frame. - * - * @param date current date - * @param frame the frame where to define the position - * @return time-stamped position/velocity of the body (m and m/s) - */ - public native > TimeStampedFieldPVCoordinates getPVCoordinates_FF(FieldAbsoluteDate date, Frame frame); + public native > TimeStampedFieldPVCoordinates getPVCoordinates(FieldAbsoluteDate date, Frame frame); - /** - * Get the {@link PVCoordinates} of the body in the selected frame. - * - * @param date current date - * @param frame the frame where to define the position - * @return time-stamped position/velocity of the body (m and m/s) - */ + /** {@inheritDoc} */ @Override public native TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame); }