AnimatGuiCtrls.Controls.TimeRuler.RecalculateTimeScale C# (CSharp) 메소드

RecalculateTimeScale() 개인적인 메소드

private RecalculateTimeScale ( ) : void
리턴 void
		private void RecalculateTimeScale()
		{
			//Lets do the calculation for all of the possible time scales and see which one fits bets		
			if(_bAutomaticTimeScale)
			{
				int iSize = (this.Orientation == enumOrientation.orHorizontal) ? Width : Height;
				int iOptimumScale = iSize/10;

				double dblZoomFactor = CalculateZoomFactor(iSize, enumTimeScale.MilliSeconds);
				int iMilliScale = DefaultScale(dblZoomFactor) / DefaultMajorInterval();
				int iMilliDiff = Math.Abs(iOptimumScale - iMilliScale);

				dblZoomFactor = CalculateZoomFactor(iSize, enumTimeScale.Seconds);
				int iSecScale = DefaultScale(dblZoomFactor) / DefaultMajorInterval();
				int iSecDiff = Math.Abs(iOptimumScale - iSecScale);

				dblZoomFactor = CalculateZoomFactor(iSize, enumTimeScale.Minutes);
				int iMinScale = DefaultScale(dblZoomFactor) / DefaultMajorInterval();
				int iMinDiff = Math.Abs(iOptimumScale - iMinScale);

				dblZoomFactor = CalculateZoomFactor(iSize, enumTimeScale.Hours);
				int iHourScale = DefaultScale(dblZoomFactor) / DefaultMajorInterval();
				int iHourDiff = Math.Abs(iOptimumScale - iHourScale);

				if( (iSecDiff < iMilliDiff) && (iSecDiff < iMinDiff) && (iSecDiff < iHourDiff) )
					_TimeScale = enumTimeScale.Seconds;
				else if( (iMinDiff < iMilliDiff) && (iMinDiff < iSecDiff) && (iMinDiff < iHourDiff) )
					_TimeScale = enumTimeScale.Minutes;
				else if( (iHourDiff < iMilliDiff) && (iHourDiff < iSecDiff) && (iHourDiff < iMinDiff) )
					_TimeScale = enumTimeScale.Hours;
				else
					_TimeScale = enumTimeScale.MilliSeconds;
					
				RecalculateZoom();
				RecalculateDivisions();
			}
		}