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.