SpacecraftFrame.java
- /* Copyright 2002-2013 CS Systèmes d'Information
- * Licensed to CS Systèmes d'Information (CS) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * CS licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.orekit.frames;
- import java.io.Externalizable;
- import java.io.IOException;
- import java.io.NotSerializableException;
- import java.io.ObjectInput;
- import java.io.ObjectOutput;
- import org.orekit.errors.OrekitException;
- import org.orekit.propagation.Propagator;
- import org.orekit.time.AbsoluteDate;
- import org.orekit.utils.PVCoordinates;
- import org.orekit.utils.PVCoordinatesProvider;
- /** Spacecraft frame.
- * <p>Frame associated to a satellite body, taking into account orbit and attitude.</p>
- * <p>
- * Use of this frame is not recommended, and it will probably be withdrawn in a future version.
- * In many cases, rather than using this frame and its {@link #getTransformTo(Frame, AbsoluteDate)
- * getTransformTo} method, users should directly get a {@link Transform} using
- * {@link org.orekit.propagation.SpacecraftState#toTransform()}.
- * </p>
- * <p>
- * Note that despite it extends {@link Frame}, this frame is <em>NOT</em> serializable,
- * as it relies on {@link Propagator}.
- * </p>
- * @deprecated as of 6.0 replaced by {@link org.orekit.propagation.SpacecraftState#toTransform()}
- * @author Luc Maisonobe
- */
- @Deprecated
- public class SpacecraftFrame extends Frame implements PVCoordinatesProvider {
- /** Serializable UID. */
- private static final long serialVersionUID = 6012707827832395314L;
- /** Simple constructor.
- * @param propagator orbit/attitude propagator computing spacecraft state evolution
- * @param name name of the frame
- */
- public SpacecraftFrame(final Propagator propagator, final String name) {
- super(propagator.getFrame(), new LocalProvider(propagator), name, false);
- }
- /** Get the underlying propagator.
- * @return underlying propagator
- */
- public Propagator getPropagator() {
- return ((LocalProvider) getTransformProvider()).getPropagator();
- }
- /** Get the {@link PVCoordinates} of the spacecraft frame origin in the selected frame.
- * @param date current date
- * @param frame the frame where to define the position
- * @return position/velocity of the spacecraft frame origin (m and m/s)
- * @exception OrekitException if position cannot be computed in given frame
- */
- public PVCoordinates getPVCoordinates(final AbsoluteDate date, final Frame frame)
- throws OrekitException {
- return getPropagator().getPVCoordinates(date, frame);
- }
- /** Local provider for transforms. */
- private static class LocalProvider implements TransformProvider, Externalizable {
- /** Serializable UID. */
- private static final long serialVersionUID = 386815086579675823L;
- /** Propagator to use. */
- private final transient Propagator propagator;
- /** Simple constructor.
- * @param propagator orbit/attitude propagator computing spacecraft state evolution
- */
- public LocalProvider(final Propagator propagator) {
- this.propagator = propagator;
- }
- /** {@inheritDoc} */
- public Transform getTransform(final AbsoluteDate date) throws OrekitException {
- return propagator.propagate(date).toTransform();
- }
- /** Get the underlying propagator.
- * @return underlying propagator
- */
- public Propagator getPropagator() {
- return propagator;
- }
- /** {@inheritDoc} */
- public void readExternal(final ObjectInput input) throws IOException {
- throw new NotSerializableException();
- }
- /** {@inheritDoc} */
- public void writeExternal(final ObjectOutput output) throws IOException {
- throw new NotSerializableException();
- }
- }
- }