QuadraticScreenSpace ClassDelta Engine Documentation
Converts to and from quadratic space. https://deltaengine.net/Learn/ScreenSpace View code on GitHub
Inheritance Hierarchy

System Object
  DeltaEngine.ScreenSpaces ScreenSpace
    DeltaEngine.ScreenSpaces QuadraticScreenSpace
      DeltaEngine.Editor.UIEditor SceneScreenSpace
      DeltaEngine.ScreenSpaces Camera2DScreenSpace

Namespace: DeltaEngine.ScreenSpaces
Assembly: DeltaEngine (in DeltaEngine.dll) Version: 1.1.1.0 (1.1.1)
Syntax

public class QuadraticScreenSpace : ScreenSpace

The QuadraticScreenSpace type exposes the following members.

Constructors

  NameDescription
Public methodQuadraticScreenSpace
Initializes a new instance of the QuadraticScreenSpace class
Top
Methods

  NameDescription
Public methodDispose (Inherited from ScreenSpace.)
Public methodFromPixelSpace(Rectangle) (Inherited from ScreenSpace.)
Public methodFromPixelSpace(Size) (Overrides ScreenSpace FromPixelSpace(Size).)
Public methodFromPixelSpace(Vector2D) (Overrides ScreenSpace FromPixelSpace(Vector2D).)
Public methodGetInnerPosition (Overrides ScreenSpace GetInnerPosition(Vector2D).)
Protected methodRaiseViewportSizeChanged (Inherited from ScreenSpace.)
Public methodToPixelSpace(Rectangle) (Inherited from ScreenSpace.)
Public methodToPixelSpace(Size) (Overrides ScreenSpace ToPixelSpace(Size).)
Public methodToPixelSpace(Vector2D) (Overrides ScreenSpace ToPixelSpace(Vector2D).)
Public methodToPixelSpaceRounded
The rounded version of ToPixelSpace is used for lines, boxes and fonts where it matters to actually render at exact pixel positions to get sharp lines, boxes or font rendering. View code on GitHub
(Inherited from ScreenSpace.)
Protected methodUpdate (Overrides ScreenSpace Update(Size).)
Top
Fields

  NameDescription
Protected fieldviewportPixelSize (Inherited from ScreenSpace.)
Top
Properties

  NameDescription
Public propertyAspectRatio (Inherited from ScreenSpace.)
Public propertyBottom (Overrides ScreenSpace Bottom.)
Public propertyBottomRight (Overrides ScreenSpace BottomRight.)
Public propertyLeft (Overrides ScreenSpace Left.)
Public propertyRight (Overrides ScreenSpace Right.)
Public propertyTop (Overrides ScreenSpace Top.)
Public propertyTopLeft (Overrides ScreenSpace TopLeft.)
Public propertyViewport (Inherited from ScreenSpace.)
Top
Events

  NameDescription
Public eventViewportSizeChanged (Inherited from ScreenSpace.)
Top
Remarks

Tests: DeltaEngine.Tests.ScreenSpaces.QuadraticScreenSpaceTests
Examples

12 unit tests call DeltaEngine.ScreenSpaces.QuadraticScreenSpace
[Test]
public void SquareWindowWithQuadraticSpace()
{
    ScreenSpace.Current = new QuadraticScreenSpace(window);
    window.ViewportPixelSize = new Size(100, 100);
    Assert.AreEqual(Vector2D.Zero, ScreenSpace.Current.TopLeft);
    Assert.AreEqual(Vector2D.One, ScreenSpace.Current.BottomRight);
    Assert.AreEqual(Rectangle.One, ScreenSpace.Current.Viewport);
    Assert.AreEqual(Vector2D.One, ScreenSpace.Current.FromPixelSpace(new Vector2D(100, 100)));
    Assert.AreEqual(Vector2D.Half, ScreenSpace.Current.FromPixelSpace(new Vector2D(50, 50)));
    Assert.IsTrue(
        ScreenSpace.Current.FromPixelSpace(new Rectangle(10, 10, 80, 80)).IsNearlyEqual(
            new Rectangle(0.1f, 0.1f, 0.8f, 0.8f)));
}
[Test]
public void ToQuadraticWithUnevenSize()
{
    window.ViewportPixelSize = new Size(99, 199);
    var screen = new QuadraticScreenSpace(window);
    Assert.AreEqual(new Vector2D(0.2512563f, 0), screen.TopLeft);
    Assert.AreEqual(new Vector2D(0.7487437f, 1), screen.BottomRight);
    Assert.AreEqual(screen.BottomRight, screen.FromPixelSpace(new Vector2D(99, 199)));
}
[Test]
public void ToQuadraticWithNonSquareWindow()
{
    window.ViewportPixelSize = new Size(100, 75);
    var screen = new QuadraticScreenSpace(window);
    Assert.AreEqual(0, screen.Left);
    Assert.AreEqual(0.125f, screen.Top);
    Assert.AreEqual(1, screen.Right);
    Assert.AreEqual(0.875f, screen.Bottom);
    Assert.AreEqual(new Rectangle(0, 0.125f, 1, 0.75f), screen.Viewport);
    Assert.AreEqual(new Vector2D(1f, 0.875f), screen.FromPixelSpace(new Vector2D(100, 75)));
    Assert.AreEqual(Vector2D.Half, screen.FromPixelSpace(new Vector2D(50, 37.5f)));
    Assert.IsTrue(screen.FromPixelSpace(new Size(10, 10)).IsNearlyEqual(new Size(0.1f, 0.1f)));
}
See Also