main.c 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <gsl/gsl_linalg.h>
  5. #include <gsl/gsl_math.h>
  6. #include <time.h>
  7. #include <a2ri/io.h>
  8. #include "opengl.h"
  9. #include <a2ri/overlap.h>
  10. #include <a2ri/icp.h>
  11. int main(int argc, char *argv[])
  12. {
  13. vf_model m,base;
  14. if(argc!=5 && argc!=11)
  15. {
  16. printf("usage : ./icp -v <modele de base> <modele a recaler> <critere d'arret Dkn>\n");
  17. printf("ou\t./icp <modele de base> <modele a recaler> <critere d'arret Dkn> <rotation suivant X> <rotation suivant Y> >rotation suivant Z> <translation suivant X> <translation suivant Y> <translation suivant Z> <AABB|ritter>\n");
  18. return 1;
  19. }
  20. a2ri_vf_init(&base);
  21. a2ri_vf_init(&m);
  22. if(!a2ri_vf_open_file(argv[2],&base))
  23. {
  24. printf("modele introuvable\n");
  25. return 0;
  26. }
  27. if(!a2ri_vf_open_file(argv[3],&m))
  28. {
  29. printf("modele introuvable\n");
  30. return 0;
  31. }
  32. printf("clic gauche : faire tourner la scene\n");
  33. printf("clic droit : faire translater la scene\n");
  34. printf("molette : se rapprocher/s eloigner de la scene\n");
  35. printf("touche w/x/c : faire tourner l'objet a recaler\n");
  36. printf("touche v/b/n : faire translater l'objet a recaler\n");
  37. printf("touche i : lancer l'algorithme ICP\n");
  38. printf("touche r : entrer manuellement un taux de recouvrement (100 %d par defaut)\n",37);
  39. printf("touche t : lance trimmed ICP - ne pas oublier d'entrer le taux de recouvrement avant\n");
  40. printf("touche e : regler la sensibilite de l'algorithme Automated Trimmed ICP (0.3 par defaut)\n");
  41. printf("touche a : lance Automated Trimmed ICP\n");
  42. printf("touche s : sauver le maillage recale\n");
  43. printf("touche q/Q/esc : quitter\n");
  44. go(argc,argv,&base,&m,atof(argv[4]));
  45. return 0;
  46. }