//copypaste de LR void SVMachine::run(){ // std::cout << "I'm running the mode "; if(C_executionMode == 0){ // std::cout << "Test" << std::endl; loadTrainingSet(C_trainingFile); loadTestingSet(C_testingFile); // //Comprobamos que se han cargado bien los dos archivos // // for(unsigned int i = 0; i < C_trainingSet.size(); i++){ // for(unsigned int j = 0; j < C_trainingSet[i].getInput().size(); j++){ // std::cout << C_trainingSet[i].getInput()[j] << ' '; // } // std::cout << std::endl << C_trainingSet[i].getResult()[0] << std::endl; // } // // std::cout << std::endl; // // for(unsigned int i = 0; i < C_testingSet.size(); i++){ // for(unsigned int j = 0; j < C_testingSet[i].getInput().size(); j++){ // std::cout << C_testingSet[i].getInput()[j] << ' '; // } // std::cout << std::endl << C_testingSet[i].getResult()[0] << std::endl; // } // // //Fin de la comprobacion train(); test(); } else if(C_executionMode == 1){ // std::cout << "Predict" << std::endl; loadInput(C_inputFile); loadParams(); // //Comprobamos que se leen bien los archivos // // for(unsigned int i = 0; i < C_theta.size(); i++){ // std::cout << C_theta[i] << ' '; // } // std::cout << std::endl << std::endl; // // for(unsigned int i = 0; i < C_input.getInput().size(); i++){ // std::cout << C_input.getInput()[i] << ' '; // } // std::cout << std::endl << C_input.getResult() << std::endl; // // //Fin de la comprobacion predict(C_input); showParams(); //Escribir lo que devuelve input en algun lado? } }
void LivePathEffectEditor::onSelectionChanged(Inkscape::Selection *sel) { if (lpe_list_locked) { // this was triggered by selecting a row in the list, so skip reloading lpe_list_locked = false; return; } effectlist_store->clear(); current_lpeitem = NULL; if ( sel && !sel->isEmpty() ) { SPItem *item = sel->singleItem(); if ( item ) { if ( SP_IS_LPE_ITEM(item) ) { SPLPEItem *lpeitem = SP_LPE_ITEM(item); effect_list_reload(lpeitem); current_lpeitem = lpeitem; set_sensitize_all(true); if ( sp_lpe_item_has_path_effect(lpeitem) ) { Inkscape::LivePathEffect::Effect *lpe = sp_lpe_item_get_current_lpe(lpeitem); if (lpe) { showParams(*lpe); lpe_list_locked = true; selectInList(lpe); } else { showText(_("Unknown effect is applied")); } } else { showText(_("No effect applied")); button_remove.set_sensitive(false); } } else { showText(_("Item is not a path or shape")); set_sensitize_all(false); } } else { showText(_("Only one item can be selected")); set_sensitize_all(false); } } else { showText(_("Empty selection")); set_sensitize_all(false); } }
void LivePathEffectEditor::on_effect_selection_changed() { Glib::RefPtr<Gtk::TreeSelection> sel = effectlist_view.get_selection(); if (sel->count_selected_rows () == 0) return; Gtk::TreeModel::iterator it = sel->get_selected(); LivePathEffect::LPEObjectReference * lperef = (*it)[columns.lperef]; if (lperef && current_lpeitem) { if (lperef->lpeobject->get_lpe()) { lpe_list_locked = true; // prevent reload of the list which would lose selection sp_lpe_item_set_current_path_effect(current_lpeitem, lperef); showParams(*lperef->lpeobject->get_lpe()); } } }
void handleKeyboardspecial(int key, int x, int y) { change_valf(key,active_param,'a',&alpha); change_vali(key,active_param,'d',&diffusivity_type_d); change_valf(key,active_param,'e',&warp_eta); change_valf(key,active_param,'E',&epsilon_d); change_vali(key,active_param,'i',&num_iterations_inner); change_vali(key,active_param,'I',&num_iterations_outer); change_valf(key,active_param,'l',&max_displacement); change_vali(key,active_param,'m',&max_warp_levels); change_valf(key,active_param,'O',&omega); clamp(0,&num_iterations_inner,10000000); clamp(0,&num_iterations_outer,10000000); clampf(0,&omega,2); clampf(0,&warp_eta,1); clamp(0,&max_warp_levels,10000000); showParams(); }
void CalcKinCharacteristics::run() { showParams(); core::Code code; core::InternalGearRatios k; core::GearSetTypes types; core::FakeItem fake; std::vector<core::IIOItem*> containers; containers.push_back( &code ); containers.push_back( &k ); containers.push_back( &types ); containers.push_back( &fake ); while ( core::Singletons::getInstance()->getLoaderFromFile()->load( containers, core::IOFileManager::eOutputFileType::KIN_SLOW ) ) { Characteristics ch; ch._tooth = calcZ(k, types); ch._torque = calcM( code, k ); ch._angVelocity = calcW( code, k, ch._tooth ); ch._power = calcN( ch._angVelocity, ch._torque ); ch._kpdZacStepen = calcKpdZacStepen( k, ch._angVelocity, ch._power ); ch._kpdTorque = calcMh( code, k, ch._kpdZacStepen ); ch._qualityCriterias = calcQualityCriterias( ch._kpdTorque, ch._angVelocity ); printCharacteristics( code, ch ); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile( NS_CORE IOFileManager::eOutputFileType::RESULT, code ); NS_CORE GearBoxWithChanger gb( code ); gb.createChainsForAllgears(); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile( NS_CORE IOFileManager::eOutputFileType::RESULT, gb ); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile( NS_CORE IOFileManager::eOutputFileType::RESULT, types ); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile( NS_CORE IOFileManager::eOutputFileType::RESULT, fake ); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile( NS_CORE IOFileManager::eOutputFileType::RESULT, k ); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile( NS_CORE IOFileManager::eOutputFileType::RESULT, ch ); NS_CORE Singletons::getInstance()->getIOFileManager()->writeToFile(NS_CORE IOFileManager::eOutputFileType::RESULT, NS_CORE IOFileManager::end); m_characteristics.push_back( ch ); } }
void handleKeyboard(unsigned char key, int x, int y) { int h; switch (key) { case 46: compute(); break; case 27: exit(0); case 'o': h = glutGet(GLUT_WINDOW_HEIGHT); glutReshapeWindow(h*num_images_side_by_side*nx/ny,h); glutPostRedisplay(); break; case '+': glutReshapeWindow(glutGet(GLUT_WINDOW_WIDTH)*1.5f, glutGet(GLUT_WINDOW_HEIGHT)*1.5f); glutPostRedisplay(); break; case '-': glutReshapeWindow(glutGet(GLUT_WINDOW_WIDTH)*0.6666f, glutGet(GLUT_WINDOW_HEIGHT)*0.6666f); glutPostRedisplay(); break; default: active_param=key; } showParams(); }
void handleKeyboard(unsigned char key, int x, int y) { /* keyboard handler */ switch(key) { case 'p': g_active_param=0; break; case 't': g_active_param=8; break; case 'a': g_active_param=1; break; case 'i': g_active_param=2; break; case 'g': g_active_param=4; break; case 'o': g_active_param=5; break; case 'w': g_active_param=6; break; case 'e': g_active_param=7; break; case 44: //, if (g_direct_compute==1) {g_direct_compute=0; break; } if (g_direct_compute==0) {g_direct_compute=1; break; } case 46: //. handleComputeDisplacements(); break; case 27: exit(1); default: printf("\nUnknown key pressed (Code %d).",key); } /* show new parameters and displacement field */ showParams(); handleDraw(); return; }
void Generate::run() { showParams(); NS_CORE Singletons::getInstance()->getIOFileManager()->cleanFiles(); auto N = NS_CORE Singletons::getInstance()->getInitialData()._numberOfPlanetaryGears; // Заполняем вектор всех возможных связей, пропускаем связи между элементами одного ряда и реверсивные связи. m_allLinks.clear(); for ( size_t i = 1; i < N; i++ ) { for ( const auto& mElem1 : s_elements ) { for ( size_t j = i + 1; j <= N; j++ ) { for ( const auto& mElem2 : s_elements ) { m_allLinks.push_back( NS_CORE Link( NS_CORE Element( mElem1, NS_CORE GearSetNumber( i ) ), NS_CORE Element( mElem2, NS_CORE GearSetNumber( j ) ) ) ); } } } } generateInOut(); }
int main (int argc, char* argv[]) { int maxgv; char * console_string = (char*)calloc(3000,sizeof(char)); lastclickx=lastclicky=-1; active_param='\0'; num_images_side_by_side=2; int no_frontend; parse_arg_int (argc,argv,"bordersizex",&bx,2,console_string); parse_arg_int (argc,argv,"bordersizey",&by,2,console_string); parse_arg_float (argc,argv,"alpha",&alpha,100,console_string); parse_arg_float (argc,argv,"epsilon_d",&epsilon_d,0.01f,console_string); parse_arg_int (argc,argv,"diffusivity_type_d",&diffusivity_type_d,0,console_string); parse_arg_int (argc,argv,"iterations_inner",&num_iterations_inner,30,console_string); parse_arg_int (argc,argv,"iterations_outer",&num_iterations_outer,5,console_string); parse_arg_float (argc,argv,"omega",&omega,1.9f,console_string); parse_arg_float (argc,argv,"eta",&warp_eta,0.5f,console_string); parse_arg_int (argc,argv,"max_warp_levels",&max_warp_levels,200,console_string); parse_arg_float (argc,argv,"max_displacement",&max_displacement,5.0f,console_string); parse_arg_string(argc,argv,"basename",basename,"../images/yos",console_string); parse_arg_int (argc,argv,"no_frontend",&no_frontend,0,console_string); char filename[200]; printf("------\n%s---------\n",console_string); sprintf(filename,"%s1.pgm",basename); f1 = read_pgm_image(filename,&nx,&ny,bx,by,&maxgv); sprintf(filename,"%s2.pgm",basename); f2 = read_pgm_image(filename,&nx,&ny,bx,by,&maxgv); //printf("f1[100][150] =%f\n",f1[100][150]); //printf("f1[150][20] =%f\n",f1[150][20]); calloc_multi(1,3,sizeof(float),3,nx,ny,0,bx,by,0,0,0,&of_rgb); calloc_multi(4,2,sizeof(float),nx,ny,bx,by,0,0,&u,&v,&u_truth,&v_truth); calloc_multi(1,3,sizeof(uchar),num_images_side_by_side*nx,ny, 3, 0,0,0, 0,0,0, &p6); // printf("f1[150][20] =%f\n",f1[150][20]); sprintf(filename,"%st.F",basename); read_barron_data(filename,u_truth,v_truth,nx,ny,bx,by);//------------------------------uncomment for computing errors.!!!!!!!!!!!!!!!!!!!! /* rewrite the barron file to txt file */ // FILE* UT; // FILE* VT; // int i,j; // UT = fopen("utruth.txt","w"); // VT = fopen("vtruth.txt","w"); // for(i = bx; i <nx+bx; i++){ // for(j = by; j < by+ny; j++) // { // fprintf(UT,"%f\t",u_truth[i][j]); // fprintf(VT,"%f\t",v_truth[i][j]); // } // fprintf(UT,"\n"); // fprintf(VT,"\n"); // } // fclose(UT); // fclose(VT); if(!no_frontend) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize(num_images_side_by_side*nx,ny); glutCreateWindow("Frontend Skeleton"); glutDisplayFunc(handleDraw); glutKeyboardFunc(handleKeyboard); glutSpecialFunc(handleKeyboardspecial); glutMouseFunc(handleMouse); glutReshapeFunc(ReSizeGLScene); glEnable(GL_TEXTURE_2D); glGenTextures(1, &gl_rgb_tex); glBindTexture(GL_TEXTURE_2D, gl_rgb_tex); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); if(ny%4) glPixelStorei(GL_UNPACK_ALIGNMENT, 1) ; compute(); showParams(); glutMainLoop(); } else { compute(); showParams(); } return(0); }
PicProcessorResize::PicProcessorResize(wxString name, wxString command, wxTreeCtrl *tree, PicPanel *display, wxPanel *parameters): PicProcessor(name, command, tree, display, parameters) { //p->DestroyChildren(); //r = new BrightPanel(p,this,c); showParams(); }
int main (int argc, char* argv[]) { int dims[10]; char out_file[80]; /* ---------- set boundary and grid size ----------------------------------- */ g_bx=1; g_by=1; g_hx=1; g_hy=sqrt(3)/2; /* ---------- read in arguments -------------------------------------------- */ if (argc <3) { fprintf(stderr, "Not sufficient arguments: \n"); fprintf(stderr, "<APP> <LF H5 in file> <LF in dataset> <LF H5 out file>\n"); exit(1); } strcpy(lf_h5,argv[1]); strcpy(lf_dataset,argv[2]); strcpy(out_file,argv[3]); /*TODO Group truth*/ //strcpy(g_ref,argv[4]); /* set default parameters */ g_g_pixel_ratio = 1; g_g_max_disp=2.0; g_direct_compute=0; // g_e_sigma=1; //half kernel size g_m_alpha=2; g_m_type=0; g_active_param=1000; g_u_ref=NULL; g_v_ref=NULL; g_n_omega=1.95; g_n_warp_levels=6; g_n_warp_eta=0.5; g_n_iter = 800; // number of iteration /* ---------- read in information of light field ------------------- */ data = hdf5_read_lf(lf_h5, lf_dataset,W,H,S,T,C); //exit(1); g_nx=W; g_ny=H; /* extract two view */ // RGB image from three views; float * view00 = new float[W*H*3]; float * view03 = new float[W*H*3]; float * view0_3 = new float[W*H*3]; float * view30 = new float[W*H*3]; float * view_30 = new float[W*H*3]; // grayscale image from three view; float * img_c; float * img_l; float * img_r; float * img_u; float * img_d; // the center view index. int center = floor((S-1)/2.0); for(int j = 0; j<H; j++) { for(int i =0; i<W; i++) { for(int c=0; c<3; c++) { view00[j*W*3+i*3+c]=data[c*W*H*S*T + i*H*S*T + j*S*T + (center)*T + center]; view03[j*W*3+i*3+c]=data[c*W*H*S*T + i*H*S*T + j*S*T + (center)*T + center-5]; view0_3[j*W*3+i*3+c]=data[c*W*H*S*T + i*H*S*T + j*S*T + (center)*T + center-3]; view30[j*W*3+i*3+c]=data[c*W*H*S*T + i*H*S*T + j*S*T + (center)*T + center+3]; view_30[j*W*3+i*3+c]=data[c*W*H*S*T + i*H*S*T + j*S*T + (center)*T + center+5]; } } } img_c = convertRGBtoGray(W,H,view00); img_l = convertRGBtoGray(W,H,view_30); img_r = convertRGBtoGray(W,H,view30); img_d = convertRGBtoGray(W,H,view0_3); img_u = convertRGBtoGray(W,H,view03); free(view00); free(view03); free(view0_3); free(view30); free(view_30); /* Write gray image */ writeImageGray("view_c.png",W,H,img_c,"Image center"); writeImageGray("view_l.png",W,H,img_l,"Image Left"); writeImageGray("view_r.png",W,H,img_r,"Image Right"); writeImageGray("view_u.png",W,H,img_u,"Image Up"); writeImageGray("view_d.png",W,H,img_d,"Image Down"); /* ---------- memory allocation ------------------------------------ */ ALLOC_MATRIX(2, g_nx+2*g_bx, g_ny+2*g_by, &g_f1, &g_f2); ALLOC_MATRIX(2, g_nx+2*g_bx, g_ny+2*g_by, &g_f1_s, &g_f2_s); ALLOC_MATRIX(1, g_nx+2*g_bx, g_ny+2*g_by, &g_f2_bw); ALLOC_MATRIX(2, g_nx+2*g_bx, g_ny+2*g_by, &g_u, &g_v); //if (argc==5) // ALLOC_MATRIX(2, g_nx+2*g_bx, g_ny+2*g_by, &g_u_ref, &g_v_ref); ALLOC_CUBIX(1, 2*g_nx+2*g_bx, g_ny+2*g_by, 3, &g_p6); ALLOC_CUBIX(1, g_nx+2*g_bx, g_ny+2*g_by, 3, &g_disp); //g_pixels = (GLubyte *) malloc (2*(g_nx+1)*g_ny*3*sizeof(GLubyte)); g_pixels = new GLubyte[2*(g_nx+1)*g_ny*3*sizeof(GLubyte)]; uvbuffer = new float[g_nx*g_ny*2]; /* ---------- read in image pair ------------------------------------------- */ // // calculate_flow_write_img(img_c,img_l,"flow_left.png",out_file,"/flow/left"); // calculate_flow_write_img(img_c,img_r,"flow_right.png",out_file,"/flow/right"); // calculate_flow_write_img(img_c,img_u,"flow_up.png",out_file,"/flow/up"); // calculate_flow_write_img(img_c,img_d,"flow_down.png",out_file,"/flow/down"); /* ---------- read in ground truth displacement field ---------------------- */ //if (argc==5) // read_barron_data(g_ref,g_u_ref,g_v_ref,g_nx,g_ny,g_bx,g_by); // /* ---------- M A I N L O O P -------------------------------------------- */ for(int j=0; j<g_ny; j++) { for(int i=0; i<g_nx; i++) { g_f1[i+g_bx][j+g_by]= img_c[j*g_nx+i]*255; g_f2[i+g_bx][j+g_by]= img_u[j*g_nx+i]*255; } } // open OpenGL window */ glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize((int)round(2*g_nx*g_g_pixel_ratio), (int)round(g_ny*g_g_pixel_ratio)); glutCreateWindow("CORRESPONDENCE PROBLEMS - VISUALISATION FRONTEND"); // register handle routines glutDisplayFunc(handleDraw); glutIdleFunc(handleComputeNothing); glutKeyboardFunc(handleKeyboard); glutSpecialFunc(handleKeyboardspecial); glutMouseFunc(handleMouse); // // main handleComputeDisplacements(); handleDraw(); showParams(); glutMainLoop(); /* ---------- free memory -------------------------------------------------- */ FREE_MATRIX (2, g_nx+2*g_bx, g_ny+2*g_by, g_f1, g_f2); FREE_MATRIX (2, g_nx+2*g_bx, g_ny+2*g_by, g_f1_s, g_f2_s); FREE_MATRIX (1, g_nx+2*g_bx, g_ny+2*g_by, g_f2_bw); FREE_MATRIX (2, g_nx+2*g_bx, g_ny+2*g_by, g_u, g_v); // // printf("free matrix \n"); // // //TODO handle ground truth. // // if (argc==5) // // FREE_MATRIX(2, g_nx+2*g_bx, g_ny+2*g_by, g_u_ref, g_v_ref); // FREE_CUBIX (1, 2*g_nx+2*g_bx, g_ny+2*g_by, 3, g_p6); FREE_CUBIX (1, g_nx+2*g_bx, g_ny+2*g_by, 3, g_disp); free(g_pixels); free(uvbuffer); printf("\n\n\n"); return(0); }
void handleKeyboardspecial(int key, int x, int y) { /* keyboard handler */ switch(key) { case GLUT_KEY_F1: /* call help menu */ print_console_line(); printf("\n\n F1 ........this help\n"); printf(" F2 ........write out displacement field in colour code \n"); printf(" F8 ........write out motion compensated 2nd frame \n"); printf(" ESC ........program termination\n"); printf(" p ........select presmoothing parameter\n"); printf(" a ........select smoothness weight\n"); printf(" i ........select number of iterations\n"); printf(" o ........select SOR overrelaxation parameter\n"); printf(" w ........select number of warping levels\n"); printf(" e ........select warping rescaling factor\n"); printf(" g ........select max displacement magnitude\n"); printf(" up ........increase active parameter\n"); printf(" down ........decrease active parameter\n"); printf(" , ........direct computation on/off \n"); printf(" . ........compute displacement field \n"); print_console_line(); fflush(stdout); break; case GLUT_KEY_F2: /* write out displacement field */ if (g_u_ref!=NULL) { int i,j; for (i=g_bx; i<g_nx+g_bx; i++) for (j=g_by; j<g_ny+g_by; j++) { if((g_u_ref[i][j]==100.0)&&(g_v_ref[i][j]==100.0)) { g_u[i][j]=100.0; g_v[i][j]=100.0; } } } write_ppm_blank_header("out.ppm",g_nx,g_ny); write_ppm_data("out.ppm",g_p6,g_nx,g_ny,g_bx+g_nx,g_by); write_ppm_blank_header("displacement.ppm",g_nx,g_ny); write_ppm_data("displacement.ppm",g_disp,g_nx,g_ny,g_bx,g_by); break; case GLUT_KEY_F8: /* write out motion compensated 2nd frame */ backward_registration(g_f1,g_f2,g_f2_bw,g_u,g_v, g_nx,g_ny,g_bx,g_by,g_hx,g_hy); write_pgm_blank_header("frame2_bw.pgm",g_nx,g_ny); write_pgm_data("frame2_bw.pgm",g_f2_bw,g_nx,g_ny,g_bx,g_by); break; case GLUT_KEY_DOWN: /* decrease sigma */ if (g_active_param==0) { g_e_sigma-=0.1; if (g_e_sigma<0.1) g_e_sigma=0.1; if (g_direct_compute==1) handleComputeDisplacements(); break; } /* decrease alpha */ if (g_active_param==1) { g_m_alpha--; if (g_m_alpha<=0) g_m_alpha=1; if (g_direct_compute==1) handleComputeDisplacements(); break; } /* decrease number of iterations */ if (g_active_param==2) { g_n_iter-=100; if (g_n_iter<0) g_n_iter=0; if (g_direct_compute==1) handleComputeDisplacements(); break; } /* decrease displacement field magnitude (visualsiation) */ if (g_active_param==4) { if (g_g_max_disp>=0.01) g_g_max_disp=g_g_max_disp/1.1; break; } /* decrease omega */ if (g_active_param==5) { g_n_omega=g_n_omega-0.01; if (g_n_omega<0.01) g_n_omega=0.01; if (g_direct_compute==1) handleComputeDisplacements(); break; } /* decrease number of warping levels */ if (g_active_param==6) { g_n_warp_levels-=1; if (g_n_warp_levels<0) g_n_warp_levels=0; if (g_direct_compute==1) handleComputeDisplacements(); break; } /* decrease type */ if (g_active_param==8) { g_m_type-=1; if (g_m_type<0) g_m_type=0; if (g_direct_compute==1) handleComputeDisplacements(); break; } /* decrease eta */ if (g_active_param==7) { g_n_warp_eta-=0.05; if (g_n_warp_eta<0.05) g_n_warp_eta=0.05; if (g_direct_compute==1) handleComputeDisplacements(); break; } case GLUT_KEY_UP: /* increase sigma */ if (g_active_param==0) { g_e_sigma+=0.1; if (g_direct_compute==1) handleComputeDisplacements(); break; } /* increase alpha */ if (g_active_param==1) { g_m_alpha++; if (g_direct_compute==1) handleComputeDisplacements(); break; } /* increase number of iterations */ if (g_active_param==2) { g_n_iter+=100; if (g_direct_compute==1) handleComputeDisplacements(); break; } /* increase displacement field magnitude (visualisation) */ if (g_active_param==4) { g_g_max_disp=g_g_max_disp*1.1; break; } /* increase omega */ if (g_active_param==5) { g_n_omega+=0.01; if (g_n_omega>1.99) g_n_omega=1.99; if (g_direct_compute==1) handleComputeDisplacements(); break; } /* decrease number of warping levels */ if (g_active_param==6) { g_n_warp_levels+=1; if (g_direct_compute==1) handleComputeDisplacements(); break; } /* increase eta */ if (g_active_param==7) { g_n_warp_eta+=0.05; if (g_n_warp_eta>0.95) g_n_warp_eta=0.95; if (g_direct_compute==1) handleComputeDisplacements(); break; } /* increase type */ if (g_active_param==8) { g_m_type+=1; if (g_m_type>10) g_m_type=10; if (g_direct_compute==1) handleComputeDisplacements(); break; } default: printf("\nUnknown key pressed (Code %d).",key); } /* show new parameters and displacement field */ showParams(); handleDraw(); return; }