# QPointArray Class Reference

The QPointArray class provides an array of points. More...

`#include <qpointarray.h>`

Inherits QArray.

List of all member functions.

## Public Members

- QPointArray ()
- QPointArray ( int size )
- QPointArray ( const QPointArray & a )
- QPointArray ( const QRect & r, bool closed=FALSE )
- QPointArray ( int nPoints, const QCOORD * points )
- QPointArray& operator= ( const QPointArray & a )
- bool fill ( const QPoint & p, int size = -1 )
- QPointArray copy () const
- void translate ( int dx, int dy )
- void point ( uint i, int * x, int * y ) const
- QPoint point ( uint i ) const
- void setPoint ( uint i, 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, ... )
- QPoint at ( uint i ) const
- QPointVal operator[] ( int i )
- QPointVal operator[] ( uint i )
- QPoint operator[] ( int i ) const
- QPoint operator[] ( uint i ) const
- QRect boundingRect () const
- void makeArc ( int x, int y, int w, int h, int a1, int a2 )
- void makeEllipse ( int x, int y, int w, int h )
- QPointArray quadBezier () const

## Related Functions

(Note that these are not member functions.)

- QDataStream & operator<< (QDataStream & s, const QPointArray & a)
- QDataStream & operator>> (QDataStream & s, QPointArray & a)

## Detailed Description

The QPointArray class provides an array of points.

QPointArray is used by the QPainter to draw line segments, polylines, polygons and Bezier curves.

The QPointArray is not an array of QPoint, instead it contains a platform dependent point type to make the QPainter functions more efficient (no conversion needed). On the other hand, QPointArray has member functions that operate on QPoint to make programming easier.

Note that since this class is a QArray, it is explicitly shared and works with shallow copies by default.

Examples: desktop/desktop.cpp drawdemo/drawdemo.cpp picture/picture.cpp aclock/aclock.cpp

## Member Function Documentation

### QPointArray::QPointArray ()

Constructs a null point array.

See also: isNull().

### QPointArray::QPointArray ( const QRect & r, bool closed=FALSE )

Constructs a point array from the rectangle r.

If closed is FALSE, then the point array will contain the following four points (in the listed order):

1. r.topLeft()
2. r.topRight()
3. r.bottomRight()
4. r.bottomLeft()

If closed is TRUE, then a fifth point is set to r.topLeft() to close the point array.

### QPointArray::QPointArray ( const QPointArray & a )

Constructs a shallow copy of the point array a.

See also: copy().

### 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 ( int size )

Constructs a point array with room for size points. Makes a null array if size == 0.

See also: resize() and isNull().

### QPoint QPointArray::at ( uint index ) const

Returns the point at position index in the array.

See also: operator[].

### 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.

### bool QPointArray::fill ( const QPoint & p, int size = -1 )

Fills the point array with the point p. If size is specified as different from -1, then the array will be resized before filled.

Returns TRUE if successful, or FALSE if the memory cannot be allocated (only when size != -1).

See also: resize().

### 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, spanning a2. Angles are specified in 16ths of a degree, i.e. a full circle equals 5760 (16*360). Positive values mean counter-clockwise while negative values mean clockwise direction. Zero degrees is at the 3'o clock position.

### void QPointArray::makeEllipse ( int xx, int yy, int w, int h )

Sets the points of the array to those describing an ellipse with size w by h and position (x, y ).

### QPointArray & QPointArray::operator= ( const QPointArray & a )

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().

### QPoint QPointArray::operator[] ( int i ) const

Returns the point at position index in the array.

### QPoint QPointArray::operator[] ( uint i ) const

Returns the point at position index in the array.

### QPointVal QPointArray::operator[] ( int index )

Returns a reference to the point at position index in the array.

### QPointVal QPointArray::operator[] ( uint index )

Returns a reference to the point at position index in the array.

### QPoint QPointArray::point ( uint index ) const

Returns the point at position index in the array.

### void QPointArray::point ( uint index, int * x, int * y ) const

Returns the point at position index in the array in *x and *y.

Examples: drawdemo/drawdemo.cpp

### bool QPointArray::putPoints ( int index, int nPoints, const QCOORD * points )

Copies nPoints points from the points array into this point array. Will resize this point array if `index+nPoints` exceeds the size of the array.

Returns TRUE if successful, or FALSE if the array could not be resized.

Example:

        QPointArray a( 1 );
        a[0] = QPoint( 1, 2 );
        static QCOORD points[] = { 3,4, 5,6 };
        a.putPoints( 1, 2, points );

The example code creates an array with three points: (1,2), (3,4) and (5,6).

This function differs from setPoints() in that it does not resize the array unless the array size is exceeded.

See also: resize() and setPoints().

### bool QPointArray::putPoints ( int index, int nPoints, int firstx, int firsty, ... )

Copies nPoints points from the variable argument list into this point array. Will resize this point array if `index+nPoints` exceeds the size of the array.

Returns TRUE if successful, or FALSE if the array could not be resized.

Example:

        QPointArray a( 1 );
        a[0] = QPoint( 1, 2 );
        a.putPoints( 1, 2, 3,4, 5,6 );

The example code creates an array with two points (1,2), (3,4) and (5,6).

This function differs from setPoints() because it does not resize the array unless the array size is exceeded.

See also: resize() and setPoints().

### QPointArray QPointArray::quadBezier () const

Returns the Bezier points for the four control points in this array.

Examples: drawdemo/drawdemo.cpp

### void QPointArray::setPoint ( uint i, const QPoint & p )

Equivalent to setPoint( i, p.x(), p.y() ).

### void QPointArray::setPoint ( uint index, int x, int y )

Sets the point at position index in the array to (x,y).

Examples: drawdemo/drawdemo.cpp

### 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.

Example:

        static QCOORD points[] = { 1,2, 3,4 };
        QPointArray a;
        a.setPoints( 2, points );

The example code creates an array with two points (1,2) and (3,4).

See also: resize() and putPoints().

Examples: aclock/aclock.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.

Example:

        QPointArray a;
        a.setPoints( 2, 1,2, 3,4 );

The example code creates an array with two points (1,2) and (3,4).

See also: resize() and putPoints().

### void QPointArray::translate ( int dx, int dy )

Translates all points in the array (dx,dy).

## Related Functions

### QDataStream & operator<< (QDataStream & s, const QPointArray & a)

Writes a point array to the stream and returns a reference to the stream.

The serialization format is:

1. The array size (UINT32)
2. The array points (QPoint)

### QDataStream & operator>> (QDataStream & s, QPointArray & a)

Reads a point array from the stream and returns a reference to the stream.

Search the documentation, FAQ, qt-interest archive and more (uses www.troll.no):

This file is part of the Qt toolkit, copyright © 1995-99 Troll Tech, all rights reserved.

It was generated from the following files:

- qpointarray.h: 1998/12/08
- qpointarray.cpp: 1998/07/03