Guest User

ZoomSliderHelper

a guest
Jan 18th, 2012
530
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.58 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using SAS.Core.CommonObjects;
  6.  
  7. namespace SAS.Core.UtilityClasses {
  8.     public class ZoomSliderHelper {
  9.         private Range<double> m_ValueRange = new Range<double>(0, 100);
  10.         public Range<double> ValueRange {
  11.             get {
  12.                 return m_ValueRange;
  13.             }
  14.             set {
  15.                 m_ValueRange = value;
  16.             }
  17.         }
  18.  
  19.         private Range<double> m_ZoomRange = new Range<double>(0.1, 4);
  20.         public Range<double> ZoomRange {
  21.             get {
  22.                 return m_ZoomRange;
  23.             }
  24.             set {
  25.                 m_ZoomRange = value;
  26.             }
  27.         }
  28.  
  29.         public double ValStepSize {
  30.             get {
  31.                 return m_ValueRange.Size / (m_NumSteps - 1);
  32.             }
  33.         }
  34.  
  35.         public double ZoomStepSize {
  36.             get {
  37.                 return Math.Pow(m_ZoomRange.Max / m_ZoomRange.Min, ValStepSize / m_ValueRange.Max) - 1;
  38.             }
  39.         }
  40.  
  41.         private double m_NumSteps = 40;
  42.         public double NumSteps {
  43.             get {
  44.                 return m_NumSteps;
  45.             }
  46.             set {
  47.                 m_NumSteps = value;
  48.             }
  49.         }
  50.  
  51.         public double SliderToZoom(double val) {
  52.             return m_ZoomRange.Min * Math.Pow(1 + ZoomStepSize, val / ValStepSize);
  53.         }
  54.  
  55.         public double ZoomToSlider(double val) {
  56.             return ValStepSize * Math.Log(val / m_ZoomRange.Min) / Math.Log(1 + ZoomStepSize);
  57.         }
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment