106 int subPartId()
const;
111 std::size_t maximumPointCandidates()
const;
116 std::size_t maximumLineCandidates()
const;
121 std::size_t maximumPolygonCandidates()
const;
126 std::vector<std::unique_ptr<LabelPosition> > createCandidates(
Pal *
pal );
136 std::size_t createCandidatesAroundPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
146 std::size_t createCandidatesOverPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
156 std::size_t createCandidateCenteredOverPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
164 std::unique_ptr< LabelPosition > createCandidatePointOnSurface(
PointSet *mapShape );
174 std::size_t createCandidatesAtOrderedPositionsOverPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
184 std::size_t createCandidatesAlongLine( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
bool allowOverrun,
Pal *
pal );
193 std::size_t createHorizontalCandidatesAlongLine( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
Pal *
pal );
203 std::size_t createCandidatesAlongLineNearStraightSegments( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
Pal *
pal );
215 std::size_t createCandidatesAlongLineNearMidpoint( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
double initialCost = 0.0,
Pal *
pal =
nullptr );
230 std::unique_ptr< LabelPosition > curvedPlacementAtOffset(
PointSet *mapShape,
const std::vector<double> &pathDistances,
242 std::size_t createCurvedCandidatesAlongLine( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
bool allowOverrun,
Pal *
pal );
252 std::size_t createDefaultCurvedCandidatesAlongLine( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
bool allowOverrun,
Pal *
pal );
261 std::size_t createCurvedCandidateWithCharactersAtVertices( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
Pal *
pal );
270 std::size_t createCandidatesForPolygon( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
Pal *
pal );
278 std::size_t createCandidatesOutsidePolygon( std::vector<std::unique_ptr<LabelPosition> > &lPos,
Pal *
pal );
286 bool hasSameLabelFeatureAs(
FeaturePart *part )
const;
346 void addSizePenalty( std::vector<std::unique_ptr<LabelPosition> > &lPos,
double bbx[4],
double bby[4] )
const;
352 double calculatePriority()
const;
355 bool onlyShowUprightLabels()
const;
361 int totalRepeats()
const;
367 void setTotalRepeats(
int repeats );
381 int mTotalRepeats = 0;
383 mutable std::size_t mCachedMaxLineCandidates = 0;
384 mutable std::size_t mCachedMaxPolygonCandidates = 0;
LabelLineDirection
Controls behavior of curved text with respect to line directions.