protected float GetUnitsForOffset( ScaleMode mode, float value, LayoutBase reference, Vector2Axis axis ) { switch (mode) { case ScaleMode.ScaleNormalizedPercent: return(value * axis(scaledSize)); case ScaleMode.ReferenceScalePercent: if (reference == null) { goto case ScaleMode.ScaleNormalizedPercent; } return(value * axis(scaledSize) * axis(reference.totalScale) / axis(totalScale)); default: return(GetUnitsForScale(mode, value, reference, axis)); } }
/// Returns the size in screen units for a scale mode and a value. protected float GetUnitsForScale( ScaleMode mode, float value, LayoutBase reference, Vector2Axis axis ) { switch (mode) { case ScaleMode.UnadjustedUnits: return(value * axis(baseScale)); case ScaleMode.ScaleNormalizedUnits: return(value); case ScaleMode.ScaleNormalizedPercent: return(value * axis(unscaledSize)); case ScaleMode.ReferenceScalePercent: if (reference == null) { goto case ScaleMode.ScaleNormalizedPercent; } return(value * axis(reference.totalScale) * axis(unscaledSize)); case ScaleMode.ReferenceSizePercent: if (reference == null) { goto case ScaleMode.ScreenPercent; } return(value * axis(reference.scaledSize)); case ScaleMode.ScreenPercent: return(value * axis(screenSize)); case ScaleMode.DpiScaledPixels: return(value * axis(unitsPerDpiPixel)); case ScaleMode.Pixels: return(value * axis(unitsPerPixel)); default: return(0); } }