package com.o3dr.services.android.lib.drone.property;
import android.os.Parcel;
import android.os.Parcelable;
import com.o3dr.services.android.lib.coordinate.LatLongAlt;
/**
* Location from which the drone took off.
*/
public class Home implements DroneAttribute {
/**
* Lauch pad 3D coordinate.
*/
private LatLongAlt mCoordinate;
public Home(){}
public Home(double latitude, double longitude, double altitude){
mCoordinate = new LatLongAlt(latitude, longitude, altitude);
}
public Home(LatLongAlt coordinate){
mCoordinate = coordinate;
}
/**
* @return the launch pad 3D coordinate.
*/
public LatLongAlt getCoordinate(){
return mCoordinate;
}
public void setCoordinate(LatLongAlt mCoordinate) {
this.mCoordinate = mCoordinate;
}
public boolean isValid(){
return mCoordinate != null;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Home)) return false;
Home home = (Home) o;
return !(mCoordinate != null ? !mCoordinate.equals(home.mCoordinate) : home.mCoordinate != null);
}
@Override
public int hashCode() {
return mCoordinate != null ? mCoordinate.hashCode() : 0;
}
@Override
public String toString() {
return "LaunchPad{" +
"mCoordinate=" + mCoordinate +
'}';
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeParcelable(this.mCoordinate, 0);
}
private Home(Parcel in) {
this.mCoordinate = in.readParcelable(LatLongAlt.class.getClassLoader());
}
public static final Parcelable.Creator<Home> CREATOR = new Parcelable.Creator<Home>() {
public Home createFromParcel(Parcel source) {
return new Home(source);
}
public Home[] newArray(int size) {
return new Home[size];
}
};
}