vertex.tex 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. \documentclass[a4paper,12pt]{article}
  2. \usepackage[french]{babel}
  3. \usepackage[T1]{fontenc}
  4. \usepackage[latin1]{inputenc}
  5. %\usepackage{amsmath}
  6. \author{Rémi Synave, Stefka Gueorguieva, Pascal Desbarats}
  7. \title{Manuel de la bibliothèque VERTEX}
  8. \date{}
  9. \begin{document}
  10. \maketitle
  11. \section{Utilisation}
  12. Cette bibliothèque implémente les structures de données nécessaires au stockage des sommets d'un maillage ainsi que des fonctions pour manipuler ceux-ci.\\
  13. Deux strucutres de données sont disponibles : \textit{vf\_vertex} pour le stockage des maillages \textit{vf\_model} et \textit{vef\_vertex} pour le stockage des maillages \textit{vef\_model}.
  14. \section{Structures de données}
  15. La structure \textit{vf\_vertex} est utilisé par la structure \textit{vf\_model} pour stocker les coordonnées des sommets d'un maillage. Cette structure est donc composée de trois rééls qui sont les trois composantes X,Y et Z du sommet ainsi qu'une liste d'index \textit{incidentvertices} de sommets en relation direct, reliés par une arête, avec ce sommet.\\
  16. \begin{verbatim}
  17. typedef struct
  18. {
  19. double x;
  20. double y;
  21. double z;
  22. int *incidentvertices;
  23. int nbincidentvertices;
  24. }vf_vertex;
  25. \end{verbatim}
  26. La structure \textit{vef\_vertex} est utilisé par la structure \textit{vef\_model} pour stocker les coordonnées des sommets d'un maillage. Cette structure est donc composée de trois rééls qui sont les trois composantes X,Y et Z du sommet ainsi qu'une liste d'index \textit{sharededges} d'arêtes partant ce sommet.\\
  27. \begin{verbatim}
  28. typedef struct
  29. {
  30. double x;
  31. double y;
  32. double z;
  33. int *sharededges;
  34. int nbsharededges;
  35. }vef_vertex;
  36. \end{verbatim}
  37. \section{Fonctions}
  38. \subsection{Fonctions utilisant \textit{vf\_vertex}}
  39. \textbullet void vf\_vertex\_display(vf\_vertex v)\\
  40. Affichage d'un \textit{vf\_vertex}.\\
  41. \textbullet void vf\_vertex\_translate(vf\_vertex *v, vector3d delta)\\
  42. Translation d'un vecteur passé en paramètre.\\
  43. Les composantes \textit{dx,dy,dz} sont ajoutés aux coordonnées du \textit{vf\_vertex}.\\
  44. \textbullet void vf\_vertex\_rotateX\_radian(vf\_vertex *v, double angle)\\
  45. Rotation suivant l'axe X d'un angle en radian.\\
  46. \textbullet void vf\_vertex\_rotateX\_degre(vf\_vertex *v, double angle)\\
  47. Rotation suivant l'axe X d'un angle en degre.\\
  48. \textbullet void vf\_vertex\_rotateX\_center\_radian(vf\_vertex *v, double angle, point3d centre)\\
  49. Rotation suivant l'axe X d'un angle en radian et autour du \textit{point3d centre}.\\
  50. \textbullet void vf\_vertex\_rotateX\_center\_degre(vf\_vertex *v, double angle, point3d centre)\\
  51. Rotation suivant l'axe X d'un angle en degre et autour du \textit{point3d centre}.\\
  52. \textbullet void vf\_vertex\_rotateY\_radian(vf\_vertex *v, double angle)\\
  53. Rotation suivant l'axe Y d'un angle en radian.\\
  54. \textbullet void vf\_vertex\_rotateY\_degre(vf\_vertex *v, double angle)\\
  55. Rotation suivant l'axe Y d'un angle en degre.\\
  56. \textbullet void vf\_vertex\_rotateY\_center\_radian(vf\_vertex *v, double angle, point3d centre)\\
  57. Rotation suivant l'axe Y d'un angle en radian et autour du \textit{point3d centre}.\\
  58. \textbullet void vf\_vertex\_rotateY\_center\_degre(vf\_vertex *v, double angle, point3d centre)\\
  59. Rotation suivant l'axe Y d'un angle en degre et autour du \textit{point3d centre}.\\
  60. \textbullet void vf\_vertex\_rotateZ\_radian(vf\_vertex *v, double angle)\\
  61. Rotation suivant l'axe Z d'un angle en radian.\\
  62. \textbullet void vf\_vertex\_rotateZ\_degre(vf\_vertex *v, double angle)\\
  63. Rotation suivant l'axe Z d'un angle en degre.\\
  64. \textbullet void vf\_vertex\_rotateZ\_center\_radian(vf\_vertex *v, double angle, point3d centre)\\
  65. Rotation suivant l'axe Z d'un angle en radian et autour du \textit{point3d centre}.\\
  66. \textbullet void vf\_vertex\_rotateZ\_center\_degre(vf\_vertex *v, double angle, point3d centre)\\
  67. Rotation suivant l'axe Z d'un angle en degre et autour du \textit{point3d centre}.\\
  68. \subsection{Fonctions utilisant \textit{vef\_vertex}}
  69. \textbullet void vef\_vertex\_display(vef\_vertex v)\\
  70. Affichage d'un \textit{vef\_vertex}.\\
  71. \textbullet void vef\_vertex\_translate(vef\_vertex *v, vector3d delta)\\
  72. Translation d'un vecteur passé en paramètre.\\
  73. Les composantes \textit{dx,dy,dz} sont ajoutés aux coordonnées du \textit{vef\_vertex}.\\
  74. \textbullet void vef\_vertex\_rotateX\_radian(vef\_vertex *v, double angle)\\
  75. Rotation suivant l'axe X d'un angle en radian.\\
  76. \textbullet void vef\_vertex\_rotateX\_degre(vef\_vertex *v, double angle)\\
  77. Rotation suivant l'axe X d'un angle en degre.\\
  78. \textbullet void vef\_vertex\_rotateX\_center\_radian(vef\_vertex *v, double angle, point3d centre)\\
  79. Rotation suivant l'axe X d'un angle en radian et autour du \textit{point3d centre}.\\
  80. \textbullet void vef\_vertex\_rotateX\_center\_degre(vef\_vertex *v, double angle, point3d centre)\\
  81. Rotation suivant l'axe X d'un angle en degre et autour du \textit{point3d centre}.\\
  82. \textbullet void vef\_vertex\_rotateY\_radian(vef\_vertex *v, double angle)\\
  83. Rotation suivant l'axe Y d'un angle en radian.\\
  84. \textbullet void vef\_vertex\_rotateY\_degre(vef\_vertex *v, double angle)\\
  85. Rotation suivant l'axe Y d'un angle en degre.\\
  86. \textbullet void vef\_vertex\_rotateY\_center\_radian(vef\_vertex *v, double angle, point3d centre)\\
  87. Rotation suivant l'axe Y d'un angle en radian et autour du \textit{point3d centre}.\\
  88. \textbullet void vef\_vertex\_rotateY\_center\_degre(vef\_vertex *v, double angle, point3d centre)\\
  89. Rotation suivant l'axe Y d'un angle en degre et autour du \textit{point3d centre}.\\
  90. \textbullet void vef\_vertex\_rotateZ\_radian(vef\_vertex *v, double angle)\\
  91. Rotation suivant l'axe Z d'un angle en radian.\\
  92. \textbullet void vef\_vertex\_rotateZ\_degre(vef\_vertex *v, double angle)\\
  93. Rotation suivant l'axe Z d'un angle en degre.\\
  94. \textbullet void vef\_vertex\_rotateZ\_center\_radian(vef\_vertex *v, double angle, point3d centre)\\
  95. Rotation suivant l'axe Z d'un angle en radian et autour du \textit{point3d centre}.\\
  96. \textbullet void vef\_vertex\_rotateZ\_center\_degre(vef\_vertex *v, double angle, point3d centre)\\
  97. Rotation suivant l'axe Z d'un angle en degre et autour du \textit{point3d centre}.\\
  98. \end{document}