package com.o3dr.services.android.lib.drone.property; import android.os.Parcel; import com.o3dr.services.android.lib.coordinate.LatLong; import com.o3dr.services.android.lib.util.MathUtils; import java.util.ArrayList; import java.util.List; /** * Created by fhuya on 11/11/14. */ public class FootPrint implements DroneAttribute { private double meanGSD; private List<LatLong> vertex = new ArrayList<LatLong>(); public FootPrint(){} public FootPrint(double meanGSD, List<LatLong> vertex) { this.meanGSD = meanGSD; this.vertex = vertex; } public void setMeanGSD(double meanGSD) { this.meanGSD = meanGSD; } public void setVertex(List<LatLong> vertex) { this.vertex = vertex; } public double getMeanGSD() { return meanGSD; } public List<LatLong> getVertexInGlobalFrame() { return vertex; } public double getLateralSize() { return (MathUtils.getDistance2D(vertex.get(0), vertex.get(1)) + MathUtils.getDistance2D(vertex.get(2), vertex.get(3))) / 2; } public double getLongitudinalSize() { return (MathUtils.getDistance2D(vertex.get(0), vertex.get(3)) + MathUtils.getDistance2D(vertex.get(1), vertex.get(2))) / 2; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeDouble(this.meanGSD); dest.writeTypedList(vertex); } private FootPrint(Parcel in) { this.meanGSD = in.readDouble(); in.readTypedList(vertex, LatLong.CREATOR); } public static final Creator<FootPrint> CREATOR = new Creator<FootPrint>() { public FootPrint createFromParcel(Parcel source) { return new FootPrint(source); } public FootPrint[] newArray(int size) { return new FootPrint[size]; } }; }