template struct Core::TRect

Overview

Rectangle template class. More…

#include <corerect.h>

template <typename Type>
struct TRect
{
    // fields

    Type left;
    Type top;
    Type right;
    Type bottom;

    // construction

    TRect (Type l = 0, Type t = 0, Type r = 0, Type b = 0);
    TRect (const TPoint <Type>& p1, const TPoint <Type>& p2);
    TRect (Type l, Type t, const TPoint <Type>& size);
    TRect (const TPoint <Type>& size);

    // methods

    TRect& operator () (Type l, Type t, Type r, Type b);
    Type getWidth () const;
    Type getHeight () const;
    TRect& setWidth (Type w);
    TRect& setHeight (Type w);
    TPoint <Type> getSize () const;
    TRect& setSize (const TPoint <Type>& size);
    TPoint <Type> getLeftTop () const;
    TPoint <Type> getRightTop () const;
    TPoint <Type> getLeftBottom () const;
    TPoint <Type> getRightBottom () const;
    TPoint <Type> getCenter () const;
    TRect& offset (Type dx, Type dy = 0);
    TRect& offset (const TPoint <Type>& p);
    TRect& moveTo (const TPoint <Type>& p);
    TRect& contract (Type v);
    TRect& expand (Type v);
    TRect& zoom (float factor);
    bool bound (const TRect& r);
    bool boundH (const TRect& r);
    bool boundV (const TRect& r);
    TRect& join (const TRect& r);
    TRect& join (const TPoint <Type>& p);
    TRect& center (const TRect& r);
    TRect& centerH (const TRect& r);
    TRect& centerV (const TRect& r);
    TRect& align (const TRect& r, const Alignment& alignment);
    TRect& fitProportionally (const TRect& r);
    TRect& normalize ();
    TRect& setEmpty ();
    TRect& setReallyEmpty ();
    bool isEmpty () const;
    bool intersect (const TRect& r) const;
    bool pointInside (const TPoint <Type>& p) const;
    bool rectInside (const TRect& r) const;
    bool operator == (const TRect& r) const;
    bool operator != (const TRect& r) const;
};

Detailed Documentation

Rectangle template class.

Fields

Type left

left coordinate

Type top

top coordinate

Type right

right coordinate

Type bottom

bottom coordinate

Construction

TRect (Type l = 0, Type t = 0, Type r = 0, Type b = 0)

Construct rectangle from coordinates.

TRect (const TPoint <Type>& p1, const TPoint <Type>& p2)

Construct rectangle from points (left/top, right/bottom).

TRect (Type l, Type t, const TPoint <Type>& size)

Construct rectangle from left/top and size.

TRect (const TPoint <Type>& size)

Construct rectangle at (0,0) with given size.

Methods

TRect& operator () (Type l, Type t, Type r, Type b)

Assign new coordinates.

Type getWidth () const

Get width.

Type getHeight () const

Get height.

TRect& setWidth (Type w)

Set width without moving.

TRect& setHeight (Type w)

Set height without moving.

TPoint <Type> getSize () const

Get size of rectangle as a point.

TRect& setSize (const TPoint <Type>& size)

Set width and height without moving.

TPoint <Type> getLeftTop () const

Get left/top position.

TPoint <Type> getRightTop () const

Get right/top position.

TPoint <Type> getLeftBottom () const

Get left/bottom position.

TPoint <Type> getRightBottom () const

Get right/bottom position.

TPoint <Type> getCenter () const

Get center point of rectangle.

TRect& offset (Type dx, Type dy = 0)

Offset by given delta.

TRect& offset (const TPoint <Type>& p)

Offset by point.

TRect& moveTo (const TPoint <Type>& p)

Move origin to new position.

TRect& contract (Type v)

Shrink all edges by given value.

TRect& expand (Type v)

Expand all edges by given value.

TRect& zoom (float factor)

Multiply all edges by given value.

bool bound (const TRect& r)

Bound to given rectangle (can cause shrink).

Returns false, if result is empty.

bool boundH (const TRect& r)

Bound to given rectangle horizontally (can cause shrink).

Returns false, if result is empty.

bool boundV (const TRect& r)

Bound to given rectangle vertically (can cause shrink).

Returns false, if result is empty.

TRect& join (const TRect& r)

Join given rectangle (can cause expansion).

TRect& join (const TPoint <Type>& p)

Join with point (can cause expansion).

TRect& center (const TRect& r)

Center in given parent rectangle.

TRect& centerH (const TRect& r)

Center horizontally in given parent rectangle.

TRect& centerV (const TRect& r)

Center vertically in given parent rectangle.

TRect& align (const TRect& r, const Alignment& alignment)

Align in given parent rectangle.

TRect& fitProportionally (const TRect& r)

Scale proportionally to fit into parent rectangle.

(There may be space left in one direction.)

TRect& normalize ()

Swap corners if width/height is negative.

TRect& setEmpty ()

Set coordinates to (0,0,0,0).

TRect& setReallyEmpty ()

Set empty using +- kMaxCoord.

Use when joining rectangles.

bool isEmpty () const

Check if rectangle is empty.

bool intersect (const TRect& r) const

Check if this rectangle intersects with other rectangle.

bool pointInside (const TPoint <Type>& p) const

Check if point is inside.

bool rectInside (const TRect& r) const

Check if rectangle is inside.

bool operator == (const TRect& r) const

Compare rectangles.

bool operator != (const TRect& r) const

Compare rectangles.