QGIS API Documentation 3.43.0-Master (32433f7016e)
qgslayoutpoint.h
Go to the documentation of this file.
1/***************************************************************************
2 qgslayoutpoint.h
3 ----------------
4 begin : June 2017
5 copyright : (C) 2017 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSLAYOUTPOINT_H
19#define QGSLAYOUTPOINT_H
20
21#include "qgis_core.h"
22#include "qgis.h"
23#include "qgsconfig.h"
24#include <QPointF>
25
41class CORE_EXPORT QgsLayoutPoint
42{
43 public:
44
49
53 explicit QgsLayoutPoint( QPointF point, Qgis::LayoutUnit units = Qgis::LayoutUnit::Millimeters );
54
60
67 void setPoint( const double x, const double y ) { mX = x; mY = y; }
68
74 double x() const { return mX; }
75
81 void setX( const double x )
82 {
83#ifdef QGISDEBUG
84 Q_ASSERT_X( !std::isnan( x ), "QgsLayoutPoint", "Layout point with NaN coordinates created" );
85#endif
86 mX = x;
87 }
88
94 double y() const { return mY; }
95
101 void setY( const double y )
102 {
103#ifdef QGISDEBUG
104 Q_ASSERT_X( !std::isnan( y ), "QgsLayoutPoint", "Layout point with NaN coordinates created" );
105#endif
106 mY = y;
107 }
108
113 Qgis::LayoutUnit units() const { return mUnits; }
114
120 void setUnits( const Qgis::LayoutUnit units ) { mUnits = units; }
121
127 bool isNull() const;
128
134 QPointF toQPointF() const;
135
140 QString encodePoint() const;
141
146 static QgsLayoutPoint decodePoint( const QString &string );
147
148 bool operator==( const QgsLayoutPoint &other ) const;
149 bool operator!=( const QgsLayoutPoint &other ) const;
150
154 QgsLayoutPoint operator*( double v ) const;
155
159 QgsLayoutPoint operator*=( double v );
160
164 QgsLayoutPoint operator/( double v ) const;
165
169 QgsLayoutPoint operator/=( double v );
170
171#ifdef SIP_RUN
172 SIP_PYOBJECT __repr__();
173 % MethodCode
174 QString str = QStringLiteral( "<QgsLayoutPoint: %1, %2 %3 >" ).arg( sipCpp->x() ).arg( sipCpp->y() ).arg( QgsUnitTypes::toAbbreviatedString( sipCpp->units() ) );
175 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
176 % End
177#endif
178
179 private:
180
181 double mX = 0.0;
182 double mY = 0.0;
184
185};
186
187#endif // QGSLAYOUTPOINT_H
LayoutUnit
Layout measurement units.
Definition qgis.h:5033
@ Millimeters
Millimeters.
Provides a method of storing points, consisting of an x and y coordinate, for use in QGIS layouts.
double x() const
Returns x coordinate of point.
void setX(const double x)
Sets the x coordinate of point.
void setUnits(const Qgis::LayoutUnit units)
Sets the units for the point.
double y() const
Returns y coordinate of point.
Qgis::LayoutUnit units() const
Returns the units for the point.
void setY(const double y)
Sets y coordinate of point.
void setPoint(const double x, const double y)
Sets new x and y coordinates for the point.
static Q_INVOKABLE QString toAbbreviatedString(Qgis::DistanceUnit unit)
Returns a translated abbreviation representing a distance unit.
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
QgsMargins operator*(const QgsMargins &margins, double factor)
Returns a QgsMargins object that is formed by multiplying each component of the given margins by fact...
Definition qgsmargins.h:249
QgsMargins operator/(const QgsMargins &margins, double divisor)
Returns a QgsMargins object that is formed by dividing the components of the given margins by the giv...
Definition qgsmargins.h:269