00001 /* -------------------------------------------------------------------------- 00002 * Copyright (C) 2004 Hitlab NZ. 00003 * The distribution policy is describe on the Copyright.txt furnish 00004 * with this library. 00005 * -------------------------------------------------------------------------*/ 00023 /* -------------------------------------------------------------------------- 00024 * History : 00025 * Rev Date Who Changes 00026 * 00027 *----------------------------------------------------------------------------*/ 00028 00029 #ifndef AR_MULTI_H 00030 #define AR_MULTI_H 00031 #ifdef __cplusplus 00032 extern "C" { 00033 #endif 00034 00035 // ============================================================================ 00036 // Public includes. 00037 // ============================================================================ 00038 00039 #include <stdio.h> 00040 #include <AR/config.h> 00041 #include <AR/param.h> 00042 #include <AR/ar.h> 00043 00044 // ============================================================================ 00045 // Public types and defines. 00046 // ============================================================================ 00047 00062 typedef struct { 00063 int patt_id; 00064 double width; 00065 double center[2]; 00066 double trans[3][4]; 00067 double itrans[3][4]; 00068 double pos3d[4][3]; 00069 int visible; 00070 /*---*/ 00071 int visibleR; 00072 } ARMultiEachMarkerInfoT; 00073 00085 typedef struct { 00086 ARMultiEachMarkerInfoT *marker; 00087 int marker_num; 00088 double trans[3][4]; 00089 int prevF; 00090 /*---*/ 00091 double transR[3][4]; 00092 } ARMultiMarkerInfoT; 00093 00094 // ============================================================================ 00095 // Public globals. 00096 // ============================================================================ 00097 00098 // ============================================================================ 00099 // Public functions. 00100 // ============================================================================ 00101 00111 ARMultiMarkerInfoT *arMultiReadConfigFile( const char *filename ); 00112 00124 double arMultiGetTransMat(ARMarkerInfo *marker_info, int marker_num, 00125 ARMultiMarkerInfoT *config); 00126 00135 int arMultiActivate( ARMultiMarkerInfoT *config ); 00136 00145 int arMultiDeactivate( ARMultiMarkerInfoT *config ); 00146 00155 int arMultiFreeConfig( ARMultiMarkerInfoT *config ); 00156 00157 /*------------------------------------*/ 00158 double arsMultiGetTransMat(ARMarkerInfo *marker_infoL, int marker_numL, 00159 ARMarkerInfo *marker_infoR, int marker_numR, 00160 ARMultiMarkerInfoT *config); 00161 00162 00163 #ifdef __cplusplus 00164 } 00165 #endif 00166 #endif