QGIS API Documentation
3.14.0-Pi (9f7028fd23)
|
Go to the documentation of this file.
49 if ( mRatio.width() > 0 && mRatio.height() > 0 )
51 double width = std::fabs( p.
x() - mStartPoint.
x() );
52 double height = width * ( mRatio.width() / mRatio.height() );
53 if ( p.
y() - mStartPoint.
y() < 0 )
55 p.
setY( mStartPoint.
y() + height );
59 calculateEndPoint( mEndPoint );
66 mEndPoint = mStartPoint;
78 calculateEndPoint( mEndPoint );
88 if ( mStartPoint.
x() != mEndPoint.
x() && mStartPoint.
y() != mEndPoint.
y() )
98 void QgsMapToolExtent::calculateEndPoint(
QgsPointXY &point )
100 if ( mRatio.width() > 0 && mRatio.height() > 0 )
102 double width = std::fabs( point.
x() - mStartPoint.
x() );
103 double height = width * mRatio.height() / mRatio.width();
104 if ( point.
y() - mStartPoint.
y() < 0 )
106 point.
setY( mStartPoint.
y() + height );
110 void QgsMapToolExtent::drawExtent()
void reset(T *p=nullptr)
Will reset the managed pointer to p.
void reset(QgsWkbTypes::GeometryType geometryType=QgsWkbTypes::LineGeometry)
Clears all the geometries in this rubberband.
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
void setY(double y)
Sets the y value of the point.
void addPoint(const QgsPointXY &p, bool doUpdate=true, int geometryIndex=0, int ringIndex=0)
Adds a vertex to the rubberband and update canvas.