void Init(){ glClearColor(0.3, 0.3, 0.3, 1.0); glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); mqoInit(); model = mqoCreateModel("mikumikoto.mqo", 2.0); }
//======================================================= // 初期化関数 //======================================================= void Init(void) { ARParam wparam; // カメラパラメータ // ビデオデバイスの設定 if( arVideoOpen( vconf_name ) < 0 ){ printf("ビデオデバイスのエラー\n"); exit(0); } // ウィンドウサイズの取得 if( arVideoInqSize( &xsize, &ysize ) < 0 ) exit(0); printf("Image size (x,y) = (%d,$d)\n", xsize, ysize); // カメラパラメータの設定 if( arParamLoad( cparam_name, 1, &wparam ) < 0 ){ printf("カメラパラメータの読み込みに失敗しました\n"); exit(0); } // カメラパラメータのサイズ調整 arParamChangeSize( &wparam, xsize, ysize, &cparam ); // カメラパラメータの初期化 arInitCparam( &cparam ); printf("*** Camera Parameter ***\n"); arParamDisp( &cparam ); // パターンファイルのロード for( int i=0; i<MARK_NUM; i++ ){ if( (marker[i].patt_id = arLoadPatt(marker[i].patt_name)) < 0){ printf("パターンファイルの読み込みに失敗しました\n"); printf("%s\n", marker[i].patt_name); exit(0); } } // gsubライブラリの初期化 argInit( &cparam, 1.0, 0, 0, 0, 0 ); mqoInit(); //メタセコイアの初期化 // モデルの読み込み for(int i=0;i<8;i++){ if ( (model[i] = mqoCreateModel( mqo_name[i], 1.0 )) == NULL ) { printf("モデルの読み込みに失敗しました\n"); // return -1; } } if ( (rmodel = mqoCreateModel( mqo_rnm, 1.0 )) == NULL ) { printf("モデルの読み込みに失敗しました\n"); // return -1; } // ウィンドウタイトルの設定 glutSetWindowTitle("PaperPiano"); }
int main(int argc,char**argv){ ARParam cparam; ARParam wparam; int xsize,ysize; glutInit(&argc,argv); if(arVideoOpen(vconf_name)<0){ puts("ビデオデバイスエラー"); return -1; } if(arVideoInqSize(&xsize,&ysize) < 0)return -1; if(arParamLoad(cparam_name,1,&wparam)< 0){ puts("パラメータ読み込み失敗"); return -1; } arParamChangeSize(&wparam,xsize,ysize,&cparam); arInitCparam(&cparam); nyobj = nyar_NyARTransMat_O2_create(&cparam); if( (patt_id=arLoadPatt(pattern_name)) < 0){ puts("パターン読み込みエラー"); return -1; } argInit(&cparam, 1.0, 0, 0, 0, 0); mqoInit(); if(Data_Load()==-1) return -1; arVideoCapStart(); InitGame(); arUtilTimerReset(); #ifdef _WIN32 TIMECAPS Caps; timeGetDevCaps(&Caps, sizeof(TIMECAPS)); // 性能取得 timeBeginPeriod(Caps.wPeriodMin); #endif argMainLoop(MouseEvent,KeyEvent,MainLoop); #ifdef _WIN32 timeEndPeriod(Caps.wPeriodMin); #endif nyar_NyARTransMat_O2_free(nyobj); return 0; }
// main関数 int main(int argc, char *argv[]) { capture = cvCreateCameraCapture( -1 ); frameImage = cvQueryFrame( capture ); // カメラ画像の取得 Mat frame(frameImage); // 初期設定 pDetector = new Detector( frame.cols, frame.rows, 500.0); pDrum = new Drum(); // 初期化 glutInit(&argc,argv); // OpenGL初期化 glutInitWindowPosition(100, 50); // ウィンドウの表示位置 glutInitWindowSize(640, 480); // ウィンドウのサイズ glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH); // ディスプレイ設定 glutCreateWindow("MQO Loader for OpenGL"); // ウィンドウの生成 // モデルを表示させる準備 mqoInit(); // GLMetaseqの初期化 // モデルのロード drumL2Model.mqo = mqoCreateModel("drum.mqo",1.0); drumL1Model.mqo = mqoCreateModel("drum.mqo",1.0); drumR1Model.mqo = mqoCreateModel("drum.mqo",1.0); drumR2Model.mqo = mqoCreateModel("drum.mqo",1.0); drumActModel.mqo = mqoCreateModel("drumAct.mqo",1.0); cymbalLModel.mqo = mqoCreateModel("cymbal.mqo",1.0); cymbalRModel.mqo = mqoCreateModel("cymbal.mqo",1.0); cymbalActModel.mqo = mqoCreateModel("cymbalAct.mqo",1.0); // 終了処理関数の設定 atexit(Quit); // コールバック関数の設定 glutDisplayFunc(Draw); // 描画処理関数の設定 glutIdleFunc(Draw); // アイドル時の処理関数の設定 glutReshapeFunc(Reshape); // ウィンドウ変形時の処理を行う関数の設定 glutKeyboardFunc(Keyboard); // キー入力時の処理関数の設定 // イベント待ちの無限ループに入る glutMainLoop(); // OpenCV後片付け cvReleaseCapture( &capture ); return 0; }