]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/geometry/doc/reference/algorithms/buffer_with_strategies.qbk
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / geometry / doc / reference / algorithms / buffer_with_strategies.qbk
1 [/============================================================================
2 Boost.Geometry (aka GGL, Generic Geometry Library)
3
4 Copyright (c) 2014 Barend Gehrels, Amsterdam, the Netherlands.
5
6 Use, modification and distribution is subject to the Boost Software License,
7 Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
8 http://www.boost.org/LICENSE_1_0.txt)
9 =============================================================================/]
10
11 [def __this_function__ buffer]
12
13 [heading Strategies]
14 The 5 strategies give the user control to the generated buffer
15
16 * convex corners can be rounded or sharp
17 * line-ends can be rounded or flat
18 * distance can be symmetric or assymetric, and positive or negative
19 * around points the shape can be circular or square
20 * the sides can be controlled (currently there is only one option provided)
21
22 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.
23
24 The next figure shows where in the generated buffer the strategies have effect
25
26 [$img/algorithms/buffer_strategies.png]
27
28 [heading_conformance_ogc __this_function__..Buffer]
29 It is conformant if used with the following combination of strategies:
30 [link geometry.reference.strategies.strategy_buffer_join_round join_round],
31 [link geometry.reference.strategies.strategy_buffer_end_round end_round],
32 [link geometry.reference.strategies.strategy_buffer_distance_symmetric distance_symmetric],
33 [link geometry.reference.strategies.strategy_buffer_point_circle point_circle],
34 side_straight
35
36 [heading Supported geometries]
37 [table
38 [[ ][2D Cartesian]]
39 [[Point][[$img/ok.png]]]
40 [[Segment][[$img/nyi.png]]]
41 [[Box][[$img/nyi.png]]]
42 [[Linestring][[$img/ok.png]]]
43 [[Ring][[$img/ok.png]]]
44 [[Polygon][[$img/ok.png]]]
45 [[MultiPoint][[$img/ok.png]]]
46 [[MultiLinestring][[$img/ok.png]]]
47 [[MultiPolygon][[$img/ok.png]]]
48 ]
49
50
51 [heading Examples]
52 [buffer_with_strategies]
53
54 [heading The linestring case]
55 [$img/algorithms/buffer_linestring.png]
56
57 [heading The multi_point case]
58 [$img/algorithms/buffer_multi_point.png]
59
60 [heading The multi_polygon case]
61 [$img/algorithms/buffer_multi_polygon.png]
62
63 [heading Available Strategies]
64 * JoinStrategy: [link geometry.reference.strategies.strategy_buffer_join_round join_round (cartesian)]
65 * JoinStrategy: [link geometry.reference.strategies.strategy_buffer_join_miter join_miter (cartesian)]
66 * EndStrategy: [link geometry.reference.strategies.strategy_buffer_end_round end_round (cartesian)]
67 * EndStrategy: [link geometry.reference.strategies.strategy_buffer_end_flat end_flat (cartesian)]
68 * DistanceStrategy: [link geometry.reference.strategies.strategy_buffer_distance_symmetric distance_symmetric]
69 * DistanceStrategy: [link geometry.reference.strategies.strategy_buffer_distance_asymmetric distance_asymmetric]
70 * PointStrategy: [link geometry.reference.strategies.strategy_buffer_point_circle point_circle (cartesian)]
71 * PointStrategy: [link geometry.reference.strategies.strategy_buffer_point_square point_square (cartesian)]
72 * SideStrategy: [link geometry.reference.strategies.strategy_buffer_side_straight side_straight (cartesian)]