/* ----------------------------------------
 * Origin  : GFI INFORMATIQUE 
 * Project : CDPP Propagation Tool 
 * ----------------------------------------
 * History 
 * Version : 01/05/2015 : SCA : V2.1
 * Version : 20/09/2016 : SCA : V2.2 (PSWS-H2020)
 *  Add Z axis in propagation computation 
 *  Move as result of computeRadial() WS
 * Version : 17/10/2018 : SCA : V2.2.5
 *  Redmine #6119 
 * ----------------------------------------
 */
package fr.tlse.irap.tool.radial;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import fr.tlse.irap.spaceElement.SpaceElement;
import fr.tlse.irap.spaceElement.Sun;

public class RadialEnd {

	SpaceElement endSource;
	Calendar endTime;
	//double dtMin, dtMax;
	double dvMin, dvMax;
	double longCme; 		// long CME at tSUN
	Double longEnd, latEnd;	// (long, lat) target at impact time (tmin)
	Double longSep, latSep; // (long, lat) separation between target and CME at tSUN
	double distEnd; 		// distance away target from SUN at tSUN
	boolean impacted;

	public RadialEnd() {
		endTime = new GregorianCalendar();
	}

	public SpaceElement getEndSource() {
		return endSource;
	}
	public void setEndSource(SpaceElement endSource) {
		this.endSource = endSource;
	}
	public void setEndTime(Calendar endTime) {
		this.endTime = endTime;
	}
	public void setEndTime(Date d) {
		this.endTime.setTime(d);
	}
	public Calendar getEndTime() {
		return endTime;
	}
	public boolean isImpacted() {
		return impacted;
	}
	public void setImpacted(boolean impacted) {
		this.impacted = impacted;
	}
	public Double getLongEnd() {
		return longEnd;
	}
	public void setLongEnd(Double longEnd) {
		this.longEnd = longEnd;
	}
	public Double getLatEnd() {
		return latEnd;
	}
	public void setLatEnd(Double latEnd) {
		this.latEnd = latEnd;
	}
	public double getDistEnd() {
		return distEnd;
	}
	public void setDistEnd(double distEnd) {
		this.distEnd = distEnd;
	}
	public Double getLongSep() {
		return longSep;
	}
	public void setLongSep(Double longSep) {
		this.longSep = longSep;
	}
	public Double getLatSep() {
		return latSep;
	}
	public void setLatSep(Double latSep) {
		this.latSep = latSep;
	}
	public double getLongCme() {
		return longCme;
	}
	public void setLongCme(double longCme) {
		this.longCme = longCme;
	}
//	public double getDtMin() {
//		return dtMin;
//	}
//	public void setDtMin(double dtMin) {
//		this.dtMin = dtMin;
//	}
//	public double getDtMax() {
//		return dtMax;
//	}
//	public void setDtMax(double dtMax) {
//		this.dtMax = dtMax;
//	}
	public double getDvMin() {
		return dvMin;
	}
	public void setDvMin(double dvMin) {
		this.dvMin = dvMin;
	}
	public double getDvMax() {
		return dvMax;
	}
	public void setDvMax(double dvMax) {
		this.dvMax = dvMax;
	}
	public boolean isSun() {
		return endSource != null ? endSource instanceof Sun : false;		
	}

}
