// This is called each time a destination is reached, for possible update. private void SetUserTravelAndMotion(bool force = false) { if (force || (userTravelMode != curTravelMode)) { switch (userTravelMode) { case DroneTravelMode.TurnThenMove: travelBehavior = travelBehaviorTurnThenMove; curTravelMode = DroneTravelMode.TurnThenMove; break; case DroneTravelMode.Incremental: travelBehavior = travelBehaviorIncremental; curTravelMode = DroneTravelMode.Incremental; break; default: travelBehavior = travelBehaviorDirect; curTravelMode = DroneTravelMode.Direct; break; } } if (force || (userMotionMode != curMotionMode)) { switch (userMotionMode) { case DroneMotionMode.Sine: motionBehavior = motionBehaviorSine; curMotionMode = DroneMotionMode.Sine; break; case DroneMotionMode.Simple: motionBehavior = motionBehaviorSimple; curMotionMode = DroneMotionMode.Simple; break; default: motionBehavior = motionBehaviorNone; curMotionMode = DroneMotionMode.None; break; } } }