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

Loading...
Searching...
No Matches
ARTrackableSquare.h
Go to the documentation of this file.
1/*
2 * ARTrackableSquare.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): Julian Looser, Philip Lamb
36 *
37 */
38
39#ifndef ARMARKERSQUARE_H
40#define ARMARKERSQUARE_H
41
42#include <ARX/ARTrackable.h>
43
44#define AR_PATTERN_TYPE_TEMPLATE 0
45#define AR_PATTERN_TYPE_MATRIX 1
46
50 class ARTrackableSquare : public ARTrackable {
51
52 private:
53 bool m_loaded;
54
55 protected:
56 ARPattHandle *m_arPattHandle;
57 ARdouble m_width;
58 ARdouble m_cf;
59 ARdouble m_cfMin;
60
61 bool unload();
62
63 public:
64
65 int patt_id;
66 int patt_type;
67 uint64_t globalID;
68
69 ARTrackableSquare();
70 ~ARTrackableSquare();
71
72 bool useContPoseEstimation;
73 ARdouble getConfidence();
74 ARdouble getConfidenceCutoff();
75 void setConfidenceCutoff(ARdouble value);
76 ARdouble width() { return m_width; }
77 void setWidth(ARdouble width) { m_width = width; }
78
79 bool initWithPatternFile(const char* path, ARdouble width, ARPattHandle *arPattHandle);
80 bool initWithPatternFromBuffer(const char* buffer, ARdouble width, ARPattHandle *arPattHandle);
81
88 bool initWithBarcode(int barcodeID, ARdouble width, uint64_t globalID_ = 0);
89
97 bool updateWithDetectedMarkers(ARMarkerInfo* markerInfo, int markerNum, AR3DHandle *ar3DHandle);
98
99 bool updateWithDetectedMarkersStereo(ARMarkerInfo* markerInfoL, int markerNumL, ARMarkerInfo* markerInfoR, int markerNumR, AR3DStereoHandle *handle, ARdouble transL2R[3][4]);
100
101 int getPatternCount() override;
102 std::pair<float, float> getPatternSize(int patternIndex) override;
103 std::pair<int, int> getPatternImageSize(int patternIndex, AR_MATRIX_CODE_TYPE matrixCodeType) override;
104 bool getPatternTransform(int patternIndex, ARdouble T[16]) override;
105 bool getPatternImage(int patternIndex, uint32_t *pattImageBuffer, AR_MATRIX_CODE_TYPE matrixCodeType) override;
106
107};
108
109
110#endif // !ARMARKERSQUARE_H
ARTrackable.h
AR_MATRIX_CODE_TYPE
AR_MATRIX_CODE_TYPE
Values specifying the type of matrix code in use.
Definition: ar.h:320
ARdouble
double ARdouble
Definition: ar.h:99
ARTrackable
Base class for supported trackable types.
Definition: ARTrackable.h:62
ARTrackableSquare
Single marker type of ARTrackable.
Definition: ARTrackableSquare.h:50
ARTrackableSquare::m_arPattHandle
ARPattHandle * m_arPattHandle
Definition: ARTrackableSquare.h:56
ARTrackableSquare::m_cf
ARdouble m_cf
Definition: ARTrackableSquare.h:58
ARTrackableSquare::getPatternImage
bool getPatternImage(int patternIndex, uint32_t *pattImageBuffer, AR_MATRIX_CODE_TYPE matrixCodeType) override
Definition: ARTrackableSquare.cpp:389
ARTrackableSquare::useContPoseEstimation
bool useContPoseEstimation
Definition: ARTrackableSquare.h:72
ARTrackableSquare::getPatternCount
int getPatternCount() override
Definition: ARTrackableSquare.cpp:357
ARTrackableSquare::initWithBarcode
bool initWithBarcode(int barcodeID, ARdouble width, uint64_t globalID_=0)
Init the trackable as a barcode.
Definition: ARTrackableSquare.cpp:134
ARTrackableSquare::patt_id
int patt_id
Pattern ID provided by libAR.
Definition: ARTrackableSquare.h:65
ARTrackableSquare::m_cfMin
ARdouble m_cfMin
Definition: ARTrackableSquare.h:59
ARTrackableSquare::initWithPatternFromBuffer
bool initWithPatternFromBuffer(const char *buffer, ARdouble width, ARPattHandle *arPattHandle)
Definition: ARTrackableSquare.cpp:109
ARTrackableSquare::getPatternImageSize
std::pair< int, int > getPatternImageSize(int patternIndex, AR_MATRIX_CODE_TYPE matrixCodeType) override
Definition: ARTrackableSquare.cpp:368
ARTrackableSquare::~ARTrackableSquare
~ARTrackableSquare()
Definition: ARTrackableSquare.cpp:59
ARTrackableSquare::getConfidence
ARdouble getConfidence()
Definition: ARTrackableSquare.cpp:158
ARTrackableSquare::globalID
uint64_t globalID
Definition: ARTrackableSquare.h:67
ARTrackableSquare::patt_type
int patt_type
Definition: ARTrackableSquare.h:66
ARTrackableSquare::setWidth
void setWidth(ARdouble width)
Definition: ARTrackableSquare.h:77
ARTrackableSquare::getPatternSize
std::pair< float, float > getPatternSize(int patternIndex) override
Definition: ARTrackableSquare.cpp:362
ARTrackableSquare::initWithPatternFile
bool initWithPatternFile(const char *path, ARdouble width, ARPattHandle *arPattHandle)
Definition: ARTrackableSquare.cpp:83
ARTrackableSquare::unload
bool unload()
Definition: ARTrackableSquare.cpp:64
ARTrackableSquare::m_width
ARdouble m_width
Definition: ARTrackableSquare.h:57
ARTrackableSquare::updateWithDetectedMarkersStereo
bool updateWithDetectedMarkersStereo(ARMarkerInfo *markerInfoL, int markerNumL, ARMarkerInfo *markerInfoR, int markerNumR, AR3DStereoHandle *handle, ARdouble transL2R[3][4])
Definition: ARTrackableSquare.cpp:245
ARTrackableSquare::updateWithDetectedMarkers
bool updateWithDetectedMarkers(ARMarkerInfo *markerInfo, int markerNum, AR3DHandle *ar3DHandle)
Updates the marker with new tracking info.
Definition: ARTrackableSquare.cpp:175
ARTrackableSquare::getConfidenceCutoff
ARdouble getConfidenceCutoff()
Definition: ARTrackableSquare.cpp:163
ARTrackableSquare::setConfidenceCutoff
void setConfidenceCutoff(ARdouble value)
Definition: ARTrackableSquare.cpp:168
ARTrackableSquare::width
ARdouble width()
Definition: ARTrackableSquare.h:76
ARTrackableSquare::ARTrackableSquare
ARTrackableSquare()
Definition: ARTrackableSquare.cpp:46
ARTrackableSquare::getPatternTransform
bool getPatternTransform(int patternIndex, ARdouble T[16]) override
Get the transform, relative to this trackable's origin, of this pattern.
Definition: ARTrackableSquare.cpp:379
AR3DHandle
Structure holding state of an instance of the monocular pose estimator.
Definition: ar.h:385
AR3DStereoHandle
Structure holding state of an instance of the stereo pose estimator.
Definition: ar.h:395
ARMarkerInfo
Describes a detected trapezoidal area (a candidate for a marker match).
Definition: ar.h:213
ARPattHandle
A structure which holds descriptions of trained patterns for template matching.
Definition: ar.h:268