15 #ifndef QGSPALGEOMETRY_H 16 #define QGSPALGEOMETRY_H 53 QString
text(
int partId )
const 62 void calculateInfo(
bool curvedLabeling, QFontMetricsF *fm,
const QgsMapToPixel *xform,
double fontScale,
double maxinangle,
double maxoutangle )
73 if ( maxinangle < 20.0 )
75 if ( 60.0 < maxinangle )
77 if ( maxoutangle > -20.0 )
79 if ( -95.0 > maxoutangle )
84 double labelHeight = mapScale * fm->height() / fontScale;
95 for (
int i = 0; i <
mClusters.count(); i++ )
100 if ( curvedLabeling )
102 wordSpaceFix = qreal( 0.0 );
103 if (
mClusters[i] == QLatin1String(
" " ) )
107 wordSpaceFix = ( nxt <
mClusters.count() &&
mClusters[nxt] != QLatin1String(
" " ) ) ? wordSpacing : qreal( 0.0 );
115 wordSpaceFix -= wordSpacing;
118 charWidth = fm->width( QString(
mClusters[i] ) ) + wordSpaceFix;
121 double labelWidth = mapScale * charWidth / fontScale;
151 #endif //QGSPALGEOMETRY_H QFontMetricsF * mFontMetrics
Metrics of the font for rendering.
QgsTextLabelFeature(QgsFeatureId id, GEOSGeometry *geometry, const QSizeF &size)
Construct text label feature.
QString mLabelText
text of the label
QStringList mClusters
List of graphemes (used for curved labels)
~QgsTextLabelFeature()
Clean up.
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference)
const QMap< QgsPalLayerSettings::DataDefinedProperties, QVariant > & dataDefinedValues() const
Gets data-defined values.
pal::LabelInfo * mInfo
extra information for curved labels (may be nullptr)
Class that adds extra information to QgsLabelFeature for text labels.
GEOSGeometry * geometry() const
Gets access to the associated geometry.
void setDefinedFont(const QFont &f)
Sets font to be used for rendering.
CharacterInfo * char_info
Perform transforms between map coordinates and device coordinates.
QMap< QgsPalLayerSettings::DataDefinedProperties, QVariant > mDataDefinedValues
Stores attribute values for data defined properties.
void setDataDefinedValues(const QMap< QgsPalLayerSettings::DataDefinedProperties, QVariant > &values)
Sets data-defined values.
Optional additional info about label (for curved labels)
void calculateInfo(bool curvedLabeling, QFontMetricsF *fm, const QgsMapToPixel *xform, double fontScale, double maxinangle, double maxoutangle)
calculate data for info(). setDefinedFont() must have been called already.
QString text(int partId) const
Returns the text component corresponding to a specified label part.
double mapUnitsPerPixel() const
Returns current map units per pixel.
QFont definedFont()
Font to be used for rendering.
The QgsLabelFeature class describes a feature that should be used within the labeling engine...
QSizeF size(double angle=0.0) const
Size of the label (in map units)
static QStringList splitToGraphemes(const QString &text)
Splits a text string to a list of graphemes, which are the smallest allowable character divisions in ...
QFont mDefinedFont
Font for rendering.
QFontMetricsF * labelFontMetrics()
Metrics of the font for rendering.