ARWrapper
Provides a C++ wrapper around ARToolKit and exposes a C and JNI API
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
include
ARWrapper
ARMarker.h
Go to the documentation of this file.
1
/*
2
* ARMarker.h
3
* ARToolKit5
4
*
5
* This file is part of ARToolKit.
6
*
7
* ARToolKit 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
* ARToolKit 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 ARToolKit. 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 2015 Daqri, LLC.
32
* Copyright 2010-2015 ARToolworks, Inc.
33
*
34
* Author(s): Julian Looser, Philip Lamb
35
*
36
*/
37
38
#ifndef ARMARKER_H
39
#define ARMARKER_H
40
41
#include <AR/ar.h>
42
#include <AR/arFilterTransMat.h>
43
44
#include <
ARWrapper/Image.h
>
45
#include <
ARWrapper/ARPattern.h
>
46
47
#include <vector>
48
49
class
ARController
;
// Forward declaration of owner.
50
54
class
ARMarker
{
55
56
private
:
57
ARFilterTransMatInfo *m_ftmi;
58
ARdouble m_filterCutoffFrequency;
59
ARdouble m_filterSampleRate;
60
61
protected
:
62
ARdouble
trans
[3][4];
63
67
void
allocatePatterns
(
int
count);
68
72
void
freePatterns
();
73
74
ARdouble
m_positionScaleFactor
;
75
76
public
:
77
78
enum
MarkerType
{
79
SINGLE
,
80
MULTI
,
81
NFT
82
};
83
84
int
UID
;
85
MarkerType
type
;
86
87
// Factory methods.
88
static
std::vector<ARMarker *>
newFromConfigDataFile
(
const
char
*markersConfigDataFilePath, ARPattHandle *arPattHandle,
int
*patternDetectionMode_out);
89
static
ARMarker
*
newWithConfig
(
const
char
* cfg, ARPattHandle *arPattHandle);
90
91
92
// Inputs from subclasses.
93
bool
visiblePrev
;
94
bool
visible
;
95
96
// Output.
97
ARdouble
transformationMatrix
[16];
98
ARdouble
transformationMatrixR
[16];
99
100
int
patternCount
;
101
ARPattern
**
patterns
;
102
106
ARMarker
(
MarkerType
type
);
107
108
virtual
~ARMarker
();
109
110
void
setPositionScalefactor
(ARdouble scale);
111
ARdouble
positionScalefactor
();
112
120
virtual
bool
update
(
const
ARdouble transL2R[3][4] = NULL);
121
126
ARPattern
*
getPattern
(
int
n);
127
128
// Filter control.
129
void
setFiltered
(
bool
flag);
130
bool
isFiltered
();
131
ARdouble
filterSampleRate
();
132
void
setFilterSampleRate
(ARdouble rate);
133
ARdouble
filterCutoffFrequency
();
134
void
setFilterCutoffFrequency
(ARdouble freq);
135
136
};
137
138
139
#endif // !ARMARKER_H
Generated on Wed Mar 23 2016 17:24:25 for ARWrapper by
1.8.3.1