103 int subPartId()
const;
108 std::size_t maximumPointCandidates()
const;
113 std::size_t maximumLineCandidates()
const;
118 std::size_t maximumPolygonCandidates()
const;
123 std::vector<std::unique_ptr<LabelPosition> > createCandidates(
Pal *
pal );
133 std::size_t createCandidatesAroundPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
143 std::size_t createCandidatesOverPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
153 std::size_t createCandidateCenteredOverPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
161 std::unique_ptr< LabelPosition > createCandidatePointOnSurface(
PointSet *mapShape );
171 std::size_t createCandidatesAtOrderedPositionsOverPoint(
double x,
double y, std::vector<std::unique_ptr<LabelPosition> > &lPos,
double angle );
181 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,
double angle );
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 );
228 std::unique_ptr< LabelPosition > curvedPlacementAtOffset(
230 const std::vector<double> &pathDistances,
233 bool &labeledLineSegmentIsRightToLeft,
234 bool applyAngleConstraints,
236 double additionalCharacterSpacing,
237 double additionalWordSpacing
248 std::size_t createCurvedCandidatesAlongLine( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
bool allowOverrun,
Pal *
pal );
258 std::size_t createDefaultCurvedCandidatesAlongLine( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
bool allowOverrun,
Pal *
pal );
267 std::size_t createCurvedCandidateWithCharactersAtVertices( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
Pal *
pal );
276 std::size_t createCandidatesForPolygon( std::vector<std::unique_ptr<LabelPosition> > &lPos,
PointSet *mapShape,
Pal *
pal );
284 std::size_t createCandidatesOutsidePolygon( std::vector<std::unique_ptr<LabelPosition> > &lPos,
Pal *
pal );
292 bool hasSameLabelFeatureAs(
FeaturePart *part )
const;
352 void addSizePenalty( std::vector<std::unique_ptr<LabelPosition> > &lPos,
double bbx[4],
double bby[4] )
const;
358 double calculatePriority()
const;
361 bool onlyShowUprightLabels()
const;
367 int totalRepeats()
const;
373 void setTotalRepeats(
int repeats );
385 int mTotalRepeats = 0;
387 mutable std::size_t mCachedMaxLineCandidates = 0;
388 mutable std::size_t mCachedMaxPolygonCandidates = 0;
LabelLineDirection
Controls behavior of curved text with respect to line directions.