/* ----------------------------------------
 * Origin  : GFI INFORMATIQUE 
 * Project : CDPP Propagation Tool 
 * ----------------------------------------
 * History 
 * Version : 01/05/2015 : SCA : V2.1
 * Version : 24/03/2016 : SCA : V2.2 (PSWS-H2020)
 * Add comets
 * Version : 05/05/2022 : LBE : V2.5
 * DM-ID : Redmine#9229 : 01/05/2022 : PFSS mode
 * Version : 05/08/2024 : LBE : V2.11
 * DM-ID : Redmine#l0763 : 05/08/2024 : PFSS grid lines
 * ----------------------------------------
 */
package fr.tlse.irap.fieldLine;

import fr.tlse.irap.pos.PositionWrapper;
import fr.tlse.irap.spaceElement.SpaceElementWrapper;
import java.util.Date;

import jakarta.jws.WebMethod;
import jakarta.jws.WebService;
import jakarta.jws.soap.SOAPBinding;
import jakarta.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style = Style.RPC)
public interface IFieldLine {

	
	/**
	 * Get end footpoint spheric coordinates of B field line from a start footpoint using a	model (default PFSS)
	 */
	@WebMethod
	Footpoints getEndFieldLineFP(Footpoints startFieldLineFP, Date time, String model, String source);

        /**
         * Get projection from parker spiral then PFSS integrationfrom an element position
         * @param pLstSe List of element fo start positions in (HAE/EclipJ2000) in km
         * @param pTime Time used to select PFSS cube
         * @param pSWSpeed Solar wind speed in km.s-1 
         * @return List of fieldLines in carrington/IAU_SUN
         */
        @WebMethod
        FieldLineWrapper getPSPFSSFieldLine(SpaceElementWrapper pLstSe, Date pTime, double pSWSpeed, double[] pSunAtt);

        
    /**
     * Get Field lines from PFSS integration from positions at 2.5Rs
     *
     * @param pStartPts List of start positions in xyz (carrington/sun iau) in km
     * @param pTime Time used to select PFSS cube
     * @return List of fieldLines in carrington/IAU_SUN
     */
    @WebMethod
    public FieldLineWrapper getPFSSGridFieldLine(PositionWrapper pStartPts, Date[] pTime);
        
}
