QPointArray Class Reference
The QPointArray class provides an array of points.
More...
#include <qpointarray.h>
Inherits QMemArray<QPoint>.
List of all member functions.
Public Members
QPointArray &
operator= ( const QPointArray & a )
QPointArray
copy () const
void
point ( uint index, int * x, int * y ) const
QPoint
point ( uint index ) const
void
setPoint ( uint index, int x, int y )
void
setPoint ( uint i, const QPoint & p )
bool
setPoints ( int nPoints, const QCOORD * points )
bool
setPoints ( int nPoints, int firstx, int firsty, ... )
bool
putPoints ( int index, int nPoints, const QCOORD * points )
bool
putPoints ( int index, int nPoints, int firstx, int firsty, ... )
bool
putPoints ( int index, int nPoints, const QPointArray & from, int fromIndex = 0 )
void
makeArc ( int x, int y, int w, int h, int a1, int a2 )
void
makeArc ( int x, int y, int w, int h, int a1, int a2, const QWMatrix & xf )
Static Public Members
Related Functions
QDataStream &
operator<< ( QDataStream & s, const QPointArray & a )
QDataStream &
operator>> ( QDataStream & s, QPointArray & a )
Detailed Description
The QPointArray class provides an array of points.
The QPointArray is an array of QPoint objects. In addition to the
functions provided by QMemArray, QPointArray provides some
point-specific functions.
For convenient reading and writing of the point data: setPoints(),
putPoints(), point(), and setPoint().
For geometry operations: boundingRect() and translate(). There is
also a QWMatrix::map() function for more general transformation of
QPointArrays.
Among others, QPointArray is used by QPainter::drawLineSegments(),
QPainter::drawPolyline(), QPainter::drawPolygon() and
QPainter::drawCubicBezier().
Note that because this class is a QMemArray, copying an array and modifying
the copy modifies the original as well - the copy is shallow, not deep.
You must detach() the array in code like this:
void drawGiraffe( const QPointArray & r, QPainter * p )
{
QPointArray tmp = r;
tmp.detach();
// some code that modifies tmp
p->drawPoints( tmp );
}
If you forget the tmp.detach(), the const array will be modified.
See also QPainter, QWMatrix and QMemArray.
Member Function Documentation
QPointArray::QPointArray ()
Constructs a null point array.
See also isNull().
QPointArray::QPointArray ( int size )
Constructs a point array with room for size points. Makes a null
array if size == 0.
See also resize() and isNull().
QPointArray::QPointArray ( const QPointArray & a )
Constructs a shallow copy of the point array a.
See also copy().
QPointArray::QPointArray ( const QRect & r, bool closed = FALSE )
Constructs a point array from the rectangle r.
If closed is FALSE, then the point array just contains the
following four points in the listed order: r.topLeft(),
r.topRight(), r.bottomRight() and r.bottomLeft().
If closed is TRUE, then a fifth point is set to r.topLeft().
QPointArray::QPointArray ( int nPoints, const QCOORD * points )
Constructs a point array with nPoints points, taken from the
points array.
Equivalent to setPoints(nPoints,points).
QPointArray::~QPointArray ()
Destroys the point array.
QRect QPointArray::boundingRect () const
Returns the bounding rectangle of the points in the array, or
QRect(0,0,0,0) if the array is empty.
QPointArray QPointArray::copy () const
Creates a deep copy of the array.
QPointArray QPointArray::cubicBezier () const
Returns the Bezier points for the four control points in this array.
void QPointArray::makeArc ( int x, int y, int w, int h, int a1, int a2 )
Sets the points of the array to those describing an arc of an
ellipse with size w by h and position (x, y ), starting
from angle a1 and spanning a2. The resulting array has sufficient
resolution for pixel accuracy (see the overloaded function which
takes an additional QWMatrix parameter).
Angles are specified in 16ths of a degree, i.e., a full circle equals
5760 (16*360). Positive values mean counter-clockwise, whereas
negative values mean a clockwise direction. Zero degrees is at the 3
o'clock position.
void QPointArray::makeArc ( int x, int y, int w, int h, int a1, int a2, const QWMatrix & xf )
Sets the points of the array to those describing an arc of an
ellipse with size w by h and position (x, y ), starting
from angle a1, spanning a2 and transformed by the matrix xf.
The resulting array has sufficient resolution for pixel accuracy.
Angles are specified in 16ths of a degree, i.e., a full circle equals
5760 (16*360). Positive values mean counter-clockwise, whereas negative
values mean a clockwise direction. Zero degrees is at the 3 o'clock
position.
void QPointArray::makeEllipse ( int x, int y, int w, int h )
Sets the points of the array to those describing an ellipse with
size w by h and position (x, y ).
The returned array has sufficient resolution for use as pixels.
Assigns a shallow copy of a to this point array and returns a
reference to this point array.
Equivalent to assign(a).
See also copy().
void QPointArray::point ( uint index, int * x, int * y ) const
Reads the coordinates of the point at position index within the array
and writes them into *x and *y.
QPoint QPointArray::point ( uint index ) const
Returns the point at position index within the array.
bool QPointArray::putPoints ( int index, int nPoints, int firstx, int firsty, ... )
Copies nPoints points from the variable argument list into
this point array, and resizes the point array if
index+nPoints
exceeds the size of the array.
Returns TRUE if successful, or FALSE if the array could not be
resized (typically due to lack of memory).
The example code creates an array with three points (1,2), (3,4) and
(5,6), by expanding the array from 1 to 3 points:
QPointArray a( 1 );
a[0] = QPoint( 1, 2 );
a.putPoints( 1, 2, 3,4, 5,6 );
This has the same result, but here putPoints overwrites rather than
extends:
QPointArray a( 3 );
a.putPoints( 0, 3, 1,2, 0,0, 5,6 );
a.putPoints( 1, 1, 3,4 );
See also resize() and setPoints().
bool QPointArray::putPoints ( int index, int nPoints, const QCOORD * points )
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
bool QPointArray::putPoints ( int index, int nPoints, const QPointArray & from, int fromIndex = 0 )
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
This version of the function copies nPoints from from into
this array, starting at index in this array and fromIndex in
from. fromIndex is 0 by default.
QPointArray a;
a.putPoints( 0, 3, 1,2, 0,0, 5,6 );
// a is now the three-point array ( 1,2, 0,0, 5,6 );
QPointArray b;
b.putPoints( 0, 3, 4,4, 5,5, 6,6 );
// b is now ( 4,4, 5,5, 6,6 );
a.putPoints( 2, 3, b );
// a is now ( 1,2, 0,0, 4,4, 5,5, 6,6 );
void QPointArray::setPoint ( uint index, int x, int y )
Sets the point at position index in the array to (x,y).
Example: themes/wood.cpp.
void QPointArray::setPoint ( uint i, const QPoint & p )
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
bool QPointArray::setPoints ( int nPoints, const QCOORD * points )
Resizes the array to nPoints and sets the points in the array to
the values taken from points.
Returns TRUE if successful, or FALSE if the array could not be
resized (normally due to lack of memory).
The example code creates an array with two points (1,2) and (3,4):
static QCOORD points[] = { 1,2, 3,4 };
QPointArray a;
a.setPoints( 2, points );
See also resize() and putPoints().
Examples: aclock/aclock.cpp, picture/picture.cpp, themes/metal.cpp and themes/wood.cpp.
bool QPointArray::setPoints ( int nPoints, int firstx, int firsty, ... )
Resizes the array to nPoints and sets the points in the array to
the values taken from the variable argument list.
Returns TRUE if successful, or FALSE if the array could not be
resized (typically due to lack of memory).
The example code creates an array with two points (1,2) and (3,4):
QPointArray a;
a.setPoints( 2, 1,2, 3,4 );
See also resize() and putPoints().
void QPointArray::translate ( int dx, int dy )
Translates all points in the array (dx,dy).
Related Functions
Writes a point array to the stream and returns a reference to the stream.
See also Format of the QDataStream operators.
Reads a point array from the stream and returns a reference to the stream.
See also Format of the QDataStream operators.
Search the documentation, FAQ, qt-interest archive and more (uses
www.trolltech.com):
This file is part of the Qt toolkit,
copyright © 1995-2001
Trolltech, all rights reserved.
Copyright © 2001 Trolltech | Trademarks
| Qt version 3.0.0-beta1-beta1
|