public static AbsRelSpeed Create(PtzAxis ax, PtzView view, Slider slider) {
				AbsRelSpeed res = null;
				do {
					var spdInf = GetSpeedInfo(view)[ax];
					if (spdInf == null) {
						break;
					}
					var range = spdInf.Item1;
					if (range == null) {
						break;
					}
					var def = spdInf.Item2;
					if (range == null) {
						break;
					}
					if (float.IsNaN(def)) {
						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 (def > max || def < min) {
						res = new AbsRelSpeed(def, def, def);
						break;
					}
					res = new AbsRelSpeed(min, max, def);
					if (slider != null) {
						slider.Minimum = min;
						slider.Maximum = max;
						slider.SmallChange = (max - min) / 100f;
						slider.LargeChange = (max - min) / 10f;
						slider.Value = def;
						slider.Visibility = Visibility.Visible;
						if (min != max) {
							slider.IsEnabled = true;
							slider.ValueChanged += (s, a) => {
								res.val = res.rng.Coerce((float)a.NewValue);
							};
						} else {
							slider.IsEnabled = false;
						}
					}
					return res;
				} while (false);

				if (slider != null) {
					slider.Visibility = Visibility.Collapsed;
				}
				return res;
			}
Esempio n. 2
0
            public static ContMov Setup(PtzAxis ax, PtzView view)
            {
                ContMov res       = null;
                var     lvlSlider = GetLvlSliders(view)[ax];

                do
                {
                    var range = GetVelRanges(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;
                    }
                    res = new ContMov(min, max);
                    if (lvlSlider != null)
                    {
                        lvlSlider.Minimum     = 0d;
                        lvlSlider.Maximum     = 100d;
                        lvlSlider.SmallChange = 1d;
                        lvlSlider.LargeChange = 10d;
                        lvlSlider.Value       = res.level;
                        lvlSlider.Visibility  = Visibility.Visible;
                        if (min != max)
                        {
                            lvlSlider.IsEnabled     = true;
                            lvlSlider.ValueChanged += (s, a) => {
                                res.level = (float)a.NewValue;
                            };
                        }
                        else
                        {
                            lvlSlider.IsEnabled = false;
                        }
                    }
                    return(res);
                } while (false);

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

                return(res);
            }
			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;
			}
			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;
			}
			public static ContMov Setup(PtzAxis ax, PtzView view) {
				ContMov res = null;
				var lvlSlider = GetLvlSliders(view)[ax];
				do {
					var range = GetVelRanges(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;
					}
					res = new ContMov(min, max);
					if (lvlSlider != null) {
						lvlSlider.Minimum = 0d;
						lvlSlider.Maximum = 100d;
						lvlSlider.SmallChange = 1d;
						lvlSlider.LargeChange = 10d;
						lvlSlider.Value = res.level;
						lvlSlider.Visibility = Visibility.Visible;
						if (min != max) {
							lvlSlider.IsEnabled = true;
							lvlSlider.ValueChanged += (s, a) => {
								res.level = (float)a.NewValue;
							};
						} else {
							lvlSlider.IsEnabled = false;
						}
					}
					return res;
				} while (false);

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

				return res;
			}
Esempio n. 6
0
            public   T this[PtzAxis c] {
                get {
                    switch (c)
                    {
                    case PtzAxis.pan: return(pan);

                    case PtzAxis.tilt: return(tilt);

                    case PtzAxis.zoom: return(zoom);

                    default: return(default(T));
                    }
                }
                set {
                    switch (c)
                    {
                    case PtzAxis.pan: pan = value; break;

                    case PtzAxis.tilt: tilt = value; break;

                    case PtzAxis.zoom: zoom = value; break;
                    }
                }
            }
Esempio n. 7
0
 public PtzAxisVal(PtzAxis axis, T value)
 {
     this.axis = axis; this.value = value;
 }
Esempio n. 8
0
 //public static PtzVec<T> ToVec<T>(this IEnumerable<PtzAxisVal<T>> seq) {
 //	return new PtzVec<T>(seq);
 //}
 public static PtzAxisVal <T> AxisVal <T>(PtzAxis axis, T value)
 {
     return(new PtzAxisVal <T>(axis, value));
 }
Esempio n. 9
0
            public static AbsRelSpeed Create(PtzAxis ax, PtzView view, Slider slider)
            {
                AbsRelSpeed res = null;

                do
                {
                    var spdInf = GetSpeedInfo(view)[ax];
                    if (spdInf == null)
                    {
                        break;
                    }
                    var range = spdInf.Item1;
                    if (range == null)
                    {
                        break;
                    }
                    var def = spdInf.Item2;
                    if (range == null)
                    {
                        break;
                    }
                    if (float.IsNaN(def))
                    {
                        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 (def > max || def < min)
                    {
                        res = new AbsRelSpeed(def, def, def);
                        break;
                    }
                    res = new AbsRelSpeed(min, max, def);
                    if (slider != null)
                    {
                        slider.Minimum     = min;
                        slider.Maximum     = max;
                        slider.SmallChange = (max - min) / 100f;
                        slider.LargeChange = (max - min) / 10f;
                        slider.Value       = def;
                        slider.Visibility  = Visibility.Visible;
                        if (min != max)
                        {
                            slider.IsEnabled     = true;
                            slider.ValueChanged += (s, a) => {
                                res.val = res.rng.Coerce((float)a.NewValue);
                            };
                        }
                        else
                        {
                            slider.IsEnabled = false;
                        }
                    }
                    return(res);
                } while (false);

                if (slider != null)
                {
                    slider.Visibility = Visibility.Collapsed;
                }
                return(res);
            }
            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. 11
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);
            }