| ARX 1.0 The next-generation open source augmented reality toolkit.

Loading...
Searching...
No Matches
ARTracker.h
Go to the documentation of this file.
1/*
2 * ARTracker.h
3 * artoolkitX
4 *
5 * A C++ class encapsulating core tracker functionality.
6 *
7 * This file is part of artoolkitX.
8 *
9 * artoolkitX is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU Lesser General Public License as published by
11 * the Free Software Foundation, either version 3 of the License, or
12 * (at your option) any later version.
13 *
14 * artoolkitX is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public License
20 * along with artoolkitX. If not, see <http://www.gnu.org/licenses/>.
21 *
22 * As a special exception, the copyright holders of this library give you
23 * permission to link this library with independent modules to produce an
24 * executable, regardless of the license terms of these independent modules, and to
25 * copy and distribute the resulting executable under terms of your choice,
26 * provided that you also meet, for each linked independent module, the terms and
27 * conditions of the license of that module. An independent module is a module
28 * which is neither derived from nor based on this library. If you modify this
29 * library, you may extend this exception to your version of the library, but you
30 * are not obligated to do so. If you do not wish to do so, delete this exception
31 * statement from your version.
32 *
33 * Copyright 2018 Realmax, Inc.
34 * Copyright 2015 Daqri, LLC.
35 * Copyright 2010-2015 ARToolworks, Inc.
36 *
37 * Author(s): Philip Lamb, Julian Looser.
38 *
39 */
40
41
42#ifndef ARTRACKER_H
43#define ARTRACKER_H
44
45#include <ARX/Platform.h>
46#include <ARX/ARTrackable.h>
47#include <vector>
48#include <string>
49#include <memory>
50
51 enum class ARTrackerType {
52 SQUARE_FIDUCIAL,
53 TEXTURE2D_FIDUCIAL,
54 GEODETIC,
55 INERTIAL,
56 VISUAL_SLAM,
57 VISUAL_INERTIAL_SLAM
58};
59
60 class ARTracker {
61 public:
62 ARTracker() {};
63 virtual ~ARTracker() {};
64
65 virtual bool initialize() = 0;
66 virtual bool start() = 0;
67 virtual bool isRunning() = 0;
68 virtual bool wantsUpdate() = 0;
69 virtual bool update() = 0;
70 virtual bool stop() = 0;
71 virtual void terminate() = 0;
72
73 virtual ARTrackerType type() const = 0;
74 virtual std::vector<std::string> trackableConfigurations() const = 0;
75
86 virtual int newTrackable(std::vector<std::string> config) = 0;
87 virtual unsigned int countTrackables() = 0;
88 virtual std::shared_ptr<ARTrackable> getTrackable(int UID) = 0;
89 virtual std::vector<std::shared_ptr<ARTrackable>> getAllTrackables() = 0;
94 virtual bool deleteTrackable(int UID) = 0;
95 virtual void deleteAllTrackables() = 0;
96};
97
98
99#endif // !ARTRACKER_H
ARTrackable.h
ARTrackerType
ARTrackerType
Definition: ARTracker.h:51
ARTrackerType::VISUAL_SLAM
@ VISUAL_SLAM
ARTrackerType::VISUAL_INERTIAL_SLAM
@ VISUAL_INERTIAL_SLAM
ARTrackerType::TEXTURE2D_FIDUCIAL
@ TEXTURE2D_FIDUCIAL
ARTrackerType::INERTIAL
@ INERTIAL
ARTrackerType::GEODETIC
@ GEODETIC
ARTrackerType::SQUARE_FIDUCIAL
@ SQUARE_FIDUCIAL
Platform.h
ARTracker
Definition: ARTracker.h:60
ARTracker::wantsUpdate
virtual bool wantsUpdate()=0
ARTracker::ARTracker
ARTracker()
Definition: ARTracker.h:62
ARTracker::newTrackable
virtual int newTrackable(std::vector< std::string > config)=0
ARTrackable factory method.
ARTracker::isRunning
virtual bool isRunning()=0
ARTracker::deleteAllTrackables
virtual void deleteAllTrackables()=0
ARTracker::trackableConfigurations
virtual std::vector< std::string > trackableConfigurations() const =0
ARTracker::getAllTrackables
virtual std::vector< std::shared_ptr< ARTrackable > > getAllTrackables()=0
ARTracker::stop
virtual bool stop()=0
ARTracker::deleteTrackable
virtual bool deleteTrackable(int UID)=0
Removes the trackable with UID uid, if held by this tracker.
ARTracker::update
virtual bool update()=0
ARTracker::getTrackable
virtual std::shared_ptr< ARTrackable > getTrackable(int UID)=0
ARTracker::terminate
virtual void terminate()=0
ARTracker::countTrackables
virtual unsigned int countTrackables()=0
ARTracker::type
virtual ARTrackerType type() const =0
ARTracker::start
virtual bool start()=0
ARTracker::~ARTracker
virtual ~ARTracker()
Definition: ARTracker.h:63
ARTracker::initialize
virtual bool initialize()=0