1 /* Copyright 2002-2024 Bryan Cazabonne 2 * Licensed to CS GROUP (CS) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * Bryan Cazabonne licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.orekit.propagation.analytical.tle.generation; 18 19 import org.hipparchus.CalculusFieldElement; 20 import org.orekit.propagation.FieldSpacecraftState; 21 import org.orekit.propagation.SpacecraftState; 22 import org.orekit.propagation.analytical.tle.FieldTLE; 23 import org.orekit.propagation.analytical.tle.TLE; 24 25 /** 26 * This interface provides a way to generate a TLE from a spacecraft state. 27 * @author Bryan Cazabonne 28 * @since 12.0 29 */ 30 public interface TleGenerationAlgorithm { 31 32 /** 33 * Generate a TLE from a given spacecraft state and a template TLE. 34 * <p> 35 * The template TLE is only used to get identifiers like satellite 36 * number, launch year, etc. 37 * In other words, the keplerian elements contained in the generate 38 * TLE a based on the provided state and not the template TLE. 39 * </p> 40 * @param state spacecraft state 41 * @param templateTLE template TLE 42 * @return a TLE corresponding to the given state 43 */ 44 TLE generate(SpacecraftState state, TLE templateTLE); 45 46 /** 47 * Generate a TLE from a given spacecraft state and a template TLE. 48 * <p> 49 * The template TLE is only used to get identifiers like satellite 50 * number, launch year, etc. 51 * In other words, the keplerian elements contained in the generate 52 * TLE a based on the provided state and not the template TLE. 53 * </p> 54 * @param <T> type of the elements 55 * @param state spacecraft state 56 * @param templateTLE template TLE 57 * @return a TLE corresponding to the given state 58 */ 59 <T extends CalculusFieldElement<T>> FieldTLE<T> generate(FieldSpacecraftState<T> state, 60 FieldTLE<T> templateTLE); 61 62 }