You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tqt3/doc/man/man3/tqpointarray.3qt

278 lines
10 KiB

'\" t
.TH TQPointArray 3qt "2 February 2007" "Trolltech AS" \" -*- nroff -*-
.\" Copyright 1992-2007 Trolltech ASA. All rights reserved. See the
.\" license file included in the distribution for a complete license
.\" statement.
.\"
.ad l
.nh
.SH NAME
TQPointArray \- Array of points
.SH SYNOPSIS
\fC#include <tqpointarray.h>\fR
.PP
Inherits TQMemArray<TQPoint>.
.PP
.SS "Public Members"
.in +1c
.ti -1c
.BI "\fBTQPointArray\fR ()"
.br
.ti -1c
.BI "\fB~TQPointArray\fR ()"
.br
.ti -1c
.BI "\fBTQPointArray\fR ( int size )"
.br
.ti -1c
.BI "\fBTQPointArray\fR ( const TQPointArray & a )"
.br
.ti -1c
.BI "\fBTQPointArray\fR ( const TQRect & r, bool closed = FALSE )"
.br
.ti -1c
.BI "TQPointArray & \fBoperator=\fR ( const TQPointArray & a )"
.br
.ti -1c
.BI "TQPointArray \fBcopy\fR () const"
.br
.ti -1c
.BI "void \fBtranslate\fR ( int dx, int dy )"
.br
.ti -1c
.BI "TQRect \fBboundingRect\fR () const"
.br
.ti -1c
.BI "void \fBpoint\fR ( uint index, int * x, int * y ) const"
.br
.ti -1c
.BI "TQPoint \fBpoint\fR ( uint index ) const"
.br
.ti -1c
.BI "void \fBsetPoint\fR ( uint index, int x, int y )"
.br
.ti -1c
.BI "void \fBsetPoint\fR ( uint i, const TQPoint & p )"
.br
.ti -1c
.BI "bool \fBputPoints\fR ( int index, int nPoints, int firstx, int firsty, ... )"
.br
.ti -1c
.BI "bool \fBputPoints\fR ( int index, int nPoints, const TQPointArray & from, int fromIndex = 0 )"
.br
.ti -1c
.BI "void \fBmakeArc\fR ( int x, int y, int w, int h, int a1, int a2 )"
.br
.ti -1c
.BI "void \fBmakeEllipse\fR ( int x, int y, int w, int h )"
.br
.ti -1c
.BI "void \fBmakeArc\fR ( int x, int y, int w, int h, int a1, int a2, const TQWMatrix & xf )"
.br
.ti -1c
.BI "TQPointArray \fBcubicBezier\fR () const"
.br
.in -1c
.SH RELATED FUNCTION DOCUMENTATION
.in +1c
.ti -1c
.BI "TQDataStream & \fBoperator<<\fR ( TQDataStream & s, const TQPointArray & a )"
.br
.ti -1c
.BI "TQDataStream & \fBoperator>>\fR ( TQDataStream & s, TQPointArray & a )"
.br
.in -1c
.SH DESCRIPTION
The TQPointArray class provides an array of points.
.PP
A TQPointArray is an array of TQPoint objects. In addition to the functions provided by TQMemArray, TQPointArray provides some point-specific functions.
.PP
For convenient reading and writing of the point data use setPoints(), putPoints(), point(), and setPoint().
.PP
For geometry operations use boundingRect() and translate(). There is also the TQWMatrix::map() function for more general transformations of TQPointArrays. You can also create arcs and ellipses with makeArc() and makeEllipse().
.PP
Among others, TQPointArray is used by TQPainter::drawLineSegments(), TQPainter::drawPolyline(), TQPainter::drawPolygon() and TQPainter::drawCubicBezier().
.PP
Note that because this class is a TQMemArray, copying an array and modifying the copy modifies the original as well, i.e. a shallow copy. If you need a deep copy use copy() or detach(), for example:
.PP
.nf
.br
void drawGiraffe( const TQPointArray & r, TQPainter * p )
.br
{
.br
TQPointArray tmp = r;
.br
tmp.detach();
.br
// some code that modifies tmp
.br
p->drawPoints( tmp );
.br
}
.br
.fi
.PP
If you forget the tmp.detach(), the const array will be modified.
.PP
See also TQPainter, TQWMatrix, TQMemArray, Graphics Classes, Image Processing Classes, and Implicitly and Explicitly Shared Classes.
.SH MEMBER FUNCTION DOCUMENTATION
.SH "TQPointArray::TQPointArray ()"
Constructs a null point array.
.PP
See also isNull().
.SH "TQPointArray::TQPointArray ( int size )"
Constructs a point array with room for \fIsize\fR points. Makes a null array if \fIsize\fR == 0.
.PP
See also resize() and isNull().
.SH "TQPointArray::TQPointArray ( const TQPointArray & a )"
Constructs a shallow copy of the point array \fIa\fR.
.PP
See also copy() and detach().
.SH "TQPointArray::TQPointArray ( const TQRect & r, bool closed = FALSE )"
Constructs a point array from the rectangle \fIr\fR.
.PP
If \fIclosed\fR 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().
.PP
If \fIclosed\fR is TRUE, then a fifth point is set to r.topLeft().
.SH "TQPointArray::~TQPointArray ()"
Destroys the point array.
.SH "TQRect TQPointArray::boundingRect () const"
Returns the bounding rectangle of the points in the array, or TQRect(0,0,0,0) if the array is empty.
.SH "TQPointArray TQPointArray::copy () const"
Creates a deep copy of the array.
.PP
See also detach().
.SH "TQPointArray TQPointArray::cubicBezier () const"
Returns the Bezier points for the four control points in this array.
.SH "void TQPointArray::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, width \fIw\fR by height \fIh\fR, and position (\fIx\fR, \fIy\fR), starting from angle \fIa1\fR and spanning by angle \fIa2\fR. The resulting array has sufficient resolution for pixel accuracy (see the overloaded function which takes an additional TQWMatrix parameter).
.PP
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 the clockwise direction. Zero degrees is at the 3 o'clock position.
.PP
See the angle diagram.
.SH "void TQPointArray::makeArc ( int x, int y, int w, int h, int a1, int a2, const TQWMatrix & xf )"
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP
Sets the points of the array to those describing an arc of an ellipse with width \fIw\fR and height \fIh\fR and position (\fIx\fR, \fIy\fR), starting from angle \fIa1\fR, and spanning angle by \fIa2\fR, and transformed by the matrix \fIxf\fR. The resulting array has sufficient resolution for pixel accuracy.
.PP
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 the clockwise direction. Zero degrees is at the 3 o'clock position.
.PP
See the angle diagram.
.SH "void TQPointArray::makeEllipse ( int x, int y, int w, int h )"
Sets the points of the array to those describing an ellipse with size, width \fIw\fR by height \fIh\fR, and position (\fIx\fR, \fIy\fR).
.PP
The returned array has sufficient resolution for use as pixels.
.SH "TQPointArray & TQPointArray::operator= ( const TQPointArray & a )"
Assigns a shallow copy of \fIa\fR to this point array and returns a reference to this point array.
.PP
Equivalent to assign(a).
.PP
See also copy() and detach().
.SH "void TQPointArray::point ( uint index, int * x, int * y ) const"
Reads the coordinates of the point at position \fIindex\fR within the array and writes them into \fI*x\fR and \fI*y\fR.
.SH "TQPoint TQPointArray::point ( uint index ) const"
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP
Returns the point at position \fIindex\fR within the array.
.SH "bool TQPointArray::putPoints ( int index, int nPoints, int firstx, int firsty, ... )"
Copies \fInPoints\fR points from the variable argument list into this point array from position \fIindex\fR, and resizes the point array if \fCindex+nPoints\fR exceeds the size of the array.
.PP
Returns TRUE if successful, or FALSE if the array could not be resized (typically due to lack of memory).
.PP
The example code creates an array with three points (4,5), (6,7) and (8,9), by expanding the array from 1 to 3 points:
.PP
.nf
.br
TQPointArray a( 1 );
.br
a[0] = TQPoint( 4, 5 );
.br
a.putPoints( 1, 2, 6,7, 8,9 ); // index == 1, points == 2
.br
.fi
.PP
This has the same result, but here putPoints overwrites rather than extends:
.PP
.nf
.br
TQPointArray a( 3 );
.br
a.putPoints( 0, 3, 4,5, 0,0, 8,9 );
.br
a.putPoints( 1, 1, 6,7 );
.br
.fi
.PP
The points are given as a sequence of integers, starting with \fIfirstx\fR then \fIfirsty\fR, and so on.
.PP
See also resize().
.SH "bool TQPointArray::putPoints ( int index, int nPoints, const TQPointArray & from, int fromIndex = 0 )"
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP
This version of the function copies \fInPoints\fR from \fIfrom\fR into this array, starting at \fIindex\fR in this array and \fIfromIndex\fR in \fIfrom\fR. \fIfromIndex\fR is 0 by default.
.PP
.nf
.br
TQPointArray a;
.br
a.putPoints( 0, 3, 1,2, 0,0, 5,6 );
.br
// a is now the three-point array ( 1,2, 0,0, 5,6 );
.br
TQPointArray b;
.br
b.putPoints( 0, 3, 4,4, 5,5, 6,6 );
.br
// b is now ( 4,4, 5,5, 6,6 );
.br
a.putPoints( 2, 3, b );
.br
// a is now ( 1,2, 0,0, 4,4, 5,5, 6,6 );
.br
.fi
.SH "void TQPointArray::setPoint ( uint index, int x, int y )"
Sets the point at position \fIindex\fR in the array to \fI(x, y)\fR.
.PP
Example: themes/wood.cpp.
.SH "void TQPointArray::setPoint ( uint i, const TQPoint & p )"
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP
Sets the point at array index \fIi\fR to \fIp\fR.
.SH "void TQPointArray::translate ( int dx, int dy )"
Translates all points in the array by \fI(dx, dy)\fR.
.SH RELATED FUNCTION DOCUMENTATION
.SH "TQDataStream & operator<< ( TQDataStream & s, const TQPointArray & a )"
Writes the point array, \fIa\fR to the stream \fIs\fR and returns a reference to the stream.
.PP
See also Format of the TQDataStream operators.
.SH "TQDataStream & operator>> ( TQDataStream & s, TQPointArray & a )"
Reads a point array, \fIa\fR from the stream \fIs\fR and returns a reference to the stream.
.PP
See also Format of the TQDataStream operators.
.SH "SEE ALSO"
.BR http://doc.trolltech.com/tqpointarray.html
.BR http://www.trolltech.com/faq/tech.html
.SH COPYRIGHT
Copyright 1992-2007 Trolltech ASA, http://www.trolltech.com. See the
license file included in the distribution for a complete license
statement.
.SH AUTHOR
Generated automatically from the source code.
.SH BUGS
If you find a bug in Qt, please report it as described in
.BR http://doc.trolltech.com/bughowto.html .
Good bug reports help us to help you. Thank you.
.P
The definitive TQt documentation is provided in HTML format; it is
located at $TQTDIR/doc/html and can be read using TQt Assistant or with
a web browser. This man page is provided as a convenience for those
users who prefer man pages, although this format is not officially
supported by Trolltech.
.P
If you find errors in this manual page, please report them to
.BR qt-bugs@trolltech.com .
Please include the name of the manual page (tqpointarray.3qt) and the Qt
version (3.3.8).