io.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443
  1. /*************************************/
  2. /* Auteur : Rémi Synave */
  3. /* Date de création : 10/03/10 */
  4. /* Date de modification : 18/09/16 */
  5. /* Version : 0.4 */
  6. /*************************************/
  7. /***************************************************************************/
  8. /* This file is part of a2ri. */
  9. /* */
  10. /* a2ri is free software: you can redistribute it and/or modify it */
  11. /* under the terms of the GNU Lesser General Public License as published */
  12. /* by the Free Software Foundation, either version 3 of the License, or */
  13. /* (at your option) any later version. */
  14. /* */
  15. /* a2ri is distributed in the hope that it will be useful, */
  16. /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
  17. /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
  18. /* GNU Lesser General Public License for more details. */
  19. /* */
  20. /* You should have received a copy of the GNU Lesser General Public */
  21. /* License along with a2ri. */
  22. /* If not, see <http://www.gnu.org/licenses/>. */
  23. /***************************************************************************/
  24. #ifndef IO__H
  25. #define IO__H
  26. #include <locale.h>
  27. #include "model.h"
  28. #include "skeleton.h"
  29. /**
  30. Ouverture d'un fichier représentant un squelette
  31. @param file chemin vers le fichier à ouvrir
  32. @param s pointeur vers le squelette
  33. @return 1 si succès, 0 sinon
  34. */
  35. int a2ri_skeleton_open_file(
  36. const char * const file,
  37. skeleton * s);
  38. /**
  39. Ouverture d'un fichier contenant un modèle
  40. @param file chemin du fichier à ouvrir
  41. @param m pointeur sur le modèle
  42. @return 1 si succès, 0 sinon
  43. */
  44. int a2ri_vf_open_file (
  45. const char * const file,
  46. vf_model * m);
  47. /**
  48. Ouverture d'un fichier asc contenant un nuage de points
  49. @param file chemin du fichier à  ouvrir
  50. @param m pointeur sur le modèle
  51. @return 1 si succès, 0 sinon
  52. */
  53. int a2ri_vf_load_asc (
  54. const char * const file,
  55. vf_model * m);
  56. /**
  57. Ouverture d'un fichier vef contenant un modèle
  58. @param file chemin du fichier à  ouvrir
  59. @param m pointeur sur le modèle
  60. @return 1 si succès, 0 sinon
  61. */
  62. int a2ri_vf_load_vef (
  63. const char * const file,
  64. vf_model * m);
  65. /**
  66. Ouverture d'un fichier gts contenant un modèle
  67. @param file chemin du fichier à  ouvrir
  68. @param m pointeur sur le modèle
  69. @return 1 si succès, 0 sinon
  70. */
  71. int a2ri_vf_load_gts (
  72. const char * const file,
  73. vf_model * m);
  74. /**
  75. Ouverture d'un fichier pgn contenant un modèle
  76. @param file chemin du fichier à  ouvrir
  77. @param m pointeur sur le modèle
  78. @return 1 si succès, 0 sinon
  79. */
  80. int a2ri_vf_load_pgn (
  81. const char * const file,
  82. vf_model * m);
  83. /**
  84. Ouverture d'un fichier off contenant un modèle
  85. @param file chemin du fichier à  ouvrir
  86. @param m pointeur sur le modèle
  87. @return 1 si succès, 0 sinon
  88. */
  89. int a2ri_vf_load_off (
  90. const char * const file,
  91. vf_model * m);
  92. /**
  93. Ouverture d'un fichier ply contenant un modèle
  94. @param file chemin du fichier à  ouvrir
  95. @param m pointeur sur le modèle
  96. @return 1 si succès, 0 sinon
  97. */
  98. int a2ri_vf_load_ply (
  99. const char * const file,
  100. vf_model * m);
  101. /**
  102. Ouverture d'un fichier wrl contenant un modèle
  103. @param file chemin du fichier à  ouvrir
  104. @param m pointeur sur le modèle
  105. @return 1 si succès, 0 sinon
  106. */
  107. int a2ri_vf_load_wrl (
  108. const char * const file,
  109. vf_model * m);
  110. /**
  111. Ouverture d'un fichier obj contenant un modèle
  112. @param file chemin du fichier à  ouvrir
  113. @param m pointeur sur le modèle
  114. @return 1 si succès, 0 sinon
  115. */
  116. int a2ri_vf_load_obj (
  117. const char * const file,
  118. vf_model * m);
  119. /**
  120. Ouverture d'un fichier stl contenant un modèle
  121. @param file chemin du fichier à  ouvrir
  122. @param m pointeur sur le modèle
  123. @return 1 si succès, 0 sinon
  124. */
  125. int a2ri_vf_load_stl (
  126. const char * const file,
  127. vf_model * m);
  128. /**
  129. Ouverture d'un fichier stl binaire contenant un modèle
  130. @param file chemin du fichier à  ouvrir
  131. @param m pointeur sur le modèle
  132. @return 1 si succès, 0 sinon
  133. */
  134. int a2ri_vf_load_binary_stl (
  135. const char * const file,
  136. vf_model * m);
  137. /**
  138. Ouverture d'un fichier stl ascii contenant un modèle
  139. @param file chemin du fichier à  ouvrir
  140. @param m pointeur sur le modèle
  141. @return 1 si succès, 0 sinon
  142. */
  143. int a2ri_vf_load_ascii_stl (
  144. const char * const file,
  145. vf_model * m);
  146. /**
  147. Enregistrement d'un modèle dans un format défini par l'extension du nom de fichier
  148. @param file nom du fichier
  149. @param m le modèle
  150. @return aucun
  151. */
  152. int a2ri_vf_save_file (
  153. const char * const file,
  154. const vf_model * const m);
  155. /**
  156. Enregistrement d'un modèle dans un fichier vef
  157. @param file chemin du fichier
  158. @param m modèle à  sauvegarder
  159. @return 1 si succès, 0 sinon
  160. */
  161. int a2ri_vf_save_vef (
  162. const char * const file,
  163. const vf_model * const m);
  164. /**
  165. Enregistrement d'un modèle dans un fichier gts
  166. @param file chemin du fichier
  167. @param m modèle à  sauvegarder
  168. @return 1 si succès, 0 sinon
  169. */
  170. int a2ri_vf_save_gts (
  171. const char * const file,
  172. const vf_model * const m);
  173. /**
  174. Enregistrement d'un modèle dans un fichier pgn
  175. @param file chemin du fichier
  176. @param m modèle à  sauvegarder
  177. @return 1 si succès, 0 sinon
  178. */
  179. int a2ri_vf_save_pgn (
  180. const char * const file,
  181. const vf_model * const m);
  182. /**
  183. Enregistrement d'un modèle dans un fichier off
  184. @param file chemin du fichier
  185. @param m modèle à  sauvegarder
  186. @return 1 si succès, 0 sinon
  187. */
  188. int a2ri_vf_save_off (
  189. const char * const file,
  190. const vf_model * const m);
  191. /**
  192. Enregistrement d'un modèle dans un fichier ply
  193. @param file chemin du fichier
  194. @param m modèle à  sauvegarder
  195. @return 1 si succès, 0 sinon
  196. */
  197. int a2ri_vf_save_ply (
  198. const char * const file,
  199. const vf_model * const m);
  200. /**
  201. Enregistrement d'un modèle dans un fichier wrl
  202. @param file chemin du fichier
  203. @param m modèle à sauvegarder
  204. @return 1 si succès, 0 sinon
  205. */
  206. int a2ri_vf_save_wrl (
  207. const char * const file,
  208. const vf_model * const m);
  209. /**
  210. Enregistrement d'un modèle dans un fichier wrl version 1.0
  211. @param file chemin du fichier
  212. @param m modèle à sauvegarder
  213. @return 1 si succès, 0 sinon
  214. */
  215. int a2ri_vf_save_wrl_v1 (
  216. const char * const file,
  217. const vf_model * const m);
  218. /**
  219. Enregistrement d'un modèle dans un fichier obj
  220. @param file chemin du fichier
  221. @param m modèle à sauvegarder
  222. @return 1 si succès, 0 sinon
  223. */
  224. int a2ri_vf_save_obj (
  225. const char * const file,
  226. const vf_model * const m);
  227. /**
  228. Enregistrement d'un modèle dans un fichier stl binaire
  229. @param file chemin du fichier
  230. @param m modèle à sauvegarder
  231. @return 1 si succès, 0 sinon
  232. */
  233. int a2ri_vf_save_binary_stl (
  234. const char * const file,
  235. const vf_model * const m);
  236. /**
  237. Enregistrement d'un modèle dans un fichier stl ascii
  238. @param file chemin du fichier
  239. @param m modèle à sauvegarder
  240. @return 1 si succès, 0 sinon
  241. */
  242. int a2ri_vf_save_ascii_stl (
  243. const char * const file,
  244. const vf_model * const m);
  245. /**
  246. Ouverture d'un fichier contenant un modèle
  247. @param file chemin du fichier à  ouvrir
  248. @param m pointeur sur le modèle
  249. @return 1 si succès, 0 sinon
  250. */
  251. int a2ri_vef_open_file (
  252. const char * const file,
  253. vef_model * m);
  254. /**
  255. Ouverture d'un fichier vef contenant un modèle
  256. @param file chemin du fichier à  ouvrir
  257. @param m pointeur sur le modèle
  258. @return 1 si succès, 0 sinon
  259. */
  260. int a2ri_vef_load_vef (
  261. const char * const file,
  262. vef_model * m);
  263. /**
  264. Ouverture d'un fichier gts contenant un modèle
  265. @param file chemin du fichier à  ouvrir
  266. @param m pointeur sur le modèle
  267. @return 1 si succès, 0 sinon
  268. */
  269. int a2ri_vef_load_gts (
  270. const char * const file,
  271. vef_model * m);
  272. /**
  273. Ouverture d'un fichier pgn contenant un modèle
  274. @param file chemin du fichier à  ouvrir
  275. @param m pointeur sur le modèle
  276. @return 1 si succès, 0 sinon
  277. */
  278. int a2ri_vef_load_pgn (
  279. const char * const file,
  280. vef_model * m);
  281. /**
  282. Ouverture d'un fichier stl contenant un modèle
  283. @param file chemin du fichier à  ouvrir
  284. @param m pointeur sur le modèle
  285. @return 1 si succès, 0 sinon
  286. */
  287. int a2ri_vef_load_stl (
  288. const char * const file,
  289. vef_model * m);
  290. /**
  291. Ouverture d'un fichier off contenant un modèle
  292. @param file chemin du fichier à  ouvrir
  293. @param m pointeur sur le modèle
  294. @return 1 si succès, 0 sinon
  295. */
  296. int a2ri_vef_load_off (
  297. const char * const file,
  298. vef_model * m);
  299. /**
  300. Ouverture d'un fichier ply contenant un modèle
  301. @param file chemin du fichier à  ouvrir
  302. @param m pointeur sur le modèle
  303. @return 1 si succès, 0 sinon
  304. */
  305. int a2ri_vef_load_ply (
  306. const char * const file,
  307. vef_model * m);
  308. /**
  309. Ouverture d'un fichier wrl contenant un modèle
  310. @param file chemin du fichier à  ouvrir
  311. @param m pointeur sur le modèle
  312. @return 1 si succès, 0 sinon
  313. */
  314. int a2ri_vef_load_wrl (
  315. const char * const file,
  316. vef_model * m);
  317. /**
  318. Ouverture d'un fichier obj contenant un modèle
  319. @param file chemin du fichier à  ouvrir
  320. @param m pointeur sur le modèle
  321. @return 1 si succès, 0 sinon
  322. */
  323. int a2ri_vef_load_obj (
  324. const char * const file,
  325. vef_model * m);
  326. /**
  327. Enregistrement d'un modèle dans un format défini par l'extension du nom de fichier
  328. @param file nom du fichier
  329. @param m le modèle
  330. @return aucun
  331. */
  332. int a2ri_vef_save_file (
  333. const char * const file,
  334. const vef_model * const m);
  335. /**
  336. Enregistrement d'un modèle dans un fichier vef
  337. @param file chemin du fichier
  338. @param m modèle à  sauvegarder
  339. @return 1 si succès, 0 sinon
  340. */
  341. int a2ri_vef_save_vef (
  342. const char * const file,
  343. const vef_model * const m);
  344. /**
  345. Enregistrement d'un modèle dans un fichier gts
  346. @param file chemin du fichier
  347. @param m modèle à  sauvegarder
  348. @return 1 si succès, 0 sinon
  349. */
  350. int a2ri_vef_save_gts (
  351. const char * const file,
  352. const vef_model * const m);
  353. /**
  354. Enregistrement d'un modèle dans un fichier pgn
  355. @param file chemin du fichier
  356. @param m modèle à  sauvegarder
  357. @return 1 si succès, 0 sinon
  358. */
  359. int a2ri_vef_save_pgn (
  360. const char * const file,
  361. const vef_model * const m);
  362. /**
  363. Enregistrement d'un modèle dans un fichier off
  364. @param file chemin du fichier
  365. @param m modèle à  sauvegarder
  366. @return 1 si succès, 0 sinon
  367. */
  368. int a2ri_vef_save_off (
  369. const char * const file,
  370. const vef_model * const m);
  371. /**
  372. Enregistrement d'un modèle dans un fichier ply
  373. @param file chemin du fichier
  374. @param m modèle à  sauvegarder
  375. @return 1 si succès, 0 sinon
  376. */
  377. int a2ri_vef_save_ply (
  378. const char * const file,
  379. const vef_model * const m);
  380. /**
  381. Enregistrement d'un modèle dans un fichier wrl
  382. @param file chemin du fichier
  383. @param m modèle à sauvegarder
  384. @return 1 si succès, 0 sinon
  385. */
  386. int a2ri_vef_save_wrl (
  387. const char * const file,
  388. const vef_model * const m);
  389. /**
  390. Enregistrement d'un modèle dans un fichier obj
  391. @param file chemin du fichier
  392. @param m modèle à sauvegarder
  393. @return 1 si succès, 0 sinon
  394. */
  395. int a2ri_vef_save_obj (
  396. const char * const file,
  397. const vef_model * const m);
  398. #endif