public void ScaleTo(float width, float height) { Width = width; Height = height; var image = _hasImage.Image; if (image != null) { ScaleX = Width / _hasImage.Image.Width; ScaleY = Height / _hasImage.Image.Height; } OnScaleChanged.FireEvent(this, _args); }
public void ScaleBy(float scaleX, float scaleY) { ScaleX = scaleX; ScaleY = scaleY; var image = _hasImage.Image; if (image != null) { Width = _hasImage.Image.Width * ScaleX; Height = _hasImage.Image.Height * ScaleY; } OnScaleChanged.FireEvent(this, _args); }
public void ResetScale() { ScaleX = 1; ScaleY = 1; var image = _hasImage.Image; if (image != null) { Width = _hasImage.Image.Width; Height = _hasImage.Image.Height; } OnScaleChanged.FireEvent(this, _args); }
private void Start() { foreach (var renderer in Renderers.GetComponentsInChildren <ISourceRenderer>()) { OnScaleChanged += renderer.SetScale; } Slider.OnValueChangedAsObservable() .Subscribe(v => InputField.text = v.ToString(CultureInfo.InvariantCulture)); Slider.value = 1; SubmitButton.OnClickAsObservable() .Select(_ => InputField.text) .Select(s => (float.TryParse(s, NumberStyles.Float, CultureInfo.InvariantCulture, out var v), v)) .Where(r => r.Item1) .Select(r => r.v) .Do(v => OnScaleChanged?.Invoke(v)) .Where(v => Slider.minValue <= v && v <= Slider.maxValue) .Do(v => Slider.value = v) .Do(v => Camera.Scale = v) .Subscribe(); }
/// <summary> /// Fire OnScaleChaged event /// </summary> private void ScaleChanged() { OnScaleChanged?.Invoke(this, EventArgs.Empty); Changed(); }
/// <summary> /// Container Scale changed event received. /// </summary> /// <param name="sender">Container with the changed scale</param> /// <param name="e">Change attributes.</param> private void Container_OnScaleChanged(object sender, EventArgs e) { SyncScales(container_locked: true); OnScaleChanged?.Invoke(this, EventArgs.Empty); }
public void FlipHorizontally() { ScaleBy(-ScaleX, ScaleY); _hasImage.Anchor = new PointF(-_hasImage.Anchor.X, _hasImage.Anchor.Y); OnScaleChanged.FireEvent(this, _args); }
public void FlipVertically() { ScaleBy(ScaleX, -ScaleY); _hasImage.Anchor = new PointF(_hasImage.Anchor.X, -_hasImage.Anchor.Y); OnScaleChanged.FireEvent(this, _args); }