vectorlib_lists.dox 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869
  1. /*! \page vlibLists Vector Library Structures and Functions
  2. by GRASS Development Team (http://grass.osgeo.org)
  3. \tableofcontents
  4. \section vlibStructures List of vector library data structures
  5. All data structure used by the vector library are defined in
  6. include/vect/dig_structs.h. See the lists below.
  7. \subsection vlibStructuresMajor Major
  8. - \ref Map_info
  9. - \ref Plus_head
  10. - \ref dig_head
  11. \subsection vlibStructuresSupporting Supporting
  12. - \ref bound_box
  13. - \ref gvfile
  14. - \ref Port_info
  15. - \ref Coor_info
  16. - \ref spatial_index
  17. \subsection vlibStructuresFormat-related Format-related
  18. - \ref Format_info
  19. - \ref Format_info_ogr
  20. \subsection vlibStructuresDB-related DB-related
  21. - \ref field_info
  22. - \ref dblinks
  23. \subsection vlibStructuresGeometry-related Geometry-related
  24. - \ref line_pnts
  25. \subsection vlibStructuresCategory-related Category-related
  26. - \ref line_cats
  27. - \ref cat_list
  28. - \ref Cat_index
  29. \subsection vlibStructuresTopology-related Topology-related
  30. - \ref P_node
  31. - \ref P_line
  32. - \ref P_area
  33. - \ref P_isle
  34. \subsection vlibStructuresMisc Misc
  35. - \ref ilist
  36. - \ref varray
  37. \subsection vlibStructuresObsolete Obsolete
  38. - \ref site_att
  39. - \ref recycle
  40. \section vlibFunc List of vector library functions
  41. The vector library provides the GRASS programmer with routines to
  42. process vector data. The routines in the vector library are presented
  43. in functional groupings, rather than in alphabetical order. The order
  44. of presentation will, it is hoped, provide better understanding of how
  45. the library is to be used, as well as show the interrelationships
  46. among the various routines. Note that a good way to understand how to
  47. use these routines is to look at the source code for GRASS modules
  48. which use them.
  49. Note: All routines start with one of following prefixes Vect_, V1_,
  50. V2_ or dig_. To avoid name conficts, programmers should not create
  51. variables or routines in their own modules which use this prefix.
  52. The Vect_*() functions are the programmer's API for GRASS vector
  53. programming. The programmer should use only routines with this prefix.
  54. \subsection vlibArea Vector area functions
  55. - Vect_get_area_area()
  56. - Vect_get_area_boundaries()
  57. - Vect_get_area_centroid()
  58. - Vect_get_area_isle()
  59. - Vect_get_area_num_isles()
  60. - Vect_area_perimeter()
  61. - Vect_get_area_points()
  62. - Vect_get_isle_area()
  63. - Vect_get_isle_boundaries()
  64. - Vect_get_isle_points()
  65. - Vect_point_in_area()
  66. \subsection vlibArray Vector array functions
  67. - Vect_new_varray()
  68. - Vect_set_varray_from_cat_list()
  69. - Vect_set_varray_from_cat_string()
  70. - Vect_set_varray_from_db()
  71. \subsection vlibBox Vector bounding box functions
  72. - Vect_box_copy()
  73. - Vect_box_clip()
  74. - Vect_box_extend()
  75. - Vect_box_overlap()
  76. - Vect_get_area_box()
  77. - Vect_get_isle_box()
  78. - Vect_get_line_box()
  79. - Vect_get_map_box()
  80. - Vect_point_in_box()
  81. - Vect_region_box()
  82. \subsection vlibBreakLines Vector break lines functions
  83. - Vect_break_lines()
  84. - Vect_break_lines_list()
  85. \subsection vlibBreakPolygons Vector break polygons functions
  86. - Vect_break_polygons()
  87. \subsection vlibBridges Vector bridges functions
  88. - Vect_chtype_bridges()
  89. - Vect_remove_bridges()
  90. \subsection vlibBuffer Vector buffer functions
  91. - Vect_line_buffer()
  92. - Vect_line_parallel()
  93. \subsection vlibBuild Vector build functions
  94. \subsubsection vlibBuildMain Main build functions
  95. - Vect_build()
  96. - Vect_build_partial()
  97. - Vect_get_built()
  98. - Vect_build_sidx_from_topo()
  99. - Vect_build_sidx()
  100. - Vect_save_sidx()
  101. - Vect_save_topo()
  102. - Vect_sidx_dump()
  103. - Vect_topo_dump()
  104. \subsubsection vlibBuildNat Native build functions
  105. - Vect_attach_centroids()
  106. - Vect_attach_isle()
  107. - Vect_attach_isles()
  108. - Vect_build_line_area()
  109. - Vect_build_nat()
  110. - Vect_isle_find_area()
  111. \subsubsection vlibBuildOgr OGR build functions
  112. - Vect_build_ogr()
  113. \subsection vlibCats Vector categories functions
  114. - Vect_array_to_cat_list()
  115. - Vect_cat_del()
  116. - Vect_cat_get()
  117. - Vect_cat_in_array()
  118. - Vect_cat_in_cat_list()
  119. - Vect_cat_set()
  120. - Vect_destroy_cat_list()
  121. - Vect_destroy_cats_struct()
  122. - Vect_field_cat_del()
  123. - Vect_get_area_cats()
  124. - Vect_get_area_cat()
  125. - Vect_get_line_cat()
  126. - Vect_new_cat_list()
  127. - Vect_new_cats_struct()
  128. - Vect_reset_cats()
  129. - Vect_str_to_cat_list()
  130. \subsection vlibCleanNodes Vector clean nodes functions
  131. - Vect_clean_small_angles_at_nodes()
  132. \subsection vlibClose Vector close functions
  133. - Vect_close()
  134. \subsection vlibConstraint Vector constraint functions
  135. - Vect_get_constraint_box()
  136. - Vect_remove_constraints()
  137. - Vect_set_constraint_region()
  138. - Vect_set_constraint_type()
  139. \section vlibDangles Vector dangles functions
  140. - Vect_chtype_dangles()
  141. - Vect_remove_dangles()
  142. - Vect_select_dangles()
  143. \subsection vlibDbcolumns Vector dbcolumns functions
  144. - Vect_get_column_names()
  145. - Vect_get_column_names_types()
  146. - Vect_get_column_types()
  147. \subsection vlibError Vector error functions
  148. - Vect_get_fatal_error()
  149. - Vect_set_fatal_error()
  150. \subsection vlibField Vector layer (field) functions
  151. (note: vector layer is historically called "field")
  152. - Vect_add_dblink()
  153. - Vect_check_dblink()
  154. - Vect_default_field_info()
  155. - Vect_get_dblink()
  156. - Vect_get_field()
  157. - Vect_get_field_by_name()
  158. - Vect_map_add_dblink()
  159. - Vect_map_check_dblink()
  160. - Vect_map_del_dblink()
  161. - Vect_new_dblinks_struct()
  162. - Vect_read_dblinks()
  163. - Vect_reset_dblinks()
  164. - Vect_set_db_updated()
  165. - Vect_subst_var()
  166. - Vect_write_dblinks()
  167. \subsection vlibFind Vector find functions
  168. - Vect_find_area()
  169. - Vect_find_island()
  170. - Vect_find_line()
  171. - Vect_find_line_list()
  172. - Vect_find_node()
  173. \subsection vlibGraph Vector graph functions
  174. - Vect_graph_add_edge()
  175. - Vect_graph_build()
  176. - Vect_graph_init()
  177. - Vect_graph_set_node_costs()
  178. - Vect_graph_shortest_path()
  179. \subsection vlibHeader Vector header functions
  180. - Vect_get_comment()
  181. - Vect_get_constraint_box()
  182. - Vect_get_date()
  183. - Vect_get_full_name()
  184. - Vect_get_map_date()
  185. - Vect_get_map_name()
  186. - Vect_get_mapset()
  187. - Vect_get_name()
  188. - Vect_get_organization()
  189. - Vect_get_person()
  190. - Vect_get_proj()
  191. - Vect_get_proj_name()
  192. - Vect_get_scale()
  193. - Vect_get_thresh()
  194. - Vect_get_zone()
  195. - Vect_is_3d()
  196. - Vect_print_header()
  197. - Vect_read_header()
  198. - Vect_set_comment()
  199. - Vect_set_date()
  200. - Vect_set_map_date()
  201. - Vect_set_map_name()
  202. - Vect_set_organization()
  203. - Vect_set_person()
  204. - Vect_set_scale()
  205. - Vect_set_thresh()
  206. - Vect_set_zone()
  207. - Vect_write_header()
  208. \subsection vlibHist Vector history functions
  209. - Vect_hist_command()
  210. - Vect_hist_copy()
  211. - Vect_hist_read()
  212. - Vect_hist_rewind()
  213. - Vect_hist_write()
  214. \subsection vlibInitHead Vector header functions
  215. - Vect_copy_head_data()
  216. \subsection vlibIntersect Vector intersection functions
  217. - Vect_line_check_intersection()
  218. - Vect_line_intersection()
  219. - Vect_segment_intersection()
  220. \subsection vlibLegalVname Vector valid map name functions
  221. - Vect_check_input_output_name()
  222. - Vect_legal_filename()
  223. \subsection vlibLevel Vector level functions
  224. - Vect_level()
  225. \subsection vlibLevelTwo Vector topological (level 2) functions
  226. - Vect_get_centroid_area()
  227. - Vect_get_line_areas()
  228. - Vect_get_line_nodes()
  229. - Vect_get_node_coor()
  230. - Vect_get_node_line()
  231. - Vect_get_node_line_angle()
  232. - Vect_get_node_n_lines()
  233. - Vect_get_num_areas()
  234. - Vect_get_num_dblinks()
  235. - Vect_get_num_faces()
  236. - Vect_get_num_islands()
  237. - Vect_get_num_lines()
  238. - Vect_get_num_nodes()
  239. - Vect_get_num_primitives()
  240. - Vect_get_num_updated_lines()
  241. - Vect_get_num_updated_nodes()
  242. - Vect_get_updated_line()
  243. - Vect_get_updated_node()
  244. - Vect_set_release_support()
  245. \subsection vlibLine Vector feature functions
  246. - Vect_append_point()
  247. - Vect_append_points()
  248. - Vect_copy_pnts_to_xyz()
  249. - Vect_copy_xyz_to_pnts()
  250. - Vect_destroy_line_struct()
  251. - Vect_get_num_line_points()
  252. - Vect_line_box()
  253. - Vect_line_delete_point()
  254. - Vect_line_distance()
  255. - Vect_line_geodesic_length()
  256. - Vect_line_get_point()
  257. - Vect_line_insert_point()
  258. - Vect_line_length()
  259. - Vect_line_prune()
  260. - Vect_line_prune_thresh()
  261. - Vect_line_reverse()
  262. - Vect_line_segment()
  263. - Vect_new_line_struct()
  264. - Vect_point_on_line()
  265. - Vect_points_distance()
  266. - Vect_reset_line()
  267. \subsection vlibList Vector list functions
  268. - Vect_destroy_list()
  269. - Vect_list_append()
  270. - Vect_list_append_list()
  271. - Vect_list_delete()
  272. - Vect_list_delete_list()
  273. - Vect_new_list()
  274. - Vect_reset_list()
  275. - Vect_val_in_list()
  276. - Vect_destroy_boxlist()
  277. - Vect_boxlist_append()
  278. - Vect_boxlist_append_boxlist()
  279. - Vect_boxlist_delete()
  280. - Vect_boxlist_delete_boxlist()
  281. - Vect_new_boxlist()
  282. - Vect_reset_boxlist()
  283. - Vect_val_in_boxlist()
  284. \subsection vlibMap Vector map functions
  285. - Vect_copy()
  286. - Vect_copy_map_lines()
  287. - Vect_copy_table()
  288. - Vect_copy_table_by_cats()
  289. - Vect_copy_tables()
  290. - Vect_delete()
  291. - Vect_rename()
  292. \subsection vlibMergeLines Vector merge line functions
  293. - Vect_merge_lines()
  294. \subsection vlibNet Vector network functions
  295. - Vect_net_build_graph()
  296. - Vect_net_get_line_cost()
  297. - Vect_net_get_node_cost()
  298. - Vect_net_nearest_nodes()
  299. - Vect_net_shortest_path()
  300. - Vect_net_shortest_path_coor()
  301. \subsection vlibOpen Vector open functions
  302. - Vect_coor_info()
  303. - Vect_maptype_info()
  304. - Vect_maptype()
  305. - Vect_open_new()
  306. - Vect__open_old()
  307. - Vect_open_old()
  308. - Vect_open_old_head()
  309. - Vect_open_sidx()
  310. - Vect_open_topo()
  311. - Vect_open_update()
  312. - Vect_open_update_head()
  313. - Vect_set_open_level()
  314. \subsection vlibOverlay Vector overlay functions
  315. - Vect_overlay()
  316. - Vect_overlay_str_to_operator()
  317. \subsection vlibVpoly Vector polygon functions
  318. - Vect_find_poly_centroid()
  319. - Vect_get_point_in_area()
  320. - Vect_point_in_area_outer_ring()
  321. - Vect_point_in_island()
  322. - Vect_get_point_in_poly()
  323. - Vect_get_point_in_poly_isl()
  324. \subsection vlibRead Vector read functions
  325. \subsubsection vlibread1_2 Level 1 and 2
  326. - Vect_read_next_line()
  327. \subsubsection vlibRead2 Level 2 only
  328. - Vect_area_alive()
  329. - Vect_isle_alive()
  330. - Vect_line_alive()
  331. - Vect_node_alive()
  332. - Vect_read_line()
  333. \subsection vlibRemoveAreas Vector remove functions
  334. \subsubsection vlibRemoveAreas Vector remove areas functions
  335. - Vect_remove_small_areas()
  336. \subsubsection vlibRemoveDuplicates Vector remove duplicates functions
  337. - Vect_line_check_duplicate()
  338. - Vect_remove_duplicates()
  339. \subsection vlibRewind Vector rewind functions
  340. - Vect_rewind()
  341. \subsection vlibSelect Vector select functions
  342. - Vect_select_areas_by_box()
  343. - Vect_select_areas_by_polygon()
  344. - Vect_select_isles_by_box()
  345. - Vect_select_lines_by_box()
  346. - Vect_select_lines_by_polygon()
  347. - Vect_select_nodes_by_box()
  348. \subsection vlibIndex Vector index functions
  349. \subsubsection vlibSindex Vector spatial index functions
  350. - Vect_spatial_index_add_item()
  351. - Vect_spatial_index_del_item()
  352. - Vect_spatial_index_destroy()
  353. - Vect_spatial_index_init()
  354. - Vect_spatial_index_select()
  355. \subsection vlibCindex Vector category index functions
  356. (note: vector layer is historically called "field")
  357. - Vect_cidx_dump()
  358. - Vect_cidx_find_next()
  359. - Vect_cidx_find_all()
  360. - Vect_cidx_get_cat_by_index()
  361. - Vect_cidx_get_field_index()
  362. - Vect_cidx_get_field_number()
  363. - Vect_cidx_get_num_cats_by_index()
  364. - Vect_cidx_get_num_fields()
  365. - Vect_cidx_get_num_types_by_index()
  366. - Vect_cidx_get_num_unique_cats_by_index()
  367. - Vect_cidx_get_type_count()
  368. - Vect_cidx_get_type_count_by_index()
  369. - Vect_cidx_open()
  370. - Vect_cidx_save()
  371. - Vect_set_category_index_update()
  372. \subsection vlibSnap Vector snap functions
  373. - Vect_snap_lines()
  374. - Vect_snap_lines_list()
  375. \subsection vlibTinFuns Vector TIN functions
  376. - Vect_tin_get_z()
  377. \subsection vlibType Vector type option functions
  378. - Vect_option_to_types()
  379. \subsection vlibDelete Vector delete functions
  380. \subsubsection vlibDelete2 Level 2 only
  381. - Vect_delete_line()
  382. \subsection vlibWrite Vector write functions
  383. \subsubsection vlibWrite1_2 Level 1 and 2
  384. - Vect_write_line()
  385. \subsubsection vlibWrite2 Level 2 only
  386. - Vect_rewrite_line()
  387. \subsection vlibAsciiFn Vector ASCII functions
  388. - Vect_read_ascii()
  389. - Vect_read_ascii_head()
  390. - Vect_write_ascii()
  391. - Vect_write_ascii_head()
  392. \subsection vlibSFAFn Vector Simple Feature Access API
  393. Functions from GRASS Simple Feature API (in progress, incomplete).
  394. - Vect_sfa_get_line_type()
  395. - Vect_sfa_check_line_type()
  396. - Vect_sfa_line_dimension()
  397. - Vect_sfa_line_geometry_type()
  398. - Vect_sfa_line_astext()
  399. - Vect_sfa_is_line_simple()
  400. - Vect_sfa_is_line_closed()
  401. \subsection vlibGeosFn Vector GEOS functions
  402. Note: The functions are available only if GRASS is compiled with
  403. <tt>--with-geos</tt> switch.
  404. - Vect_read_line_geos()
  405. - Vect_read_area_geos()
  406. - Vect_line_to_geos()
  407. - Vect_get_area_points_geos()
  408. - Vect_get_isle_points_geos()
  409. \subsection vlibPgFn Vector PostgreSQL/PostGIS functions
  410. Note: The functions are available only if GRASS is compiled with
  411. <tt>--with-postgres</tt> switch.
  412. - Vect_open_topo_pg()
  413. - Vect_build_pg()
  414. (For internal use only)
  415. - V1_open_old_pg(), V2_open_old_pg() called by Vect_open_old()
  416. - V1_open_new_pg(), V2_open_new_pg() called by Vect_open_new()
  417. - V1_rewind_pg(), V2_rewind_pg() called by Vect_rewind()
  418. - V1_close_pg(), V2_close_pg() called by Vect_close()
  419. - V1_read_line_pg(), V2_read_line_pg() called by Vect_read_line()
  420. - V1_read_next_line_pg(), V2_read_next_line_pg() called by Vect_read_next_line()
  421. - V1_delete_line_pg(), V2_delete_line_sfa() called by Vect_delete_line()
  422. - V1_write_line_pg(), V2_write_line_pg() called by Vect_write_line()
  423. - V1_rewrite_line_pg(), V2_rewrite_line_sfa() called by Vect_rewrite_line()
  424. - V2_write_area_pg(), see \gmod{v.out.postgis} for implementation issues
  425. */