WalkerConstellationSlot.java
- /* Copyright 2002-2024 Luc Maisonobe
- * Licensed to CS GROUP (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.orbits;
- /** Container for one satellite slot in a {@link WalkerConstellation Walker constellation}.
- * <p>
- * The {@link #getSatellite()} satellite index for regular satellites is an integer,
- * but it is allowed to have non-integer indices to create slots for in-orbit spare
- * satellites between the regular satellites. As an example, one can consider a 24/3/1
- * Walker constellation with 8 operational satellites in each of the 3 planes at satellites
- * indices 0, 1, 2, 3, 4, 5, 6 and 7, and put for example 2 additional spares in each plane
- * (hence having a total of 30 satellites), by affecting them to intermediate slots 0.5
- * and 4.5.
- * </p>
- * @param <O> type of the orbit
- * @author Luc Maisonobe
- * @since 12.1
- */
- public class WalkerConstellationSlot<O extends Orbit> {
- /** Constellation. */
- private final WalkerConstellation constellation;
- /** Index of the plane. */
- private final int plane;
- /** Satellite index in plane. */
- private final double satellite;
- /** Orbit. */
- private final O orbit;
- /** Simple constructor.
- * @param constellation constellation
- * @param plane plane index
- * @param satellite satellite index in plane
- * @param orbit orbit
- */
- WalkerConstellationSlot(final WalkerConstellation constellation,
- final int plane, final double satellite, final O orbit) {
- this.constellation = constellation;
- this.plane = plane;
- this.satellite = satellite;
- this.orbit = orbit;
- }
- /** Get the constellation.
- * @return constellation
- */
- public WalkerConstellation getConstellation() {
- return constellation;
- }
- /** Get the plane index.
- * @return plane index
- */
- public int getPlane() {
- return plane;
- }
- /** Get the satellite index in plane.
- * <p>
- * Not that the index may be non-integer, for example to deal with
- * in-orbit spare satellites
- * </p>
- * @return satellite index in plane
- */
- public double getSatellite() {
- return satellite;
- }
- /** Get the orbit.
- * @return orbit
- */
- public O getOrbit() {
- return orbit;
- }
- }