1 /* Copyright 2013-2016 CS Systèmes d'Information 2 * Licensed to CS Systèmes d'Information (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 * CS 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.rugged.utils; 18 19 import org.orekit.rugged.errors.RuggedException; 20 21 22 /** Interface for models that have parameters. 23 * <p> 24 * The parameters are typically polynomial coefficients, for example 25 * to model thermo-elastic deformations of the sensor or spacecraft. 26 * </p> 27 * @author Luc Maisonobe 28 */ 29 public interface ParametricModel { 30 31 /** Get the number of estimated parameters. 32 * @return number of estimated parameters 33 */ 34 int getNbEstimatedParameters(); 35 36 /** Get the current values of the estimated parameters. 37 * @param parameters global array where to put the parameters 38 * @param start start index of the array slice to consider 39 * @param length number of elements in the array slice to consider 40 * @exception RuggedException if the size of the slice does not match 41 * the {@link #getNbEstimatedParameters() number of estimated parameters} 42 */ 43 void getEstimatedParameters(double[] parameters, int start, int length) 44 throws RuggedException; 45 46 /** Set new values for the estimated parameters. 47 * @param parameters global array containing the parameters to set (among others) 48 * @param start start index of the array slice to consider 49 * @param length number of elements in the array slice to consider 50 * @exception RuggedException if the size of the slice does not match 51 * the {@link #getNbEstimatedParameters() number of estimated parameters} 52 */ 53 void setEstimatedParameters(double[] parameters, int start, int length) 54 throws RuggedException; 55 56 }