package org.droidplanner.services.android.impl.core.gcs.follow;
import android.os.Handler;
import com.o3dr.services.android.lib.coordinate.LatLong;
import org.droidplanner.services.android.impl.core.drone.autopilot.MavLinkDrone;
import org.droidplanner.services.android.impl.core.drone.manager.MavLinkDroneManager;
import org.droidplanner.services.android.impl.core.gcs.location.Location;
/**
* Created by fhuya on 1/5/15.
*/
public class FollowSplineAbove extends FollowAlgorithm {
private final MavLinkDrone drone;
@Override
public void processNewLocation(Location location) {
LatLong gcsLoc = new LatLong(location.getCoord());
double speed = location.getSpeed();
double bearing = location.getBearing();
double bearingInRad = Math.toRadians(bearing);
double xVel = speed * Math.cos(bearingInRad);
double yVel = speed * Math.sin(bearingInRad);
drone.getGuidedPoint().newGuidedCoordAndVelocity(gcsLoc, xVel, yVel, 0);
}
@Override
public FollowModes getType() {
return FollowModes.SPLINE_ABOVE;
}
public FollowSplineAbove(MavLinkDroneManager droneManager, Handler handler) {
super(droneManager, handler);
drone = droneManager.getDrone();
}
}