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.
const QMap< QgsPalLayerSettings::DataDefinedProperties, QVariant > & dataDefinedValues() const
Get data-defined values.
pal::LabelInfo * mInfo
extra information for curved labels (may be null)
Class that adds extra information to QgsLabelFeature for text labels.
GEOSGeometry * geometry() const
Get access to the associated geometry.
void setDefinedFont(const QFont &f)
Set font to be used for rendering.
bool qgsDoubleNear(double a, double b, double epsilon=4 *DBL_EPSILON)
Compare two doubles (but allow some difference)
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)
Set 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
Return current map units per pixel.
QSizeF size() const
Size of the label (in map units)
QFont definedFont()
Font to be used for rendering.
The QgsLabelFeature class describes a feature that should be used within the labeling engine...
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.