QGIS API Documentation  3.21.0-Master (5b68dc587e)
Classes | Public Member Functions | Friends | List of all members
pal::Problem Class Reference

Representation of a labeling problem. More...

#include <problem.h>

Public Member Functions

 Problem (const Problem &other)=delete
 Problem cannot be copied. More...
 
 Problem (const QgsRectangle &extent)
 Constructor for Problem. More...
 
 ~Problem ()
 
void addCandidatePosition (std::unique_ptr< LabelPosition > position)
 Adds a candidate label position to the problem. More...
 
PalRtree< LabelPosition > & allCandidatesIndex ()
 Returns the index containing all label candidates. More...
 
void chain_search ()
 Test with very-large scale neighborhood. More...
 
LabelPositionfeatureCandidate (int feature, int candidate) const
 Returns the candidate corresponding to the specified feature and candidate index. More...
 
int featureCandidateCount (int feature) const
 Returns the number of candidates generated for the feature at the specified index. More...
 
std::size_t featureCount () const
 Returns the total number of features considered during the labeling problem. More...
 
QList< LabelPosition * > getSolution (bool returnInactive, QList< LabelPosition * > *unlabeled=nullptr)
 Solves the labeling problem, selecting the best candidate locations for all labels and returns a list of these calculated label positions. More...
 
void init_sol_falp ()
 
Problemoperator= (const Problem &other)=delete
 Problem cannot be copied. More...
 
std::vector< std::unique_ptr< LabelPosition > > * positionsWithNoCandidates ()
 Returns a reference to the list of label positions which correspond to features with no candidates. More...
 
void reduce ()
 

Friends

class Pal
 

Detailed Description

Representation of a labeling problem.

Note
not available in Python bindings

Definition at line 71 of file problem.h.

Constructor & Destructor Documentation

◆ Problem() [1/2]

Problem::Problem ( const QgsRectangle extent)

Constructor for Problem.

The extent argument specifies the bounds of the incoming coordinates.

Definition at line 57 of file problem.cpp.

◆ ~Problem()

Problem::~Problem ( )
default

◆ Problem() [2/2]

pal::Problem::Problem ( const Problem other)
delete

Problem cannot be copied.

Member Function Documentation

◆ addCandidatePosition()

void pal::Problem::addCandidatePosition ( std::unique_ptr< LabelPosition position)
inline

Adds a candidate label position to the problem.

Parameters
positionlabel candidate position. Ownership is transferred to Problem.
Since
QGIS 2.12

Definition at line 98 of file problem.h.

◆ allCandidatesIndex()

PalRtree< LabelPosition >& pal::Problem::allCandidatesIndex ( )
inline

Returns the index containing all label candidates.

Definition at line 155 of file problem.h.

◆ chain_search()

void Problem::chain_search ( )

Test with very-large scale neighborhood.

Definition at line 567 of file problem.cpp.

◆ featureCandidate()

LabelPosition* pal::Problem::featureCandidate ( int  feature,
int  candidate 
) const
inline

Returns the candidate corresponding to the specified feature and candidate index.

Definition at line 113 of file problem.h.

◆ featureCandidateCount()

int pal::Problem::featureCandidateCount ( int  feature) const
inline

Returns the number of candidates generated for the feature at the specified index.

Definition at line 108 of file problem.h.

◆ featureCount()

std::size_t pal::Problem::featureCount ( ) const
inline

Returns the total number of features considered during the labeling problem.

Definition at line 103 of file problem.h.

◆ getSolution()

QList< LabelPosition * > Problem::getSolution ( bool  returnInactive,
QList< LabelPosition * > *  unlabeled = nullptr 
)

Solves the labeling problem, selecting the best candidate locations for all labels and returns a list of these calculated label positions.

If returnInactive is true, then the best positions for ALL labels will be returned, regardless of whether these labels overlap other labels.

If the optional unlabeled list is specified, it will be filled with a list of all feature labels which could not be placed in the returned solution (e.g. due to overlaps or other constraints).

Ownership of the returned labels is not transferred - it resides with the pal object.

Definition at line 662 of file problem.cpp.

◆ init_sol_falp()

void Problem::init_sol_falp ( )

Definition at line 163 of file problem.cpp.

◆ operator=()

Problem& pal::Problem::operator= ( const Problem other)
delete

Problem cannot be copied.

◆ positionsWithNoCandidates()

std::vector< std::unique_ptr< LabelPosition > >* pal::Problem::positionsWithNoCandidates ( )
inline

Returns a reference to the list of label positions which correspond to features with no candidates.

Ownership of positions added to this list is transferred to the problem.

Definition at line 147 of file problem.h.

◆ reduce()

void Problem::reduce ( )

Definition at line 66 of file problem.cpp.

Friends And Related Function Documentation

◆ Pal

friend class Pal
friend

Definition at line 73 of file problem.h.


The documentation for this class was generated from the following files: