102 std::size_t maximumPointCandidates()
const;
107 std::size_t maximumLineCandidates()
const;
112 std::size_t maximumPolygonCandidates()
const;
117 std::vector<std::unique_ptr<LabelPosition> > createCandidates(
Pal *
pal );
127 std::size_t createCandidatesAroundPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
137 std::size_t createCandidatesOverPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
147 std::size_t createCandidateCenteredOverPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
155 std::unique_ptr< LabelPosition > createCandidatePointOnSurface(
PointSet *mapShape );
165 std::size_t createCandidatesAtOrderedPositionsOverPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
175 std::size_t createCandidatesAlongLine( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
bool allowOverrun,
Pal *
pal );
184 std::size_t createHorizontalCandidatesAlongLine( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
Pal *
pal );
194 std::size_t createCandidatesAlongLineNearStraightSegments( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
Pal *
pal );
206 std::size_t createCandidatesAlongLineNearMidpoint( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
double initialCost = 0.0,
Pal *
pal =
nullptr );
219 std::unique_ptr< LabelPosition > curvedPlacementAtOffset(
PointSet *mapShape,
const std::vector<double> &pathDistances,
231 std::size_t createCurvedCandidatesAlongLine( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
bool allowOverrun,
Pal *
pal );
240 std::size_t createCandidatesForPolygon( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
Pal *
pal );
248 std::size_t createCandidatesOutsidePolygon( std::vector<std::unique_ptr<LabelPosition> > &lPos,
Pal *
pal );
256 bool hasSameLabelFeatureAs(
FeaturePart *part )
const;
261 double getLabelWidth(
double angle = 0.0 )
const {
return mLF->size( angle ).width(); }
266 double getLabelHeight(
double angle = 0.0 )
const {
return mLF->size( angle ).height(); }
316 void addSizePenalty( std::vector<std::unique_ptr<LabelPosition> > &lPos,
double bbx[4],
double bby[4] )
const;
322 double calculatePriority()
const;
325 bool onlyShowUprightLabels()
const;
331 int totalRepeats()
const;
337 void setTotalRepeats(
int repeats );
351 int mTotalRepeats = 0;
353 mutable std::size_t mCachedMaxLineCandidates = 0;
354 mutable std::size_t mCachedMaxPolygonCandidates = 0;
LabelLineDirection
Controls behavior of curved text with respect to line directions.
QFlags< CurvedTextFlag > CurvedTextFlags
Flags controlling behavior of curved text generation.