public static RelMov Setup(PtzAxis ax, PtzView view)
            {
                RelMov res         = null;
                var    stepSlider  = GetStepSliders(view)[ax];
                var    sppedSlider = GetSpeedSliders(view)[ax];

                do
                {
                    var range = GetValueRanges(view)[ax];
                    if (range == null)
                    {
                        break;
                    }
                    var min = range.min;
                    var max = range.max;
                    if (float.IsNaN(min) || float.IsNaN(max) || min > max)
                    {
                        break;
                    }
                    if (float.IsNegativeInfinity(min))
                    {
                        min = float.MinValue;
                    }
                    if (float.IsPositiveInfinity(max))
                    {
                        max = float.MaxValue;
                    }
                    if (stepSlider == null)
                    {
                        res = new RelMov(min, max, AbsRelSpeed.Create(ax, view, null));
                        break;
                    }
                    res = new RelMov(min, max, AbsRelSpeed.Create(ax, view, sppedSlider));
                    stepSlider.Minimum     = 0d;
                    stepSlider.Maximum     = 100d;
                    stepSlider.SmallChange = 1d;
                    stepSlider.LargeChange = 10d;
                    stepSlider.Value       = res.step;
                    stepSlider.Visibility  = Visibility.Visible;
                    if (min != max)
                    {
                        stepSlider.IsEnabled     = true;
                        stepSlider.ValueChanged += (s, a) => {
                            res.step = (float)a.NewValue;
                        };
                    }
                    else
                    {
                        stepSlider.IsEnabled = false;
                    }
                    return(res);
                } while(false);

                if (stepSlider != null)
                {
                    stepSlider.Visibility = Visibility.Collapsed;
                }
                if (sppedSlider != null)
                {
                    sppedSlider.Visibility = Visibility.Collapsed;
                }

                return(res);
            }
Esempio n. 2
0
            public static AbsMov Setup(PtzAxis ax, PtzView view)
            {
                AbsMov res         = null;
                var    posSlider   = GetPosSliders(view)[ax];
                var    speedSlider = GetSpeedSliders(view)[ax];

                do
                {
                    var range = GetPosRanges(view)[ax];
                    if (range == null)
                    {
                        break;
                    }
                    var min = range.min;
                    var max = range.max;
                    if (float.IsNaN(min) || float.IsNaN(max) || min > max)
                    {
                        break;
                    }
                    if (float.IsNegativeInfinity(min))
                    {
                        min = float.MinValue;
                    }
                    if (float.IsPositiveInfinity(max))
                    {
                        max = float.MaxValue;
                    }
                    if (posSlider == null)
                    {
                        res = new AbsMov(min, max, AbsRelSpeed.Create(ax, view, null));
                        break;
                    }
                    res = new AbsMov(min, max, AbsRelSpeed.Create(ax, view, speedSlider));
                    posSlider.Minimum     = min;
                    posSlider.Maximum     = max;
                    posSlider.SmallChange = (max - min) / 100f;
                    posSlider.LargeChange = (max - min) / 10f;
                    posSlider.Value       = res.pos;
                    posSlider.Visibility  = Visibility.Visible;
                    if (min != max)
                    {
                        posSlider.IsEnabled     = true;
                        posSlider.ValueChanged += (s, a) => {
                            res.pos = res.rng.Coerce((float)a.NewValue);
                        };
                    }
                    else
                    {
                        posSlider.IsEnabled = false;
                    }
                    return(res);
                } while (false);

                if (posSlider != null)
                {
                    posSlider.Visibility = Visibility.Collapsed;
                }
                if (speedSlider != null)
                {
                    speedSlider.Visibility = Visibility.Collapsed;
                }

                return(res);
            }