buffer_with_strategies.qbk 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. [/============================================================================
  2. Boost.Geometry (aka GGL, Generic Geometry Library)
  3. Copyright (c) 2014 Barend Gehrels, Amsterdam, the Netherlands.
  4. Use, modification and distribution is subject to the Boost Software License,
  5. Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  6. http://www.boost.org/LICENSE_1_0.txt)
  7. =============================================================================/]
  8. [def __this_function__ buffer]
  9. [heading Strategies]
  10. The 5 strategies give the user control to the generated buffer
  11. * convex corners can be rounded or sharp
  12. * line-ends can be rounded or flat
  13. * distance can be symmetric or assymetric, and positive or negative
  14. * around points the shape can be circular or square
  15. * the sides can be controlled (currently there is only one option provided)
  16. By specifying a negative distance for the distance_strategy, for the (multi) polygon case, the polygon will be smaller (also known as deflate). The distance cannot be 0.
  17. The next figure shows where in the generated buffer the strategies have effect
  18. [$img/algorithms/buffer_strategies.png]
  19. [heading_conformance_ogc __this_function__..Buffer]
  20. It is conformant if used with the following combination of strategies:
  21. [link geometry.reference.strategies.strategy_buffer_join_round join_round],
  22. [link geometry.reference.strategies.strategy_buffer_end_round end_round],
  23. [link geometry.reference.strategies.strategy_buffer_distance_symmetric distance_symmetric],
  24. [link geometry.reference.strategies.strategy_buffer_point_circle point_circle],
  25. side_straight
  26. [heading Supported geometries]
  27. [table
  28. [[ ][2D Cartesian][Geographic]]
  29. [[Point][[$img/ok.png]][[$img/ok.png]]]
  30. [[Segment][[$img/nyi.png]][[$img/nyi.png]]]
  31. [[Box][[$img/nyi.png]][[$img/nyi.png]]]
  32. [[Linestring][[$img/ok.png]][[$img/nyi.png]]]
  33. [[Ring][[$img/ok.png]][[$img/nyi.png]]]
  34. [[Polygon][[$img/ok.png]][[$img/nyi.png]]]
  35. [[MultiPoint][[$img/ok.png]][[$img/nyi.png]]]
  36. [[MultiLinestring][[$img/ok.png]][[$img/nyi.png]]]
  37. [[MultiPolygon][[$img/ok.png]][[$img/nyi.png]]]
  38. ]
  39. [heading Examples]
  40. [buffer_with_strategies]
  41. [heading The linestring case]
  42. [$img/algorithms/buffer_linestring.png]
  43. [heading The multi_point case]
  44. [$img/algorithms/buffer_multi_point.png]
  45. [heading The multi_polygon case]
  46. [$img/algorithms/buffer_multi_polygon.png]
  47. [heading Available Strategies]
  48. * JoinStrategy: [link geometry.reference.strategies.strategy_buffer_join_round join_round (cartesian)]
  49. * JoinStrategy: [link geometry.reference.strategies.strategy_buffer_join_miter join_miter (cartesian)]
  50. * EndStrategy: [link geometry.reference.strategies.strategy_buffer_end_round end_round (cartesian)]
  51. * EndStrategy: [link geometry.reference.strategies.strategy_buffer_end_flat end_flat (cartesian)]
  52. * DistanceStrategy: [link geometry.reference.strategies.strategy_buffer_distance_symmetric distance_symmetric]
  53. * DistanceStrategy: [link geometry.reference.strategies.strategy_buffer_distance_asymmetric distance_asymmetric]
  54. * PointStrategy: [link geometry.reference.strategies.strategy_buffer_point_circle point_circle (cartesian)]
  55. * PointStrategy: [link geometry.reference.strategies.strategy_buffer_point_square point_square (cartesian)]
  56. * PointStrategy: [link geometry.reference.strategies.strategy_buffer_geographic_point_circle geographic_point_circle (geographic)]
  57. * SideStrategy: [link geometry.reference.strategies.strategy_buffer_side_straight side_straight (cartesian)]