diff options
Diffstat (limited to 'multi/SRC/multiTestOriginalDispLite.cpp')
-rw-r--r-- | multi/SRC/multiTestOriginalDispLite.cpp | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/multi/SRC/multiTestOriginalDispLite.cpp b/multi/SRC/multiTestOriginalDispLite.cpp deleted file mode 100644 index 0bf113d..0000000 --- a/multi/SRC/multiTestOriginalDispLite.cpp +++ /dev/null @@ -1,223 +0,0 @@ -#ifdef _WIN32 -#include <windows.h> -#endif -#include <stdio.h> -#include <stdlib.h> -#ifndef __APPLE__ -#include <GL/gl.h> -#include <GL/glut.h> -#else -#include <OpenGL/gl.h> -#include <GLUT/glut.h> -#endif -#include <AR/gsub_lite.h> -#include <AR/video.h> -#include <AR/param.h> -#include <AR/ar.h> -#include <AR/arMulti.h> - -/* set up the video format globals */ - -#ifdef _WIN32 -char *vconf = "Data\\WDM_camera_flipV.xml"; -#else -char *vconf = ""; -#endif - -int xsize, ysize; -int thresh = 100; -int count = 0; - -char *cparam_name = "Data/camera_para.dat"; -ARParam cparam; - -char *config_name = "Data/multi/marker.dat"; -ARMultiMarkerInfoT *config; - -static void init(void); -static void cleanup(void); -static void mainLoop(); -static void draw( double trans1[3][4], double trans2[3][4], int mode ); - - -int main(int argc, char **argv) -{ - glutInit(&argc, argv); - init(); - - arVideoCapStart(); - while(1){ - arUtilSleep(90000); - mainLoop(); - } - return (0); -} - - - -/* main loop */ -static void mainLoop() -{ - ARUint8 *dataPtr; - ARMarkerInfo *marker_info; - int marker_num; - double err; - int i; - - /* grab a vide frame */ - arUtilSleep(90000); - if( (dataPtr = (ARUint8 *)arVideoGetImage()) == NULL ) { - arUtilSleep(2); - return; - } - if( count == 0 ) arUtilTimerReset(); - count++; - - /* detect the markers in the video frame */ - if( arDetectMarkerLite(dataPtr, thresh, &marker_info, &marker_num) < 0 ) { - cleanup(); - exit(0); - } - - argDrawMode2D(); - if( !arDebug ) { - argDispImage( dataPtr, 0,0 ); - } - else { - argDispImage( dataPtr, 1, 1 ); - if( arImageProcMode == AR_IMAGE_PROC_IN_HALF ) - argDispHalfImage( arImage, 0, 0 ); - else - argDispImage( arImage, 0, 0); - - glColor3f( 1.0, 0.0, 0.0 ); - glLineWidth( 1.0 ); - for( i = 0; i < marker_num; i++ ) { - argDrawSquare( marker_info[i].vertex, 0, 0 ); - } - glLineWidth( 1.0 ); - } - - arVideoCapNext(); - - if( (err=arMultiGetTransMat(marker_info, marker_num, config)) < 0 ) { - argSwapBuffers(); - return; - } - printf("err = %f\n", err); - if(err > 100.0 ) { - argSwapBuffers(); - return; - } -/* - for(i=0;i<3;i++) { - for(j=0;j<4;j++) printf("%10.5f ", config->trans[i][j]); - printf("\n"); - } - printf("\n"); -*/ - argDrawMode3D(); - argDraw3dCamera( 0, 0 ); - glClearDepth( 1.0 ); - glClear(GL_DEPTH_BUFFER_BIT); - for( i = 0; i < config->marker_num; i++ ) { - if( config->marker[i].visible >= 0 ) draw( config->trans, config->marker[i].trans, 0 ); - else draw( config->trans, config->marker[i].trans, 1 ); - } - argSwapBuffers(); -} - -static void init( void ) -{ - ARParam wparam; - - /* open the video path */ - if( arVideoOpen( vconf ) < 0 ) exit(0); - /* find the size of the window */ - if( arVideoInqSize(&xsize, &ysize) < 0 ) exit(0); - printf("Image size (x,y) = (%d,%d)\n", xsize, ysize); - - /* set the initial camera parameters */ - if( arParamLoad(cparam_name, 1, &wparam) < 0 ) { - printf("Camera parameter load error !!\n"); - exit(0); - } - arParamChangeSize( &wparam, xsize, ysize, &cparam ); - arInitCparam( &cparam ); - printf("*** Camera Parameter ***\n"); - arParamDisp( &cparam ); - - if( (config = arMultiReadConfigFile(config_name)) == NULL ) { - printf("config data load error !!\n"); - exit(0); - } - - /* open the graphics window */ - argInit( &cparam, 1.0, 0, 2, 1, 0 ); - arFittingMode = AR_FITTING_TO_IDEAL; - arImageProcMode = AR_IMAGE_PROC_IN_HALF; - argDrawMode = AR_DRAW_BY_TEXTURE_MAPPING; - argTexmapMode = AR_DRAW_TEXTURE_HALF_IMAGE; -} - -/* cleanup function called when program exits */ -static void cleanup(void) -{ - arVideoCapStop(); - arVideoClose(); - argCleanup(); -} - -static void draw( double trans1[3][4], double trans2[3][4], int mode ) -{ - double gl_para[16]; - GLfloat mat_ambient[] = {0.0, 0.0, 1.0, 1.0}; - GLfloat mat_ambient1[] = {1.0, 0.0, 0.0, 1.0}; - GLfloat mat_flash[] = {0.0, 0.0, 1.0, 1.0}; - GLfloat mat_flash1[] = {1.0, 0.0, 0.0, 1.0}; - GLfloat mat_flash_shiny[] = {50.0}; - GLfloat mat_flash_shiny1[]= {50.0}; - GLfloat light_position[] = {100.0,-200.0,200.0,0.0}; - GLfloat ambi[] = {0.1, 0.1, 0.1, 0.1}; - GLfloat lightZeroColor[] = {0.9, 0.9, 0.9, 0.1}; - - argDrawMode3D(); - argDraw3dCamera( 0, 0 ); - glEnable(GL_DEPTH_TEST); - glDepthFunc(GL_LEQUAL); - - /* load the camera transformation matrix */ - glMatrixMode(GL_MODELVIEW); - argConvGlpara(trans1, gl_para); - glLoadMatrixd( gl_para ); - argConvGlpara(trans2, gl_para); - glMultMatrixd( gl_para ); - - if( mode == 0 ) { - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glLightfv(GL_LIGHT0, GL_POSITION, light_position); - glLightfv(GL_LIGHT0, GL_AMBIENT, ambi); - glLightfv(GL_LIGHT0, GL_DIFFUSE, lightZeroColor); - glMaterialfv(GL_FRONT, GL_SPECULAR, mat_flash); - glMaterialfv(GL_FRONT, GL_SHININESS, mat_flash_shiny); - glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); - } - else { - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glLightfv(GL_LIGHT0, GL_POSITION, light_position); - glLightfv(GL_LIGHT0, GL_AMBIENT, ambi); - glLightfv(GL_LIGHT0, GL_DIFFUSE, lightZeroColor); - glMaterialfv(GL_FRONT, GL_SPECULAR, mat_flash1); - glMaterialfv(GL_FRONT, GL_SHININESS, mat_flash_shiny1); - glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient1); - } - glMatrixMode(GL_MODELVIEW); - glTranslatef( 0.0, 0.0, 25.0 ); - if( !arDebug ) glutSolidCube(50.0); - else glutWireCube(50.0); - glDisable( GL_LIGHTING ); - - glDisable( GL_DEPTH_TEST ); -} |