Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
 }
Exemple #7
0
 public void FlipHorizontally()
 {
     ScaleBy(-ScaleX, ScaleY);
     _hasImage.Anchor = new PointF(-_hasImage.Anchor.X, _hasImage.Anchor.Y);
     OnScaleChanged.FireEvent(this, _args);
 }
Exemple #8
0
 public void FlipVertically()
 {
     ScaleBy(ScaleX, -ScaleY);
     _hasImage.Anchor = new PointF(_hasImage.Anchor.X, -_hasImage.Anchor.Y);
     OnScaleChanged.FireEvent(this, _args);
 }