Location:
e32std.h
Link against: euser.lib
TRect
Supported from 5.0
Geometric rectangle.
The class represents a rectangle whose sides are parallel with the axes of the co-ordinate system.
The co-ordinates of the top-left and bottom-right corners are used
to set the dimensions of the rectangle. The bottom right co-ordinate is outside
the rectangle. Thus TRect(TPoint(2,2),TSize(4,4))
is equal to
TRect(TPoint(2,2),TPoint(6,6))
, and in both cases you get a 4x4
pixel rectangle on the screen.
Functions are provided to initialise and manipulate the rectangle and to extract information about it.
Defined in TRect
:
BoundingRect()
, Center()
, Contains()
, Grow()
, Height()
, Intersection()
, Intersects()
, IsEmpty()
, IsNormalized()
, Move()
, Normalize()
, Resize()
, SetHeight()
, SetRect()
, SetSize()
, SetWidth()
, Shrink()
, Size()
, TRect()
, Width()
, iBr
, iTl
, operator!=()
, operator==()
TRect();
Constructs a default rectangle. This initialises the co-ordinates of its top left and bottom right corners to (0,0).
TRect(TInt aAx,TInt aAy,TInt aBx,TInt aBy);
Constructs the rectangle, initialising its top left and bottom
right hand corners with four TInt
s.
|
TRect(const TPoint& aPointA,const TPoint& aPointB);
Constructs the rectangle with two TPoint
s,
corresponding to its top left and bottom right hand corners.
|
TRect(const TPoint& aPoint,const TSize& aSize);
Constructs the rectangle with a TPoint
for its top
left corner, and a TSize
for its width and height.
|
TRect(const TSize& aSize);
Constructs the rectangle with a TSize
. The
co-ordinates of its top left hand corner are initialised to (0,0) and its width
and height are initialised to the values contained in the argument.
|
void SetRect(TInt aAx,TInt aAy,TInt aBx,TInt aBy);
Sets the rectangle’s position using four
TInt
s.
|
void SetRect(const TPoint& aPointTL,const TPoint& aPointBR);
Sets the rectangle’s position using two
TPoint
s.
|
void SetRect(const TPoint& aPoint,const TSize& aSize);
Sets the rectangle’s position using a
TPoint
and a TSize
.
|
TInt operator==(const TRect& aRect) const;
Compares two rectangles for equality.
For two rectangles to be equal, the co-ordinates of both their top left and bottom right hand corners must be equal.
|
|
TInt operator!=(const TRect& aRect) const;
Compares two rectangles for inequality.
Two rectangles are unequal if any of their co-ordinates differ.
|
|
void Normalize();
Ensures that the rectangle’s width and height have positive values.
For example, if the rectangle’s co-ordinates are such that the top is below the bottom, or the right hand side is to the left of the left hand side, normalisation swaps the co-ordinates of the top and bottom or of the left and right.
void Move(TInt aDx,TInt aDy);
Moves the rectangle by adding an x, y offset.
The offset is added to the co-ordinates of both its top left and bottom right hand corners. The size of the rectangle is unchanged.
|
void Move(const TPoint& aOffset);
Moves the rectangle by adding a TPoint
offset.
The offset is added to the co-ordinates of both its top left and bottom right hand corners. The size of the rectangle is unchanged.
|
void Resize(TInt aDx,TInt aDy);
Resizes a rectangle by adding a horizontal and vertical offset.
The offset is added to the co-ordinates of its bottom right hand corner. If either value is negative, the rectangle shrinks in the corresponding direction. The co-ordinates of the rectangle’s top left hand corner are unaffected.
|
void Resize(const TSize& aSize);
Resizes a rectangle by adding a TSize
offset.
The offset is added to the co-ordinates of its bottom right
hand corner. If either value in the TSize
is negative, the
rectangle shrinks in the corresponding direction. The co-ordinates of the
rectangle’s top left hand corner are unaffected.
|
void Shrink(TInt aDx,TInt aDy);
Shrinks a rectangle using specified horizontal and vertical offsets.
The offset values are added to the co-ordinates of its top left hand corner, and the same values are subtracted from the co-ordinates of its bottom right hand corner. The co-ordinates of the centre of the rectangle remain unchanged. If either value is negative, the rectangle expands in the corresponding direction.
|
void Shrink(const TSize& aSize);
Shrinks a rectangle using a specified TSize
offset.
The rectangle shrinks by twice the value of the height and
width specified in the TSize
. The co-ordinates of the centre of
the rectangle remain unchanged. If either value is negative, the rectangle
expands in the corresponding direction.
|
void Grow(TInt aDx,TInt aDy);
Grows the rectangle using the specified horizontal and vertical offsets.
The offset values are subtracted from the co-ordinates of its top left hand corner, and the same values are added to the co-ordinates of its bottom right hand corner. The co-ordinates of the centre of the rectangle remain unchanged. If either value is negative, the rectangle shrinks in the corresponding direction.
|
void Grow(const TSize& aSize);
Grows a rectangle using the specified TSize
offset.
The rectangle grows by twice the value of the height and width
specified in the TSize
. The co-ordinates of the centre of the
rectangle remain unchanged. If either value is negative, the rectangle shrinks
in the corresponding direction.
|
void SetSize(const TSize& aSize);
Sets the size of the rectangle.
Only the co-ordinates of the bottom right hand corner of the rectangle are affected.
|
void SetWidth(TInt aWidth);
Sets the width of the rectangle.
Only the position of the rectangle’s right hand side is affected.
|
void SetHeight(TInt aHeight);
Sets the height of the rectangle.
Only the position of the bottom of the rectangle is affected.
|
TSize Size() const;
Gets the size of the rectangle.
|
TInt Width() const;
Gets the width of the rectangle.
|
TInt Height() const;
Gets the height of the rectangle.
|
TBool IsNormalized() const;
Tests whether the rectangle is normalised.
A rectangle is normalised when its width and height are both zero or greater.
|
TBool IsEmpty() const;
Tests whether the rectangle is empty.
|
TPoint Center() const;
Gets the point at the centre of the rectangle.
|
TBool Contains(const TPoint& aPoint) const;
Tests whether a point is located within the rectangle.
Note that a point located on the top or left hand side of the rectangle is within the rectangle. A point located on the right hand side or bottom is considered to be outside the rectangle.
|
|
void BoundingRect(const TRect& aRect);
Gets the minimal rectangle which bounds both this rectangle and the specified rectangle, and assigns it to this rectangle.
|
void Intersection(const TRect& aRect);
Gets the area of intersection between this rectangle and the specified rectangle , and assigns it to this rectangle.
It is usual to call TRect::Intersects()
first to
verify whether the two rectangles intersect. If the two rectangles do not
intersect, then, on return, this rectangle is set to be empty.
|
TBool Intersects(const TRect& aRect) const;
Tests whether this rectangle overlaps with the specified rectangle.
Two rectangles overlap if any point is located within both rectangles. There is no intersection if two adjacent sides touch without overlapping, or if either rectangle is empty.
|
|
TPoint iBr
Represents the x and y co-ordinates of the top left hand corner of the rectangle.
TPoint iTl
Represents the x and y co-ordinates of the bottom right hand corner of the rectangle.