Blame |
Last modification |
View Log
| RSS feed
#ifndef AR_CONFIG_H
#define AR_CONFIG_H
//
// As of version 2.72, ARToolKit supports an OpenGL-like
// versioning system, with both header versions (for the version
// of the ARToolKit SDK installed) and runtime version reporting
// via arGetVersion().
//
// The MAJOR version number defines non-backwards compatible
// changes in the ARToolKit API. Range: [0-99].
#define AR_HEADER_VERSION_MAJOR 2
// The MINOR version number defines additions to the ARToolKit
// API, or (occsasionally) other significant backwards-compatible
// changes in runtime functionality. Range: [0-99].
#define AR_HEADER_VERSION_MINOR 72
// The TINY version number defines bug-fixes to existing
// functionality. Range: [0-99].
#define AR_HEADER_VERSION_TINY 0
// The BUILD version number will always be zero in releases,
// but may be non-zero in internal builds or in version-control
// repository-sourced code. Range: [0-99].
#define AR_HEADER_VERSION_BUILD 0
// The string representation below must match the major, minor
// and tiny release numbers.
#define AR_HEADER_VERSION_STRING "2.72.0"
// The macros below are convenience macros to enable use
// of certain ARToolKit header functionality by the release
// version in which it appeared.
// Each time the major version number is incremented, all
// existing macros must be removed, and just one new one
// added for the new major version.
// Each time the minor version number is incremented, a new
// AR_HAVE_HEADER_VERSION_ macro definition must be added.
// Tiny version numbers (being bug-fix releases, by definition)
// are NOT included in the AR_HAVE_HEADER_VERSION_ system.
#define AR_HAVE_HEADER_VERSION_2
#define AR_HAVE_HEADER_VERSION_2_72
//
// End version definitions.
//
#define AR_PIXEL_FORMAT_RGB 1
#define AR_PIXEL_FORMAT_BGR 2
#define AR_PIXEL_FORMAT_RGBA 3
#define AR_PIXEL_FORMAT_BGRA 4
#define AR_PIXEL_FORMAT_ABGR 5
#define AR_PIXEL_FORMAT_MONO 6
#define AR_PIXEL_FORMAT_ARGB 7
#define AR_PIXEL_FORMAT_2vuy 8
#define AR_PIXEL_FORMAT_UYVY AR_PIXEL_FORMAT_2vuy
#define AR_PIXEL_FORMAT_yuvs 9
#define AR_PIXEL_FORMAT_YUY2 AR_PIXEL_FORMAT_yuvs
/*--------------------------------------------------------------*/
/* */
/* For Linux, you should define one of below 4 input method */
/* AR_INPUT_V4L: use of standard Video4Linux Library */
/* AR_INPUT_GSTREAMER: use of GStreamer Media Framework */
/* AR_INPUT_DV: use of DV Camera */
/* AR_INPUT_1394CAM: use of 1394 Digital Camera */
/* */
/*--------------------------------------------------------------*/
#ifdef __linux
#undef AR_INPUT_V4L
#undef AR_INPUT_DV
#undef AR_INPUT_1394CAM
#undef AR_INPUT_GSTREAMER
# ifdef AR_INPUT_V4L
# ifdef USE_EYETOY
# define AR_DEFAULT_PIXEL_FORMAT AR_PIXEL_FORMAT_RGB
# else
# define AR_DEFAULT_PIXEL_FORMAT AR_PIXEL_FORMAT_BGR
# endif
# endif
# ifdef AR_INPUT_DV
# define AR_DEFAULT_PIXEL_FORMAT AR_PIXEL_FORMAT_RGB
# endif
# ifdef AR_INPUT_1394CAM
# define AR_DEFAULT_PIXEL_FORMAT AR_PIXEL_FORMAT_RGB
# endif
# ifdef AR_INPUT_GSTREAMER
# define AR_DEFAULT_PIXEL_FORMAT AR_PIXEL_FORMAT_RGB
# endif
# undef AR_BIG_ENDIAN
# define AR_LITTLE_ENDIAN
#endif
/*------------------------------------------------------------*/
/* For SGI */
/*------------------------------------------------------------*/
#ifdef __sgi
# define AR_BIG_ENDIAN
# undef AR_LITTLE_ENDIAN
# define AR_DEFAULT_PIXEL_FORMAT AR_PIXEL_FORMAT_ABGR
#endif
/*------------------------------------------------------------*/
/* For Windows */
/*------------------------------------------------------------*/
#ifdef _WIN32
# undef AR_BIG_ENDIAN
# define AR_LITTLE_ENDIAN
# define AR_DEFAULT_PIXEL_FORMAT AR_PIXEL_FORMAT_BGRA
#endif
/*------------------------------------------------------------*/
/* For Mac OS X */
/*------------------------------------------------------------*/
#ifdef __APPLE__
# if defined(__BIG_ENDIAN__) // Check architecture endianess using gcc's macro.
# define AR_BIG_ENDIAN // Most Significant Byte has greatest address in memory (ppc).
# undef AR_LITTLE_ENDIAN
# elif defined (__LITTLE_ENDIAN__)
# undef AR_BIG_ENDIAN // Least significant Byte has greatest address in memory (i386).
# define AR_LITTLE_ENDIAN
# endif
# define AR_DEFAULT_PIXEL_FORMAT AR_PIXEL_FORMAT_ARGB
#endif
/*------------------------------------------------------------*/
#define AR_DRAW_BY_GL_DRAW_PIXELS 0
#define AR_DRAW_BY_TEXTURE_MAPPING 1
#define AR_DRAW_TEXTURE_FULL_IMAGE 0
#define AR_DRAW_TEXTURE_HALF_IMAGE 1
#define AR_IMAGE_PROC_IN_FULL 0
#define AR_IMAGE_PROC_IN_HALF 1
#define AR_FITTING_TO_IDEAL 0
#define AR_FITTING_TO_INPUT 1
#define AR_TEMPLATE_MATCHING_COLOR 0
#define AR_TEMPLATE_MATCHING_BW 1
#define AR_MATCHING_WITHOUT_PCA 0
#define AR_MATCHING_WITH_PCA 1
#define DEFAULT_TEMPLATE_MATCHING_MODE AR_TEMPLATE_MATCHING_COLOR
#define DEFAULT_MATCHING_PCA_MODE AR_MATCHING_WITHOUT_PCA
#ifdef __linux
# ifdef AR_INPUT_V4L
# define VIDEO_MODE_PAL 0
# define VIDEO_MODE_NTSC 1
# define VIDEO_MODE_SECAM 2
# define DEFAULT_VIDEO_DEVICE "/dev/video0"
# define DEFAULT_VIDEO_WIDTH 640
# define DEFAULT_VIDEO_HEIGHT 480
# define DEFAULT_VIDEO_CHANNEL 1
# define DEFAULT_VIDEO_MODE VIDEO_MODE_NTSC
# endif
# ifdef AR_INPUT_DV
/* Defines all moved into video.c now - they are not used anywhere else */
# endif
# ifdef AR_INPUT_1394CAM
/* Defines all moved into video.c now - they are not used anywhere else */
# endif
# define DEFAULT_IMAGE_PROC_MODE AR_IMAGE_PROC_IN_FULL
# define DEFAULT_FITTING_MODE AR_FITTING_TO_IDEAL
# define DEFAULT_DRAW_MODE AR_DRAW_BY_TEXTURE_MAPPING
# define DEFAULT_DRAW_TEXTURE_IMAGE AR_DRAW_TEXTURE_HALF_IMAGE
#endif
#ifdef __sgi
# define VIDEO_FULL 0
# define VIDEO_HALF 1
# define DEFAULT_VIDEO_SIZE VIDEO_FULL
# define DEFAULT_IMAGE_PROC_MODE AR_IMAGE_PROC_IN_FULL
# define DEFAULT_FITTING_MODE AR_FITTING_TO_INPUT
# define DEFAULT_DRAW_MODE AR_DRAW_BY_GL_DRAW_PIXELS
# define DEFAULT_DRAW_TEXTURE_IMAGE AR_DRAW_TEXTURE_HALF_IMAGE
#endif
#ifdef _WIN32
# define DEFAULT_IMAGE_PROC_MODE AR_IMAGE_PROC_IN_FULL
# define DEFAULT_FITTING_MODE AR_FITTING_TO_INPUT
# define DEFAULT_DRAW_MODE AR_DRAW_BY_TEXTURE_MAPPING
# define DEFAULT_DRAW_TEXTURE_IMAGE AR_DRAW_TEXTURE_FULL_IMAGE
#endif
#ifdef __APPLE__
# define DEFAULT_VIDEO_WIDTH 640
# define DEFAULT_VIDEO_HEIGHT 480
# define DEFAULT_IMAGE_PROC_MODE AR_IMAGE_PROC_IN_FULL
# define DEFAULT_FITTING_MODE AR_FITTING_TO_IDEAL
# define DEFAULT_DRAW_MODE AR_DRAW_BY_TEXTURE_MAPPING
# define DEFAULT_DRAW_TEXTURE_IMAGE AR_DRAW_TEXTURE_FULL_IMAGE
#undef APPLE_TEXTURE_FAST_TRANSFER
#endif
/* For NVIDIA OpenGL Driver */
#undef AR_OPENGL_TEXTURE_RECTANGLE
#if (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_ABGR) || (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_BGRA) || (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_RGBA) || (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_ARGB)
# define AR_PIX_SIZE_DEFAULT 4
#elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_BGR) || (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_RGB)
# define AR_PIX_SIZE_DEFAULT 3
#elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_2vuy) || (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_yuvs)
# define AR_PIX_SIZE_DEFAULT 2
#elif (AR_DEFAULT_PIXEL_FORMAT == AR_PIXEL_FORMAT_MONO)
# define AR_PIX_SIZE_DEFAULT 1
#else
# error Unknown default pixel format defined in config.h.
#endif
#define AR_GET_TRANS_MAT_MAX_LOOP_COUNT 5
#define AR_GET_TRANS_MAT_MAX_FIT_ERROR 1.0
#define AR_GET_TRANS_CONT_MAT_MAX_FIT_ERROR 1.0
#define AR_AREA_MAX 100000
#define AR_AREA_MIN 70
#define AR_SQUARE_MAX 30
#define AR_CHAIN_MAX 10000
#define AR_PATT_NUM_MAX 50
#define AR_PATT_SIZE_X 16
#define AR_PATT_SIZE_Y 16
#define AR_PATT_SAMPLE_NUM 64
#define AR_GL_CLIP_NEAR 50.0
#define AR_GL_CLIP_FAR 5000.0
#define AR_HMD_XSIZE 640
#define AR_HMD_YSIZE 480
#define AR_PARAM_NMIN 6
#define AR_PARAM_NMAX 1000
#define AR_PARAM_C34 100.0
#endif