Quantum GIS API Documentation  1.8
Public Member Functions | Protected Attributes
QgsRectangle Class Reference

A rectangle specified with double values. More...

#include <qgsrectangle.h>

List of all members.

Public Member Functions

 QgsRectangle (double xmin=0, double ymin=0, double xmax=0, double ymax=0)
 Constructor.
 QgsRectangle (QgsPoint const &p1, QgsPoint const &p2)
 Construct a rectangle from two points. The rectangle is normalized after construction.
 QgsRectangle (const QgsRectangle &other)
 Copy constructor.
 ~QgsRectangle ()
 Destructor.
void set (const QgsPoint &p1, const QgsPoint &p2)
 Set the rectangle from two QgsPoints. The rectangle is.
void set (double xmin, double ymin, double xmax, double ymax)
 Set the rectangle from four points. The rectangle is.
void setXMinimum (double x)
 Set the minimum x value.
void setXMaximum (double x)
 Set the maximum x value.
void setYMinimum (double y)
 Set the minimum y value.
void setYMaximum (double y)
 Set the maximum y value.
void setMinimal ()
 Set a rectangle so that min corner is at max.
double xMaximum () const
 Get the x maximum value (right side of rectangle)
double xMinimum () const
 Get the x minimum value (left side of rectangle)
double yMaximum () const
 Get the y maximum value (top side of rectangle)
double yMinimum () const
 Get the y minimum value (bottom side of rectangle)
void normalize ()
 Normalize the rectangle so it has non-negative width/height.
double width () const
 Width of the rectangle.
double height () const
 Height of the rectangle.
QgsPoint center () const
 Center point of the rectangle.
void scale (double, const QgsPoint *c=0)
 Scale the rectangle around its center point.
void expand (double, const QgsPoint *c=0)
 Expand the rectangle to support zoom out scaling.
QgsRectangle intersect (const QgsRectangle *rect) const
 return the intersection with the given rectangle
bool intersects (const QgsRectangle &rect) const
 returns true when rectangle intersects with other rectangle
bool contains (const QgsRectangle &rect) const
 return true when rectangle contains other rectangle
bool contains (const QgsPoint &p) const
 return true when rectangle contains a point
void combineExtentWith (QgsRectangle *rect)
 expand the rectangle so that covers both the original rectangle and the given rectangle
void combineExtentWith (double x, double y)
 expand the rectangle so that covers both the original rectangle and the given point
bool isEmpty () const
 test if rectangle is empty
QString asWktCoordinates () const
 returns string representation in Wkt form
QString toString (bool automaticPrecision=false) const
 returns string representation of form xmin,ymin xmax,ymax
QString toString (int thePrecision) const
 overloaded toString that allows precision of numbers to be set
QString asPolygon () const
 returns rectangle s a polygon
bool operator== (const QgsRectangle &r1) const
bool operator!= (const QgsRectangle &r1) const
QgsRectangleoperator= (const QgsRectangle &r1)
void unionRect (const QgsRectangle &rect)
 updates rectangle to include passed argument
bool isFinite () const
 Returns true if the rectangle has finite boundaries.
void invert ()
 swap x/y

Protected Attributes

double xmin
double ymin
double xmax
double ymax

Detailed Description

A rectangle specified with double values.

QgsRectangle is used to store a rectangle when double values are required. Examples are storing a layer extent or the current view extent of a map

Definition at line 34 of file qgsrectangle.h.


Constructor & Destructor Documentation

QgsRectangle::QgsRectangle ( double  xmin = 0,
double  ymin = 0,
double  xmax = 0,
double  ymax = 0 
)

Constructor.

Definition at line 29 of file qgsrectangle.cpp.

References normalize().

Referenced by intersect().

QgsRectangle::QgsRectangle ( QgsPoint const &  p1,
QgsPoint const &  p2 
)

Construct a rectangle from two points. The rectangle is normalized after construction.

Definition at line 35 of file qgsrectangle.cpp.

Copy constructor.

Definition at line 40 of file qgsrectangle.cpp.

References xmax, xMaximum(), xmin, xMinimum(), ymax, yMaximum(), ymin, and yMinimum().

Destructor.

Definition at line 143 of file qgsrectangle.h.


Member Function Documentation

QString QgsRectangle::asPolygon ( ) const

returns rectangle s a polygon

Definition at line 250 of file qgsrectangle.cpp.

References xmax, xmin, ymax, and ymin.

QString QgsRectangle::asWktCoordinates ( ) const

returns string representation in Wkt form

Definition at line 199 of file qgsrectangle.cpp.

References xmax, xmin, ymax, and ymin.

QgsPoint QgsRectangle::center ( ) const [inline]

expand the rectangle so that covers both the original rectangle and the given rectangle

Definition at line 172 of file qgsrectangle.cpp.

References xmax, xMaximum(), xmin, xMinimum(), ymax, yMaximum(), ymin, and yMinimum().

Referenced by QgsVectorLayer::boundingBoxOfSelected(), QgsRasterProjector::calcSrcExtent(), QgsCoordinateTransform::transformBoundingBox(), and QgsVectorLayer::updateExtents().

void QgsRectangle::combineExtentWith ( double  x,
double  y 
)

expand the rectangle so that covers both the original rectangle and the given point

Definition at line 183 of file qgsrectangle.cpp.

References xmax, xmin, ymax, and ymin.

bool QgsRectangle::contains ( const QgsRectangle rect) const

return true when rectangle contains other rectangle

Note:
added in version 1.1

Definition at line 161 of file qgsrectangle.cpp.

References xmax, xmin, ymax, and ymin.

Referenced by QgsVectorLayer::snapWithContext().

bool QgsRectangle::contains ( const QgsPoint p) const

return true when rectangle contains a point

Note:
added in version 1.3

Definition at line 166 of file qgsrectangle.cpp.

References QgsPoint::x(), xmax, xmin, QgsPoint::y(), ymax, and ymin.

void QgsRectangle::expand ( double  scaleFactor,
const QgsPoint c = 0 
)

Expand the rectangle to support zoom out scaling.

Definition at line 109 of file qgsrectangle.cpp.

References height(), width(), QgsPoint::x(), xmax, xmin, QgsPoint::y(), ymax, and ymin.

Referenced by QgsMapToolZoom::canvasReleaseEvent(), and QgsMapCanvas::zoomToSelected().

double QgsRectangle::height ( ) const [inline]
bool QgsRectangle::intersects ( const QgsRectangle rect) const

returns true when rectangle intersects with other rectangle

Definition at line 148 of file qgsrectangle.cpp.

References xmax, xmin, ymax, and ymin.

Referenced by intersect(), and QgsVectorLayer::snapWithContext().

swap x/y

Note:
added in 1.9

Definition at line 327 of file qgsrectangle.cpp.

References xmax, xmin, ymax, and ymin.

bool QgsRectangle::isEmpty ( ) const
bool QgsRectangle::isFinite ( ) const

Returns true if the rectangle has finite boundaries.

Will return false if any of the rectangle boundaries are NaN or Inf.

Definition at line 314 of file qgsrectangle.cpp.

References xmax, xmin, ymax, and ymin.

Referenced by QgsMapRenderer::render().

Normalize the rectangle so it has non-negative width/height.

Definition at line 66 of file qgsrectangle.cpp.

References xmax, xmin, ymax, and ymin.

Referenced by QgsMapToolZoom::canvasReleaseEvent(), QgsVectorLayer::invertSelectionInRectangle(), QgsRectangle(), QgsVectorLayer::select(), and set().

bool QgsRectangle::operator!= ( const QgsRectangle r1) const

Comparison operator

Returns:
False if rectangles are equal

Definition at line 282 of file qgsrectangle.cpp.

QgsRectangle & QgsRectangle::operator= ( const QgsRectangle r1)

Assignment operator

Parameters:
r1QgsRectangle to assign from

Definition at line 288 of file qgsrectangle.cpp.

References xmax, xMaximum(), xmin, xMinimum(), ymax, yMaximum(), ymin, and yMinimum().

bool QgsRectangle::operator== ( const QgsRectangle r1) const

Comparison operator

Returns:
True if rectangles are equal

Definition at line 273 of file qgsrectangle.cpp.

References xMaximum(), xMinimum(), yMaximum(), and yMinimum().

void QgsRectangle::scale ( double  scaleFactor,
const QgsPoint c = 0 
)
void QgsRectangle::set ( const QgsPoint p1,
const QgsPoint p2 
)

Set the rectangle from two QgsPoints. The rectangle is.

Definition at line 48 of file qgsrectangle.cpp.

References normalize(), QgsPoint::x(), xmax, xmin, QgsPoint::y(), ymax, and ymin.

Referenced by QgsVectorLayer::boundingBoxOfSelected(), QgsRasterLayer::draw(), and QgsMapRenderer::updateFullExtent().

void QgsRectangle::set ( double  xmin,
double  ymin,
double  xmax,
double  ymax 
)

Set the rectangle from four points. The rectangle is.

Definition at line 57 of file qgsrectangle.cpp.

References normalize(), xmax, xmin, ymax, and ymin.

void QgsRectangle::setXMaximum ( double  x) [inline]
void QgsRectangle::setXMinimum ( double  x) [inline]
void QgsRectangle::setYMaximum ( double  y) [inline]
void QgsRectangle::setYMinimum ( double  y) [inline]
QString QgsRectangle::toString ( bool  automaticPrecision = false) const
QString QgsRectangle::toString ( int  thePrecision) const

overloaded toString that allows precision of numbers to be set

Definition at line 231 of file qgsrectangle.cpp.

References isEmpty(), QgsDebugMsgLevel, xmax, xmin, ymax, and ymin.

void QgsRectangle::unionRect ( const QgsRectangle rect)

updates rectangle to include passed argument

Definition at line 302 of file qgsrectangle.cpp.

References setXMaximum(), setXMinimum(), setYMaximum(), setYMinimum(), xMaximum(), xMinimum(), yMaximum(), and yMinimum().

Referenced by QgsMapRenderer::updateFullExtent().

double QgsRectangle::width ( ) const [inline]
double QgsRectangle::xMaximum ( ) const [inline]

Get the x maximum value (right side of rectangle)

Definition at line 167 of file qgsrectangle.h.

References xmax.

Referenced by QgsFeatureRendererV2::_getLineString(), QgsFeatureRendererV2::_getPolygon(), QgsMapRenderer::adjustExtentToSize(), QgsVectorLayer::boundingBoxOfSelected(), QgsRasterProjector::calcSrcExtent(), QgsScaleCalculator::calculate(), QgsScaleCalculator::calculateGeographicDistance(), QgsZonalStatistics::cellInfoForBBox(), QgsClipper::clippedLineWKB(), combineExtentWith(), QgsClipper::connectSeparatedLines(), QgsRasterImageBuffer::createNextPartImage(), QgsRasterLayer::draw(), QgsMapOverviewCanvas::drawExtentRect(), QgsPalLabeling::drawLabeling(), QgsPALObjectPositionManager::findObjectPositions(), QgsGeometry::fromRect(), intersect(), QgsClipper::intersectRect(), QgsMapCanvas::keyPressEvent(), QgsComposerMap::mapPolygon(), QgsComposerMap::mapToItemCoords(), QgsVectorLayer::metadata(), QgsComposerMap::moveContent(), operator=(), operator==(), QgsComposerMap::paint(), QgsRectangle(), QgsRasterLayer::readData(), QgsRasterCalculator::readRasterPart(), QgsSpatialIndex::rectToRegion(), QgsVectorLayer::setDataProvider(), QgsMapRenderer::setExtent(), QgsMapCanvasItem::setRect(), QgsComposerMap::setSceneRect(), QgsVectorLayer::splitFeatures(), QgsMapRenderer::splitLayersExtent(), QgsCoordinateTransform::transform(), QgsComposerMap::transformedExtent(), QgsClipper::trimPolygon(), unionRect(), QgsVectorLayer::updateExtents(), QgsMapRenderer::updateFullExtent(), QgsComposerMap::writeXML(), QgsMapRenderer::writeXML(), and QgsComposerMap::zoomContent().

double QgsRectangle::xMinimum ( ) const [inline]

Get the x minimum value (left side of rectangle)

Definition at line 172 of file qgsrectangle.h.

References xmin.

Referenced by QgsFeatureRendererV2::_getLineString(), QgsFeatureRendererV2::_getPolygon(), QgsMapRenderer::adjustExtentToSize(), QgsRasterProjector::approximateSrcRowCol(), QgsVectorLayer::boundingBoxOfSelected(), QgsComposerMap::cache(), QgsRasterProjector::calcHelper(), QgsRasterProjector::calcSrcExtent(), QgsScaleCalculator::calculate(), QgsScaleCalculator::calculateGeographicDistance(), QgsZonalStatistics::cellInfoForBBox(), QgsClipper::clippedLineWKB(), combineExtentWith(), QgsComposerMap::composerMapPosForItem(), QgsClipper::connectSeparatedLines(), QgsRasterImageBuffer::createNextPartImage(), QgsRasterProjector::destPointOnCPMatrix(), QgsRasterLayer::draw(), QgsMapOverviewCanvas::drawExtentRect(), QgsPalLabeling::drawLabeling(), QgsGeometryAnalyzer::extent(), QgsPALObjectPositionManager::findObjectPositions(), QgsGeometry::fromRect(), intersect(), QgsClipper::intersectRect(), QgsMapCanvas::keyPressEvent(), QgsComposerMap::mapPolygon(), QgsComposerMap::mapToItemCoords(), QgsVectorLayer::metadata(), QgsComposerMap::moveContent(), operator=(), operator==(), QgsRasterCalculator::outputGeoTransform(), QgsComposerMap::paint(), QgsRasterProjector::preciseSrcRowCol(), QgsRectangle(), QgsRasterLayer::readData(), QgsRasterCalculator::readRasterPart(), QgsSpatialIndex::rectToRegion(), QgsMapCanvas::saveAsImage(), QgsVectorLayer::setDataProvider(), QgsMapRenderer::setExtent(), QgsMapCanvasItem::setRect(), QgsComposerMap::setSceneRect(), QgsVectorLayer::splitFeatures(), QgsMapRenderer::splitLayersExtent(), QgsZonalStatistics::statisticsFromMiddlePointTest(), QgsZonalStatistics::statisticsFromMiddlePointTest_improved(), QgsZonalStatistics::statisticsFromPreciseIntersection(), QgsCoordinateTransform::transform(), QgsCoordinateTransform::transformBoundingBox(), QgsComposerMap::transformedExtent(), QgsClipper::trimPolygon(), unionRect(), QgsVectorLayer::updateExtents(), QgsMapRenderer::updateFullExtent(), QgsGridFileWriter::writeFile(), QgsGridFileWriter::writeHeader(), QgsComposerMap::writeXML(), QgsMapRenderer::writeXML(), and QgsComposerMap::zoomContent().

double QgsRectangle::yMaximum ( ) const [inline]

Get the y maximum value (top side of rectangle)

Definition at line 177 of file qgsrectangle.h.

References ymax.

Referenced by QgsFeatureRendererV2::_getLineString(), QgsFeatureRendererV2::_getPolygon(), QgsMapRenderer::adjustExtentToSize(), QgsRasterProjector::approximateSrcRowCol(), QgsVectorLayer::boundingBoxOfSelected(), QgsRasterProjector::calcSrcExtent(), QgsScaleCalculator::calculateGeographicDistance(), QgsZonalStatistics::cellInfoForBBox(), QgsClipper::clippedLineWKB(), combineExtentWith(), QgsComposerMap::composerMapPosForItem(), QgsClipper::connectSeparatedLines(), QgsRasterImageBuffer::createNextPartImage(), QgsRasterProjector::destPointOnCPMatrix(), QgsRasterLayer::draw(), QgsMapOverviewCanvas::drawExtentRect(), QgsPalLabeling::drawLabeling(), QgsPALObjectPositionManager::findObjectPositions(), QgsGeometry::fromRect(), intersect(), QgsClipper::intersectRect(), QgsMapCanvas::keyPressEvent(), QgsComposerMap::mapPolygon(), QgsComposerMap::mapToItemCoords(), QgsVectorLayer::metadata(), QgsComposerMap::moveContent(), operator=(), operator==(), QgsRasterCalculator::outputGeoTransform(), QgsComposerMap::paint(), QgsRasterProjector::preciseSrcRowCol(), QgsRectangle(), QgsRasterLayer::readData(), QgsRasterCalculator::readRasterPart(), QgsSpatialIndex::rectToRegion(), QgsMapCanvas::saveAsImage(), QgsVectorLayer::setDataProvider(), QgsMapRenderer::setExtent(), QgsMapCanvasItem::setRect(), QgsVectorLayer::splitFeatures(), QgsMapRenderer::splitLayersExtent(), QgsZonalStatistics::statisticsFromMiddlePointTest(), QgsZonalStatistics::statisticsFromMiddlePointTest_improved(), QgsZonalStatistics::statisticsFromPreciseIntersection(), QgsCoordinateTransform::transform(), QgsComposerMap::transformedExtent(), QgsClipper::trimPolygon(), unionRect(), QgsVectorLayer::updateExtents(), QgsMapRenderer::updateFullExtent(), QgsGridFileWriter::writeFile(), QgsComposerMap::writeXML(), QgsMapRenderer::writeXML(), and QgsComposerMap::zoomContent().

double QgsRectangle::yMinimum ( ) const [inline]

Get the y minimum value (bottom side of rectangle)

Definition at line 182 of file qgsrectangle.h.

References ymin.

Referenced by QgsFeatureRendererV2::_getLineString(), QgsFeatureRendererV2::_getPolygon(), QgsMapRenderer::adjustExtentToSize(), QgsVectorLayer::boundingBoxOfSelected(), QgsComposerMap::cache(), QgsRasterProjector::calcSrcExtent(), QgsScaleCalculator::calculateGeographicDistance(), QgsZonalStatistics::cellInfoForBBox(), QgsClipper::clippedLineWKB(), combineExtentWith(), QgsClipper::connectSeparatedLines(), QgsRasterLayer::draw(), QgsMapOverviewCanvas::drawExtentRect(), QgsPalLabeling::drawLabeling(), QgsPALObjectPositionManager::findObjectPositions(), QgsGeometry::fromRect(), intersect(), QgsClipper::intersectRect(), QgsMapCanvas::keyPressEvent(), QgsComposerMap::mapPolygon(), QgsComposerMap::mapToItemCoords(), QgsVectorLayer::metadata(), QgsComposerMap::moveContent(), operator=(), operator==(), QgsComposerMap::paint(), QgsRectangle(), QgsRasterLayer::readData(), QgsRasterCalculator::readRasterPart(), QgsSpatialIndex::rectToRegion(), QgsVectorLayer::setDataProvider(), QgsMapRenderer::setExtent(), QgsMapCanvasItem::setRect(), QgsComposerMap::setSceneRect(), QgsVectorLayer::splitFeatures(), QgsMapRenderer::splitLayersExtent(), QgsCoordinateTransform::transform(), QgsCoordinateTransform::transformBoundingBox(), QgsComposerMap::transformedExtent(), QgsClipper::trimPolygon(), unionRect(), QgsVectorLayer::updateExtents(), QgsMapRenderer::updateFullExtent(), QgsGridFileWriter::writeHeader(), QgsComposerMap::writeXML(), QgsMapRenderer::writeXML(), and QgsComposerMap::zoomContent().


Member Data Documentation

double QgsRectangle::xmax [protected]
double QgsRectangle::xmin [protected]
double QgsRectangle::ymax [protected]
double QgsRectangle::ymin [protected]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines