109 std::size_t maximumPointCandidates()
const;
114 std::size_t maximumLineCandidates()
const;
119 std::size_t maximumPolygonCandidates()
const;
124 std::vector<std::unique_ptr<LabelPosition> > createCandidates(
Pal *
pal );
134 std::size_t createCandidatesAroundPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
144 std::size_t createCandidatesOverPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
154 std::size_t createCandidateCenteredOverPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
162 std::unique_ptr< LabelPosition > createCandidatePointOnSurface(
PointSet *mapShape );
172 std::size_t createCandidatesAtOrderedPositionsOverPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
182 std::size_t createCandidatesAlongLine( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
bool allowOverrun,
Pal *
pal );
191 std::size_t createHorizontalCandidatesAlongLine( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
Pal *
pal );
201 std::size_t createCandidatesAlongLineNearStraightSegments( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
Pal *
pal );
213 std::size_t createCandidatesAlongLineNearMidpoint( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
double initialCost = 0.0,
Pal *
pal =
nullptr );
226 std::unique_ptr< LabelPosition > curvedPlacementAtOffset(
PointSet *mapShape,
const std::vector<double> &pathDistances,
228 QgsTextRendererUtils::CurvedTextFlags flags );
238 std::size_t createCurvedCandidatesAlongLine( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
bool allowOverrun,
Pal *
pal );
247 std::size_t createCandidatesForPolygon( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
Pal *
pal );
255 std::size_t createCandidatesOutsidePolygon( std::vector<std::unique_ptr<LabelPosition> > &lPos,
Pal *
pal );
263 bool hasSameLabelFeatureAs(
FeaturePart *part )
const;
268 double getLabelWidth(
double angle = 0.0 )
const {
return mLF->size( angle ).width(); }
273 double getLabelHeight(
double angle = 0.0 )
const {
return mLF->size( angle ).height(); }
323 void addSizePenalty( std::vector<std::unique_ptr<LabelPosition> > &lPos,
double bbx[4],
double bby[4] )
const;
329 double calculatePriority()
const;
332 bool onlyShowUprightLabels()
const;
338 int totalRepeats()
const;
344 void setTotalRepeats(
int repeats );
358 int mTotalRepeats = 0;
360 mutable std::size_t mCachedMaxLineCandidates = 0;
361 mutable std::size_t mCachedMaxPolygonCandidates = 0;
LabelLineDirection
Controls behavior of curved text with respect to line directions.