Show / Hide Table of Contents

    Class InscribedRectangle

    The InscribedRectangle class defines the largest rectangle within an arbitrary shape.

    Inheritance
    Object
    InscribedRectangle
    Inherited Members
    Object.ToString()
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: Microsoft.MixedReality.Toolkit.Boundary
    Assembly: cs.temp.dll.dll
    Syntax
    public class InscribedRectangle

    Constructors

    InscribedRectangle(Edge[], Int32)

    Finds a large inscribed rectangle. Tries to be maximal but this is best effort. The algorithm used was inspired by the blog post https://d3plus.org/blog/behind-the-scenes/2014/07/08/largest-rect/ Random points within the polygon are chosen, and then 2 lines are drawn through those points. The midpoints of those lines are used as the center of various rectangles, using a binary search to vary the size, until the largest fit-able rectangle is found. This is then repeated for predefined angles (0-180 in steps of 15) and aspect ratios (1 to 15 in steps of 0.5).

    Declaration
    public InscribedRectangle(Edge[] geometryEdges, int randomSeed)
    Parameters
    Type Name Description
    Edge[] geometryEdges

    The boundary geometry.

    Int32 randomSeed

    Random number generator seed.

    Remarks

    For the most reproducible results, use the same randomSeed value each time this method is called.

    Properties

    Angle

    The rotation angle, in degrees, of the inscribed rectangle.

    Declaration
    public float Angle { get; }
    Property Value
    Type Description
    Single

    Center

    The center point of the inscribed rectangle.

    Declaration
    public Vector2 Center { get; }
    Property Value
    Type Description
    Vector2

    Height

    The height of the inscribed rectangle.

    Declaration
    public float Height { get; }
    Property Value
    Type Description
    Single

    IsValid

    Is the described rectangle valid?

    Declaration
    public bool IsValid { get; }
    Property Value
    Type Description
    Boolean
    Remarks

    A rectangle is considered valid if it's center point is valid.

    Width

    The width of the inscribed rectangle.

    Declaration
    public float Width { get; }
    Property Value
    Type Description
    Single

    Methods

    IsInsideBoundary(Vector2)

    Determine of the provided point lies within the defined rectangle.

    Declaration
    public bool IsInsideBoundary(Vector2 point)
    Parameters
    Type Name Description
    Vector2 point

    The point to check

    Returns
    Type Description
    Boolean

    True if the point is within the rectangle's bounds, false otherwise.

    Exceptions
    Type Condition
    InvalidOperationException

    The rectangle is not valid.

    Back to top Generated by DocFX