ARX  1.0
The next-generation open source augmented reality toolkit.
Loading...
Searching...
No Matches
config.h
Go to the documentation of this file.
1/*
2 * AR2/config.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 2006-2015 ARToolworks, Inc.
34 *
35 * Author(s): Hirokazu Kato, Philip Lamb
36 *
37 */
38
39#ifndef AR2_CONFIG_H
40#define AR2_CONFIG_H
41#ifdef __cplusplus
42extern "C" {
43#endif
44
45#ifdef _WIN32
46# ifdef AR2_STATIC
47# define AR2_EXTERN
48# else
49# ifdef ARX_EXPORTS
50# define AR2_EXTERN __declspec(dllexport)
51# else
52# define AR2_EXTERN __declspec(dllimport)
53# endif
54# endif
55#else
56# define AR2_EXTERN
57#endif
58
59// The MAJOR version number defines non-backwards compatible
60// changes in the ARToolKit NFT API. Range: [0-99].
61#define AR2_HEADER_VERSION_MAJOR 4
62
63// The MINOR version number defines additions to the ARToolKit NFT
64// API, or (occsasionally) other significant backwards-compatible
65// changes in runtime functionality. Range: [0-99].
66#define AR2_HEADER_VERSION_MINOR 0
67
68// The TINY version number defines bug-fixes to existing
69// functionality. Range: [0-99].
70#define AR2_HEADER_VERSION_TINY 0
71
72// The BUILD version number will always be zero in releases,
73// but may be non-zero in internal builds or in version-control
74// repository-sourced code. Range: [0-99].
75#define AR2_HEADER_VERSION_BUILD 0
76
77// The string representation below must match the major, minor
78// and tiny release numbers.
79#define AR2_HEADER_VERSION_STRING "4.0.0"
80
81// The macros below are convenience macros to enable use
82// of certain ARToolKit NFT header functionality by the release
83// version in which it appeared.
84// Each time the major version number is incremented, all
85// existing macros must be removed, and just one new one
86// added for the new major version.
87// Each time the minor version number is incremented, a new
88// AR_HAVE_HEADER_VERSION_ macro definition must be added.
89// Tiny version numbers (being bug-fix releases, by definition)
90// are NOT included in the AR_HAVE_HEADER_VERSION_ system.
91#define AR2_HAVE_HEADER_VERSION_4
92//#define AR2_HAVE_HEADER_VERSION_4_1
93
94
95
96#define AR2_CAPABLE_ADAPTIVE_TEMPLATE 0
97
98// Template scalefactor.
99#define AR2_TEMP_SCALE 2
100
101#if AR2_CAPABLE_ADAPTIVE_TEMPLATE
102#define AR2_CONSTANT_BLUR 0
103#define AR2_ADAPTIVE_BLUR 2
104#define AR2_DEFAULT_BLUR_METHOD AR2_CONSTANT_BLUR
105#define AR2_DEFAULT_BLUR_LEVEL 1
106#endif
107
108
109#define AR2_THREAD_MAX 8
110
111#define AR2_DEFAULT_SEARCH_SIZE 25 // Default radius of feature search window.
112
113#define AR2_DEFAULT_SEARCH_FEATURE_NUM 10 // May not be higher than AR2_SEARCH_FEATURE_MAX.
114
115#define AR2_DEFAULT_TS1 11 // Template size 1. Multiplied by AR2_TEMP_SCALE to give number of pixels outside centre pixel in negative x/y axis.
116#define AR2_DEFAULT_TS2 11 // Template size 2. Multiplied by AR2_TEMP_SCALE to give number of pixels outside centre pixel in positive x/y axis.
117
118#define AR2_DEFAULT_SIM_THRESH 0.6F
119
120#define AR2_DEFAULT_TRACKING_THRESH 2.0F
121
122
123
124/* tracking.c */
125#define AR2_TRACKING_SURFACE_MAX 10 // Maximum number of surfaces per surface set (i.e. maximum number of discrete surfaces with fixed relationship to each other able to be combined into a surface set.)
126#define AR2_TRACKING_CANDIDATE_MAX 200 // Maximum number of candidate feature points.
127
128/* tracking2d.c */
129#define AR2_DEFAULT_TRACKING_SD_THRESH 5.0F
130#define AR2_SEARCH_FEATURE_MAX 40
131
132
133/* genFeatureSet.c */
134#define AR2_DEFAULT_MAX_SIM_THRESH_L0 0.80F
135#define AR2_DEFAULT_MAX_SIM_THRESH_L1 0.85F
136#define AR2_DEFAULT_MAX_SIM_THRESH_L2 0.90F
137#define AR2_DEFAULT_MAX_SIM_THRESH_L3 0.98F
138#define AR2_DEFAULT_MIN_SIM_THRESH_L0 0.70F
139#define AR2_DEFAULT_MIN_SIM_THRESH_L1 0.65F
140#define AR2_DEFAULT_MIN_SIM_THRESH_L2 0.55F
141#define AR2_DEFAULT_MIN_SIM_THRESH_L3 0.45F
142#define AR2_DEFAULT_SD_THRESH_L0 12.0F
143#define AR2_DEFAULT_SD_THRESH_L1 10.0F
144#define AR2_DEFAULT_SD_THRESH_L2 8.0F
145#define AR2_DEFAULT_SD_THRESH_L3 6.0F
146#define AR2_DEFAULT_OCCUPANCY_SIZE 24
147
148/* genFeatureMap.c genFeatureSet.c */
149#define AR2_DEFAULT_GEN_FEATURE_MAP_SEARCH_SIZE1 10
150#define AR2_DEFAULT_GEN_FEATURE_MAP_SEARCH_SIZE2 2
151#define AR2_DEFAULT_MAX_SIM_THRESH2 0.95F
152#define AR2_DEFAULT_SD_THRESH2 5.0F
153
154
155#ifdef __cplusplus
156}
157#endif
158#endif