ProjectedTextures
Prototype software for spacial augmented reality applications.
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
FiducialTracker.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <ARToolKitPlus/TrackerSingleMarker.h>
4 #include <vector>
5 #include <QQueue>
6 #include <QMap>
7 
8 #include "Tracker.h"
9 #include "Camera.h"
10 
11 using ARToolKitPlus::TrackerSingleMarker;
12 
17  float patternWidth;
18  bool useBCH;
20  int threshold;
22 };
23 
27 struct Marker{
28  int id;
29  bool tracked;
30  float confidence;
31  QMatrix4x4 pose;
32 };
33 
38 struct MarkerSet{
39  QString name;
40  QMap<int, QMatrix4x4> markers;
43  bool tracked;
46  QQueue<Similarity> stabilisationQueue;
47  cv::KalmanFilter KF;
50 };
51 
52 
53 
60  public Tracker
61 
62 {
63  Q_OBJECT
64 
65 public:
74  QString originMarkerSet, bool objectTracker);
75  ~FiducialTracker(void);
76 
77 
78  void setCamera(Camera *cam);
80  void addMarkerToSet(QString setName, int markerId, QMatrix4x4 offset);
85  void addSubscription(int trackableId, QString markerSetName);
88  bool isObjectTracker(){return objectTracker;}
90  Camera* getCamera(){return cam;}
92  bool isTracked(int trackableId);
93  Similarity getPose(int trackableId);
95  QString getMarkerSetName(int trackableId);
99 protected:
100  //members
101  TrackerSingleMarker *tracker;
103  volatile bool newFrame;
107  QMap<int, Marker> markers;
108  QMap<QString, MarkerSet> markerSets;
109  QMap<int, QString> subscriptions;
113  const QString originMarkerSet;
121  //functions
122  void update();
126 public slots:
127  void notifyNewFrame();
128  void lockOrigin(int state);
129  void enableKalman(int enable);
131 signals:
132  void newNumDetectedMarkers(int num);
133 };
134