Example #1
0
    // 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;
            }
        }
    }
    // 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;
            }
        }

    }