ARX  1.0
The next-generation open source augmented reality toolkit.
Loading...
Searching...
No Matches
ARTrackable2d.h
Go to the documentation of this file.
1/*
2 * ARTrackableNFT.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 2011-2015 ARToolworks, Inc.
34 *
35 * Author(s): Philip Lamb
36 *
37 */
38
39#ifndef ARMARKER2D_H
40#define ARMARKER2D_H
41
42#include <ARX/ARTrackable.h>
43#if HAVE_2D
44#include <memory>
45
49class ARTrackable2d : public ARTrackable {
50
51 friend class ARTracker2d;
52
53private:
54 bool m_loaded;
55 float m_twoDScale;
56 bool robustFlag;
57 int pageNo;
58 char *datasetPathname;
59 int m_refImageX, m_refImageY;
60 std::shared_ptr<unsigned char> m_refImage;
61
62 bool unload();
63public:
64
65 ARTrackable2d();
66 ~ARTrackable2d();
67
76 bool load(const char* dataSetPathname_in);
84 bool load2DData(const char* dataSetPathname_in, std::shared_ptr<unsigned char> refImage, int m_refImageX, int m_refImageY);
85
86 bool updateWithTwoDResults(float trackingTrans[3][4], ARdouble transL2R[3][4] = NULL);
87
88 void setTwoDScale(const float scale);
89 float TwoDScale();
90
91 int getPatternCount() override;
92 std::pair<float, float> getPatternSize(int patternIndex) override;
93 std::pair<int, int> getPatternImageSize(int patternIndex, AR_MATRIX_CODE_TYPE matrixCodeType) override;
94 bool getPatternTransform(int patternIndex, ARdouble T[16]) override;
95 bool getPatternImage(int patternIndex, uint32_t *pattImageBuffer, AR_MATRIX_CODE_TYPE matrixCodeType) override;
96};
97
98#endif // HAVE_2D
99
100#endif // !ARMARKERNFT_H
101
AR_MATRIX_CODE_TYPE
Values specifying the type of matrix code in use.
Definition: ar.h:320
double ARdouble
Definition: ar.h:99
Base class for supported trackable types.
Definition: ARTrackable.h:62
virtual std::pair< float, float > getPatternSize(int patternIndex)=0
virtual int getPatternCount()=0
virtual bool getPatternImage(int patternIndex, uint32_t *pattImageBuffer, AR_MATRIX_CODE_TYPE matrixCodeType)=0
virtual bool getPatternTransform(int patternIndex, ARdouble T[16])=0
Get the transform, relative to this trackable's origin, of this pattern.
virtual std::pair< int, int > getPatternImageSize(int patternIndex, AR_MATRIX_CODE_TYPE matrixCodeType)=0