package com.momega.spacesimulator.model;
import java.util.ArrayList;
import java.util.List;
/**
* The spacecraft class is the representation of the any artificial object.
* The spacecraft can contain several {@link SpacecraftSubsystem}s. All important events during
* flight are stored into named history point collection.
*
* Created by martin on 5/5/14.
*/
public class Spacecraft extends PhysicalBody implements IconProvider {
private List<SpacecraftSubsystem> subsystems = new ArrayList<>();
private List<Maneuver> maneuvers = new ArrayList<>();
private transient Maneuver currentManeuver;
private Target target;
private Vector3d thrust;
private List<HistoryPoint> namedHistoryPoints = new ArrayList<>();
private ExitSoiOrbitalPoint exitSoiOrbitalPoint;
public List<HistoryPoint> getNamedHistoryPoints() {
return namedHistoryPoints;
}
public void setNamedHistoryPoints(List<HistoryPoint> namedHistoryPoints) {
this.namedHistoryPoints = namedHistoryPoints;
}
public List<SpacecraftSubsystem> getSubsystems() {
return subsystems;
}
public void setSubsystems(List<SpacecraftSubsystem> subsystems) {
this.subsystems = subsystems;
}
public List<Maneuver> getManeuvers() {
return maneuvers;
}
public void setManeuvers(List<Maneuver> maneuvers) {
this.maneuvers = maneuvers;
}
public Maneuver getCurrentManeuver() {
return currentManeuver;
}
public void setCurrentManeuver(Maneuver currentManeuver) {
this.currentManeuver = currentManeuver;
}
public void setTarget(Target target) {
this.target = target;
}
/**
* Gets the current thrust as a vector of the spacecraft
* @return
*/
public Target getTarget() {
return target;
}
public void setThrust(Vector3d thrust) {
this.thrust = thrust;
}
public Vector3d getThrust() {
return thrust;
}
public String getIcon() {
return "/images/Number-" + index + "-icon.png";
}
public ExitSoiOrbitalPoint getExitSoiOrbitalPoint() {
return exitSoiOrbitalPoint;
}
public void setExitSoiOrbitalPoint(ExitSoiOrbitalPoint exitSoiOrbitalPoint) {
this.exitSoiOrbitalPoint = exitSoiOrbitalPoint;
}
}