1 #ifndef RMALTERNATIVE_SOLUTION2D_H 2 #define RMALTERNATIVE_SOLUTION2D_H 5 #include "MobileObject2D.h" 14 typedef QSharedPointer<RMAlternativeSolution2D> SpRMAlternativeSolution2D;
17 bool operator()(SpRMAlternativeSolution2D a1, SpRMAlternativeSolution2D a2);
23 class mobilePossibility {
28 mobilePossibility(
int blobsNumber);
33 std::deque<SpMobileObject2D> solution;
34 double alternativeProbability;
38 static int m_currentTrackingBlobsNumber;
47 bool incompleteAlternative;
49 bool comparedAlternative;
52 int alternativeNumber;
54 std::map<long int, std::set<SpMobileObject2D, orderedByBestCoherenceOperator2D> > newObjectsList;
55 std::set<SpRMAlternativeSolution2D, alternatives2DOrderedByBestProbabilityOperator> newAlternatives;
57 bool survivedToComparison;
64 std::deque<SpMobileObject2D>::iterator begin();
65 std::deque<SpMobileObject2D>::iterator end();
69 std::deque<SpMobileObject2D>::iterator erase(std::deque<SpMobileObject2D>::iterator element);
70 std::deque<SpMobileObject2D>::iterator erase(std::deque<SpMobileObject2D>::iterator first, std::deque<SpMobileObject2D>::iterator last);
72 SpMobileObject2D operator[](
int index);
75 void initUsedBlobsList();
76 void initInvolvedBlobs();
79 void insertNewMobileObject(SpMobileObject2D newMobileObject);
80 void insert(std::deque<SpMobileObject2D>::iterator pos, std::deque<SpMobileObject2D>::iterator f, std::deque<SpMobileObject2D>::iterator l);
83 double getProbability();
84 std::deque<SpMobileObject2D> *getSolution();
86 void setProbability(
double p);
87 void setAlternativeProbability();
89 friend std::ostream& operator<<(std::ostream&, SpRMAlternativeSolution2D);
Definition: RMAlternativeSolution2D.h:21
Definition: RMAlternativeSolution2D.h:16