ARX  1.0
The next-generation open source augmented reality toolkit.
Loading...
Searching...
No Matches
PlanarTracker.h
Go to the documentation of this file.
1/*
2 * PlanarTracker.h
3 * artoolkitX
4 *
5 * This file is part of artoolkitX.
6 *
7 * artoolkitX is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * artoolkitX is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with artoolkitX. If not, see <http://www.gnu.org/licenses/>.
19 *
20 * As a special exception, the copyright holders of this library give you
21 * permission to link this library with independent modules to produce an
22 * executable, regardless of the license terms of these independent modules, and to
23 * copy and distribute the resulting executable under terms of your choice,
24 * provided that you also meet, for each linked independent module, the terms and
25 * conditions of the license of that module. An independent module is a module
26 * which is neither derived from nor based on this library. If you modify this
27 * library, you may extend this exception to your version of the library, but you
28 * are not obligated to do so. If you do not wish to do so, delete this exception
29 * statement from your version.
30 *
31 * Copyright 2018 Realmax, Inc.
32 * Copyright 2015 Daqri, LLC.
33 * Copyright 2010-2015 ARToolworks, Inc.
34 *
35 * Author(s): Philip Lamb, Daniel Bell.
36 *
37 */
38
39#ifndef PLANAR_TRACKER_H
40#define PLANAR_TRACKER_H
41#include <memory>
42#include <string>
43#include <sstream>
44#include <iostream>
45#include <vector>
46#include <ARX/AR/ar.h> // ARdouble
48{
49public:
50 std::shared_ptr<unsigned char> imageData;
51 int uid;
52 float scale;
53 int width;
54 int height;
55 std::string fileName;
56};
57
59{
60public:
65
66 void Initialise(int xFrameSize, int yFrameSize, ARdouble cParam[][4]);
67
68 void ProcessFrameData(unsigned char * frame);
69
70 void RemoveAllMarkers();
71 void AddMarker(unsigned char* buff, std::string fileName, int width, int height, int uid, float scale);
72 void AddMarker(std::string imageName, int uid, float scale);
73
74 float* GetTrackablePose(int trackableId);
75
76 bool IsTrackableVisible(int trackableId);
77 bool LoadTrackableDatabase(std::string fileName);
78 bool SaveTrackableDatabase(std::string fileName);
79
80 bool ChangeImageId(int prevId, int newId);
81 std::vector<int> GetImageIds();
83
84 void SetFeatureDetector(int detectorType);
85
86private:
88 std::shared_ptr<PlanarTrackerImpl> _trackerImpl;
89
90};
91#endif
artoolkitX core routines.
double ARdouble
Definition: ar.h:99
Definition: PlanarTracker.cpp:53
Definition: PlanarTracker.h:59
void AddMarker(std::string imageName, int uid, float scale)
TrackedImageInfo GetTrackableImageInfo(int trackableId)
Definition: PlanarTracker.cpp:733
void RemoveAllMarkers()
Definition: PlanarTracker.cpp:695
bool SaveTrackableDatabase(std::string fileName)
Definition: PlanarTracker.cpp:719
bool LoadTrackableDatabase(std::string fileName)
Definition: PlanarTracker.cpp:715
PlanarTracker & operator=(PlanarTracker &&)
void ProcessFrameData(unsigned char *frame)
Definition: PlanarTracker.cpp:690
PlanarTracker()
Definition: PlanarTracker.cpp:677
void Initialise(int xFrameSize, int yFrameSize, ARdouble cParam[][4])
Definition: PlanarTracker.cpp:685
bool ChangeImageId(int prevId, int newId)
Definition: PlanarTracker.cpp:724
float * GetTrackablePose(int trackableId)
Definition: PlanarTracker.cpp:705
PlanarTracker(PlanarTracker &&)
std::vector< int > GetImageIds()
Definition: PlanarTracker.cpp:728
void AddMarker(unsigned char *buff, std::string fileName, int width, int height, int uid, float scale)
Definition: PlanarTracker.cpp:700
void SetFeatureDetector(int detectorType)
Definition: PlanarTracker.cpp:738
bool IsTrackableVisible(int trackableId)
Definition: PlanarTracker.cpp:710
Definition: PlanarTracker.h:48
int uid
Definition: PlanarTracker.h:51
std::string fileName
Definition: PlanarTracker.h:55
float scale
Definition: PlanarTracker.h:52
int height
Definition: PlanarTracker.h:54
std::shared_ptr< unsigned char > imageData
Definition: PlanarTracker.h:50
int width
Definition: PlanarTracker.h:53