ARX  1.0
The next-generation open source augmented reality toolkit.
Loading...
Searching...
No Matches
ARPattern.h
Go to the documentation of this file.
1/*
2 * ARPattern.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): Julian Looser, Philip Lamb
36 *
37 */
38
39#ifndef ARPATTERN_H
40#define ARPATTERN_H
41
42#include <ARX/AR/ar.h>
43#if HAVE_NFT
44# include <ARX/AR2/imageSet.h>
45#endif
46#include <memory>
47
57class ARPattern {
58
59public:
60
66 };
67
68 ARPattern();
69 ~ARPattern();
70
71 bool loadTemplate(int patternID, const ARPattHandle *arPattHandle, float width);
72 bool loadMatrix(int barcodeID, AR_MATRIX_CODE_TYPE type, float width);
73#if HAVE_NFT
74 bool loadISet(const AR2ImageSetT *imageSet, float nftScale);
75#endif
76
77#if HAVE_2D
78 bool load2DTrackerImage(std::shared_ptr<unsigned char> arImage, float imageX, float imageY, float width, float height);
79#endif
80
82 float m_width;
83 float m_height;
86 uint32_t *m_image;
87
88private:
89
90 PATTERN_TYPE m_pattType;
91
92 bool loadImage(ARPattHandle *arPattHandle);
93 void freeImage();
94
95 // Template/matrix.
96 int m_patternID;
97
98};
99
100#endif // !ARPATTERN_H
artoolkitX core routines.
AR_MATRIX_CODE_TYPE
Values specifying the type of matrix code in use.
Definition: ar.h:319
double ARdouble
Definition: ar.h:99
Encapsulates information about a sub-component of a marker useful for presentation to a user.
Definition: ARPattern.h:57
float m_width
Width of the pattern in mm.
Definition: ARPattern.h:82
~ARPattern()
Definition: ARPattern.cpp:76
ARdouble m_matrix[16]
Transform of the pattern from origin.
Definition: ARPattern.h:81
int m_imageSizeY
Definition: ARPattern.h:85
ARPattern()
Definition: ARPattern.cpp:49
bool loadMatrix(int barcodeID, AR_MATRIX_CODE_TYPE type, float width)
Definition: ARPattern.cpp:111
uint32_t * m_image
RGBA32 image of the pattern.
Definition: ARPattern.h:86
PATTERN_TYPE
Definition: ARPattern.h:61
@ PATTERN_TYPE_TEMPLATE
Definition: ARPattern.h:63
@ PATTERN_TYPE_MATRIX
Definition: ARPattern.h:64
@ PATTERN_TYPE_ISET
Definition: ARPattern.h:65
@ PATTERN_TYPE_NONE
Definition: ARPattern.h:62
bool loadTemplate(int patternID, const ARPattHandle *arPattHandle, float width)
Definition: ARPattern.cpp:81
float m_height
Height of the pattern in mm.
Definition: ARPattern.h:83
int m_imageSizeX
Definition: ARPattern.h:84
Definition: imageSet.h:64
A structure which holds descriptions of trained patterns for template matching.
Definition: ar.h:267