00001 /* ======================================================================== 00002 * PROJECT: ARToolKitPlus 00003 * ======================================================================== 00004 * This work is based on the original ARToolKit developed by 00005 * Hirokazu Kato 00006 * Mark Billinghurst 00007 * HITLab, University of Washington, Seattle 00008 * http://www.hitl.washington.edu/artoolkit/ 00009 * 00010 * Copyright of the derived and new portions of this work 00011 * (C) 2006 Graz University of Technology 00012 * 00013 * This framework is free software; you can redistribute it and/or modify 00014 * it under the terms of the GNU General Public License as published by 00015 * the Free Software Foundation; either version 2 of the License, or 00016 * (at your option) any later version. 00017 * 00018 * This framework is distributed in the hope that it will be useful, 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 * GNU General Public License for more details. 00022 * 00023 * You should have received a copy of the GNU General Public License 00024 * along with this framework; if not, write to the Free Software 00025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00026 * 00027 * For further information please contact 00028 * Dieter Schmalstieg 00029 * <schmalstieg@icg.tu-graz.ac.at> 00030 * Graz University of Technology, 00031 * Institut for Computer Graphics and Vision, 00032 * Inffeldgasse 16a, 8010 Graz, Austria. 00033 * ======================================================================== 00034 ** @author Daniel Wagner 00035 * 00036 * $Id: config.h 162 2006-04-19 21:28:10Z grabner $ 00037 * @file 00038 * ======================================================================== */ 00039 00040 00048 #ifndef AR_CONFIG_H 00049 #define AR_CONFIG_H 00050 00051 // autoconf generated file with configuration information 00052 #ifdef HAVE_CONFIG_H 00053 #include <config.h> 00054 #endif 00055 00056 // may be changed to double, float is particularly useful for PDA's 00057 #ifdef _USE_DOUBLE_ 00058 typedef double ARFloat; 00059 #else 00060 typedef float ARFloat; 00061 #endif 00062 00063 00068 #ifdef HAVE_CONFIG_H 00069 #ifdef WORDS_BIGENDIAN 00070 #define AR_BIG_ENDIAN 00071 #undef AR_LITTLE_ENDIAN 00072 #else 00073 #define AR_LITTLE_ENDIAN 00074 #undef AR_BIG_ENDIAN 00075 #endif 00076 #else 00077 #ifdef __linux 00078 #undef AR_BIG_ENDIAN 00079 #define AR_LITTLE_ENDIAN 00080 #endif 00081 #ifdef _WIN32 00082 #undef AR_BIG_ENDIAN 00083 #define AR_LITTLE_ENDIAN 00084 #endif 00085 #ifdef __sgi 00086 #undef AR_LITTLE_ENDIAN 00087 #define AR_BIG_ENDIAN 00088 #endif 00089 #ifdef __APPLE_CC__ 00090 #undef AR_LITTLE_ENDIAN 00091 #define AR_BIG_ENDIAN 00092 #endif 00093 #endif 00094 00103 //#ifdef _USE_8BITIMAGE_ 00104 // #define AR_PIX_SIZE 1 00105 // #define AR_PIX_FORMAT_LUM 00106 //#else 00107 // #ifdef _USE_16BITIMAGE_ 00108 // #define AR_PIX_SIZE 2 00109 // #define AR_PIX_FORMAT_RGB565 00110 // #else 00111 // #define AR_PIX_SIZE 4 00112 // #ifdef __linux 00113 // #define AR_PIX_FORMAT_RGBA 00114 // #endif 00115 // #ifdef _WIN32 00116 // #define AR_PIX_FORMAT_BGRA 00117 // #endif 00118 // #ifdef __sgi 00119 // #define AR_PIX_FORMAT_ABGR 00120 // #endif 00121 // #ifdef __APPLE_CC__ 00122 // #define AR_PIX_FORMAT_RGBA 00123 // #endif 00124 // #endif //_USE_16BITIMAGE_ 00125 //#endif //_USE_8BITIMAGE_ 00126 00127 00128 /*------------------------------------------------------------ 00129 * see 00130 * http://www.hitl.washington.edu/people/grof/SharedSpace/Download/Doc/art240.html 00131 * for an explanation of the next two define blocks 00132 */ 00133 00134 // constants for variable arImageProcMode 00135 // half mode is faster and useful for interlaced images 00136 #define AR_IMAGE_PROC_IN_FULL 0 00137 #define AR_IMAGE_PROC_IN_HALF 1 00138 #define DEFAULT_IMAGE_PROC_MODE AR_IMAGE_PROC_IN_HALF 00139 00140 // constants for variable arFittingMode 00141 #define AR_FITTING_TO_IDEAL 0 00142 #define AR_FITTING_TO_INPUT 1 00143 #define DEFAULT_FITTING_MODE AR_FITTING_TO_IDEAL 00144 00145 // constants for variable arTemplateMatchingMode 00146 #define AR_TEMPLATE_MATCHING_COLOR 0 00147 #define AR_TEMPLATE_MATCHING_BW 1 00148 #define DEFAULT_TEMPLATE_MATCHING_MODE AR_TEMPLATE_MATCHING_COLOR 00149 00150 // constant for variable arMatchingPCAMode 00151 #define AR_MATCHING_WITHOUT_PCA 0 00152 #define AR_MATCHING_WITH_PCA 1 00153 #define DEFAULT_MATCHING_PCA_MODE AR_MATCHING_WITHOUT_PCA 00154 00155 00156 // constants influencing accuracy of arGetTransMat(...) 00157 #define AR_GET_TRANS_MAT_MAX_LOOP_COUNT 5 00158 #define AR_GET_TRANS_MAT_MAX_FIT_ERROR 1.0 00159 // criterium for arGetTransMatCont(...) to call 00160 // arGetTransMat(...) instead 00161 #define AR_GET_TRANS_CONT_MAT_MAX_FIT_ERROR 1.0 00162 00163 // min/max area of fiducial interiors to be matched 00164 // against templates, used in arDetectMarker.c 00165 #define AR_AREA_MAX 100000 00166 #define AR_AREA_MIN 70 00167 00168 // used in arDetectMarker2(...), this param controls the 00169 // maximum number of potential markers evaluated further. 00170 // Only the first AR_SQUARE_MAX patterns are examined. 00171 //#define AR_SQUARE_MAX 50 00172 // plays some role in arDetectMarker2 I don't understand yet 00173 #define AR_CHAIN_MAX 10000 00174 // maximum number of markers that can be simultaneously loaded 00175 //#define AR_PATT_NUM_MAX 50 00176 00177 // These parameters control the way the toolkit warps a found 00178 // marker to a perfect square. The square has size 00179 // AR_PATT_SIZE_X * AR_SIZE_PATT_Y, the projected 00180 // square in the image is subsampled at a min of 00181 // AR_PATT_SIZE_X/Y and a max of AR_PATT_SAMPLE_NUM 00182 // steps in both x and y direction 00183 //#define AR_PATT_SIZE_X 16 00184 //#define AR_PATT_SIZE_Y 16 00185 //#define AR_PATT_SAMPLE_NUM 64 00186 00187 // Constants controlling the behavior of 00188 // atParamGet (for calibrating HMDs and cameras) 00189 // max/min number of feature points to match 2D<->3D 00190 #define AR_PARAM_NMIN 6 00191 #define AR_PARAM_NMAX 1000 00192 #define AR_PARAM_C34 100.0 00193 00194 #define EVEC_MAX 10 00195 #define P_MAX 500 00196 00197 // this defines the maximum screen width that 00198 // can be processed by artoolkit... 00199 // memory consumption (if static) is: 2*width*height bytes 00200 #ifdef _WIN32_WCE 00201 #define MAX_BUFFER_WIDTH 320 00202 #define MAX_BUFFER_HEIGHT 240 00203 #else 00204 #define MAX_BUFFER_WIDTH 720 00205 #define MAX_BUFFER_HEIGHT 576 00206 #endif //_WIN32_WCE 00207 00208 //#define WORK_SIZE 1024*32 00209 00210 00211 //#define SMALL_LUM8_TABLE 00212 00213 #ifdef SMALL_LUM8_TABLE 00214 #define getLUM8_from_RGB565(ptr) RGB565_to_LUM8_LUT[ (*(unsigned short*)(ptr))>>6 ] 00215 #else 00216 #define getLUM8_from_RGB565(ptr) RGB565_to_LUM8_LUT[ (*(unsigned short*)(ptr)) ] 00217 #endif //SMALL_LUM8_TABLE 00218 00219 00220 #if defined(_MSC_VER) || defined(_WIN32_WCE) 00221 # include <windows.h> 00222 #else 00223 // for linux no MAX_PATH variable is set 00224 # define MAX_PATH 512 00225 #endif 00226 00227 00228 #endif // AR_CONFIG_H 00229