Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / geometry / doc / html / geometry / reference / algorithms / clear.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>clear</title>
5 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Geometry">
8 <link rel="up" href="../algorithms.html" title="Algorithms">
9 <link rel="prev" href="centroid/return_centroid_2_with_strategy.html" title="return_centroid (with strategy)">
10 <link rel="next" href="convert.html" title="convert">
11 </head>
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
20 </tr></table>
21 <hr>
22 <div class="spirit-nav">
23 <a accesskey="p" href="centroid/return_centroid_2_with_strategy.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="convert.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section">
26 <div class="titlepage"><div><div><h4 class="title">
27 <a name="geometry.reference.algorithms.clear"></a><a class="link" href="clear.html" title="clear">clear</a>
28 </h4></div></div></div>
29 <p>
30           <a class="indexterm" name="idm46187006797552"></a>
31 Clears a linestring, ring or polygon (exterior+interiors) or multi*.
32         </p>
33 <h6>
34 <a name="geometry.reference.algorithms.clear.h0"></a>
35           <span class="phrase"><a name="geometry.reference.algorithms.clear.description"></a></span><a class="link" href="clear.html#geometry.reference.algorithms.clear.description">Description</a>
36         </h6>
37 <p>
38           Generic function to clear a geometry. All points will be removed from the
39           collection or collections making up the geometry. In most cases this is
40           equivalent to the .clear() method of a std::vector&lt;...&gt;. In the case
41           of a polygon, this clear functionality is automatically called for the
42           exterior ring, and for the interior ring collection. In the case of a point,
43           boxes and segments, nothing will happen.
44         </p>
45 <h6>
46 <a name="geometry.reference.algorithms.clear.h1"></a>
47           <span class="phrase"><a name="geometry.reference.algorithms.clear.synopsis"></a></span><a class="link" href="clear.html#geometry.reference.algorithms.clear.synopsis">Synopsis</a>
48         </h6>
49 <p>
50 </p>
51 <pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Geometry</span><span class="special">&gt;</span>
52 <span class="keyword">void</span> <span class="identifier">clear</span><span class="special">(</span><span class="identifier">Geometry</span> <span class="special">&amp;</span> <span class="identifier">geometry</span><span class="special">)</span></pre>
53 <p>
54         </p>
55 <h6>
56 <a name="geometry.reference.algorithms.clear.h2"></a>
57           <span class="phrase"><a name="geometry.reference.algorithms.clear.parameters"></a></span><a class="link" href="clear.html#geometry.reference.algorithms.clear.parameters">Parameters</a>
58         </h6>
59 <div class="informaltable"><table class="table">
60 <colgroup>
61 <col>
62 <col>
63 <col>
64 <col>
65 </colgroup>
66 <thead><tr>
67 <th>
68                   <p>
69                     Type
70                   </p>
71                 </th>
72 <th>
73                   <p>
74                     Concept
75                   </p>
76                 </th>
77 <th>
78                   <p>
79                     Name
80                   </p>
81                 </th>
82 <th>
83                   <p>
84                     Description
85                   </p>
86                 </th>
87 </tr></thead>
88 <tbody><tr>
89 <td>
90                   <p>
91                     Geometry &amp;
92                   </p>
93                 </td>
94 <td>
95                   <p>
96                     Any type fulfilling a Geometry Concept
97                   </p>
98                 </td>
99 <td>
100                   <p>
101                     geometry
102                   </p>
103                 </td>
104 <td>
105                   <p>
106                     A model of the specified concept which will be cleared
107                   </p>
108                 </td>
109 </tr></tbody>
110 </table></div>
111 <h6>
112 <a name="geometry.reference.algorithms.clear.h3"></a>
113           <span class="phrase"><a name="geometry.reference.algorithms.clear.header"></a></span><a class="link" href="clear.html#geometry.reference.algorithms.clear.header">Header</a>
114         </h6>
115 <p>
116           Either
117         </p>
118 <p>
119           <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">geometry</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
120         </p>
121 <p>
122           Or
123         </p>
124 <p>
125           <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">geometry</span><span class="special">/</span><span class="identifier">algorithms</span><span class="special">/</span><span class="identifier">clear</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
126         </p>
127 <h6>
128 <a name="geometry.reference.algorithms.clear.h4"></a>
129           <span class="phrase"><a name="geometry.reference.algorithms.clear.conformance"></a></span><a class="link" href="clear.html#geometry.reference.algorithms.clear.conformance">Conformance</a>
130         </h6>
131 <p>
132           The function clear is not defined by OGC.
133         </p>
134 <p>
135           The function clear conforms to the clear() method of the C++ std-library.
136         </p>
137 <h6>
138 <a name="geometry.reference.algorithms.clear.h5"></a>
139           <span class="phrase"><a name="geometry.reference.algorithms.clear.supported_geometries"></a></span><a class="link" href="clear.html#geometry.reference.algorithms.clear.supported_geometries">Supported
140           geometries</a>
141         </h6>
142 <div class="informaltable"><table class="table">
143 <colgroup>
144 <col>
145 <col>
146 </colgroup>
147 <thead><tr>
148 <th>
149                   <p>
150                     Geometry
151                   </p>
152                 </th>
153 <th>
154                   <p>
155                     Status
156                   </p>
157                 </th>
158 </tr></thead>
159 <tbody>
160 <tr>
161 <td>
162                   <p>
163                     Point
164                   </p>
165                 </td>
166 <td>
167                   <p>
168                     <span class="inlinemediaobject"><img src="../../../img/ok.png" alt="ok"></span>
169                   </p>
170                 </td>
171 </tr>
172 <tr>
173 <td>
174                   <p>
175                     Segment
176                   </p>
177                 </td>
178 <td>
179                   <p>
180                     <span class="inlinemediaobject"><img src="../../../img/ok.png" alt="ok"></span>
181                   </p>
182                 </td>
183 </tr>
184 <tr>
185 <td>
186                   <p>
187                     Box
188                   </p>
189                 </td>
190 <td>
191                   <p>
192                     <span class="inlinemediaobject"><img src="../../../img/ok.png" alt="ok"></span>
193                   </p>
194                 </td>
195 </tr>
196 <tr>
197 <td>
198                   <p>
199                     Linestring
200                   </p>
201                 </td>
202 <td>
203                   <p>
204                     <span class="inlinemediaobject"><img src="../../../img/ok.png" alt="ok"></span>
205                   </p>
206                 </td>
207 </tr>
208 <tr>
209 <td>
210                   <p>
211                     Ring
212                   </p>
213                 </td>
214 <td>
215                   <p>
216                     <span class="inlinemediaobject"><img src="../../../img/ok.png" alt="ok"></span>
217                   </p>
218                 </td>
219 </tr>
220 <tr>
221 <td>
222                   <p>
223                     Polygon
224                   </p>
225                 </td>
226 <td>
227                   <p>
228                     <span class="inlinemediaobject"><img src="../../../img/ok.png" alt="ok"></span>
229                   </p>
230                 </td>
231 </tr>
232 <tr>
233 <td>
234                   <p>
235                     MultiPoint
236                   </p>
237                 </td>
238 <td>
239                   <p>
240                     <span class="inlinemediaobject"><img src="../../../img/ok.png" alt="ok"></span>
241                   </p>
242                 </td>
243 </tr>
244 <tr>
245 <td>
246                   <p>
247                     MultiLinestring
248                   </p>
249                 </td>
250 <td>
251                   <p>
252                     <span class="inlinemediaobject"><img src="../../../img/ok.png" alt="ok"></span>
253                   </p>
254                 </td>
255 </tr>
256 <tr>
257 <td>
258                   <p>
259                     MultiPolygon
260                   </p>
261                 </td>
262 <td>
263                   <p>
264                     <span class="inlinemediaobject"><img src="../../../img/ok.png" alt="ok"></span>
265                   </p>
266                 </td>
267 </tr>
268 <tr>
269 <td>
270                   <p>
271                     Variant
272                   </p>
273                 </td>
274 <td>
275                   <p>
276                     <span class="inlinemediaobject"><img src="../../../img/ok.png" alt="ok"></span>
277                   </p>
278                 </td>
279 </tr>
280 </tbody>
281 </table></div>
282 <h6>
283 <a name="geometry.reference.algorithms.clear.h6"></a>
284           <span class="phrase"><a name="geometry.reference.algorithms.clear.behavior"></a></span><a class="link" href="clear.html#geometry.reference.algorithms.clear.behavior">Behavior</a>
285         </h6>
286 <div class="informaltable"><table class="table">
287 <colgroup>
288 <col>
289 <col>
290 </colgroup>
291 <thead><tr>
292 <th>
293                   <p>
294                     Case
295                   </p>
296                 </th>
297 <th>
298                   <p>
299                     Behavior
300                   </p>
301                 </th>
302 </tr></thead>
303 <tbody>
304 <tr>
305 <td>
306                   <p>
307                     Point
308                   </p>
309                 </td>
310 <td>
311                   <p>
312                     Nothing happens, geometry is unchanged
313                   </p>
314                 </td>
315 </tr>
316 <tr>
317 <td>
318                   <p>
319                     Segment
320                   </p>
321                 </td>
322 <td>
323                   <p>
324                     Nothing happens, geometry is unchanged
325                   </p>
326                 </td>
327 </tr>
328 <tr>
329 <td>
330                   <p>
331                     Box
332                   </p>
333                 </td>
334 <td>
335                   <p>
336                     Nothing happens, geometry is unchanged
337                   </p>
338                 </td>
339 </tr>
340 <tr>
341 <td>
342                   <p>
343                     Linestring
344                   </p>
345                 </td>
346 <td>
347                   <p>
348                     Linestring is cleared
349                   </p>
350                 </td>
351 </tr>
352 <tr>
353 <td>
354                   <p>
355                     Ring
356                   </p>
357                 </td>
358 <td>
359                   <p>
360                     Ring is cleared
361                   </p>
362                 </td>
363 </tr>
364 <tr>
365 <td>
366                   <p>
367                     Polygon
368                   </p>
369                 </td>
370 <td>
371                   <p>
372                     The exterior ring is cleared and all interior rings are removed
373                   </p>
374                 </td>
375 </tr>
376 <tr>
377 <td>
378                   <p>
379                     Multi Point
380                   </p>
381                 </td>
382 <td>
383                   <p>
384                     Multi Point is cleared
385                   </p>
386                 </td>
387 </tr>
388 <tr>
389 <td>
390                   <p>
391                     Multi Linestring
392                   </p>
393                 </td>
394 <td>
395                   <p>
396                     Multi Linestring is cleared
397                   </p>
398                 </td>
399 </tr>
400 <tr>
401 <td>
402                   <p>
403                     Multi Polygon
404                   </p>
405                 </td>
406 <td>
407                   <p>
408                     Multi Polygon is cleared
409                   </p>
410                 </td>
411 </tr>
412 </tbody>
413 </table></div>
414 <h6>
415 <a name="geometry.reference.algorithms.clear.h7"></a>
416           <span class="phrase"><a name="geometry.reference.algorithms.clear.complexity"></a></span><a class="link" href="clear.html#geometry.reference.algorithms.clear.complexity">Complexity</a>
417         </h6>
418 <p>
419           Constant
420         </p>
421 <h6>
422 <a name="geometry.reference.algorithms.clear.h8"></a>
423           <span class="phrase"><a name="geometry.reference.algorithms.clear.example"></a></span><a class="link" href="clear.html#geometry.reference.algorithms.clear.example">Example</a>
424         </h6>
425 <p>
426           Shows how to clear a ring or polygon
427         </p>
428 <p>
429 </p>
430 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
431
432 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">geometry</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
433 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">geometry</span><span class="special">/</span><span class="identifier">geometries</span><span class="special">/</span><span class="identifier">polygon</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
434 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">geometry</span><span class="special">/</span><span class="identifier">geometries</span><span class="special">/</span><span class="identifier">ring</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
435 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">geometry</span><span class="special">/</span><span class="identifier">geometries</span><span class="special">/</span><span class="identifier">adapted</span><span class="special">/</span><span class="identifier">boost_tuple</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
436
437 <span class="identifier">BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS</span><span class="special">(</span><span class="identifier">cs</span><span class="special">::</span><span class="identifier">cartesian</span><span class="special">)</span>
438
439 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
440
441 <span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
442 <span class="special">{</span>
443     <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">::</span><span class="identifier">tuple_list_of</span><span class="special">;</span>
444
445     <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tuple</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">,</span> <span class="keyword">float</span><span class="special">&gt;</span> <span class="identifier">point</span><span class="special">;</span>
446     <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">model</span><span class="special">::</span><span class="identifier">polygon</span><span class="special">&lt;</span><span class="identifier">point</span><span class="special">&gt;</span> <span class="identifier">polygon</span><span class="special">;</span>
447     <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">model</span><span class="special">::</span><span class="identifier">ring</span><span class="special">&lt;</span><span class="identifier">point</span><span class="special">&gt;</span> <span class="identifier">ring</span><span class="special">;</span>
448
449     <span class="identifier">polygon</span> <span class="identifier">poly</span><span class="special">;</span>
450
451     <span class="comment">// Fill the polygon (using its own methods + Boost.Assign)</span>
452     <span class="identifier">poly</span><span class="special">.</span><span class="identifier">outer</span><span class="special">()</span> <span class="special">=</span> <span class="identifier">tuple_list_of</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="number">0</span><span class="special">)(</span><span class="number">0</span><span class="special">,</span> <span class="number">9</span><span class="special">)(</span><span class="number">10</span><span class="special">,</span> <span class="number">10</span><span class="special">)(</span><span class="number">0</span><span class="special">,</span> <span class="number">0</span><span class="special">);</span>
453     <span class="identifier">poly</span><span class="special">.</span><span class="identifier">inners</span><span class="special">().</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">tuple_list_of</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">2</span><span class="special">)(</span><span class="number">4</span><span class="special">,</span> <span class="number">6</span><span class="special">)(</span><span class="number">2</span><span class="special">,</span> <span class="number">8</span><span class="special">)(</span><span class="number">1</span><span class="special">,</span> <span class="number">2</span><span class="special">));</span>
454
455     <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">dsv</span><span class="special">(</span><span class="identifier">poly</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
456     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">clear</span><span class="special">(</span><span class="identifier">poly</span><span class="special">);</span>
457     <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">dsv</span><span class="special">(</span><span class="identifier">poly</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
458
459     <span class="comment">// Create a ring using Boost.Assign</span>
460     <span class="identifier">ring</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">tuple_list_of</span><span class="special">(</span><span class="number">0</span><span class="special">,</span> <span class="number">0</span><span class="special">)(</span><span class="number">0</span><span class="special">,</span> <span class="number">9</span><span class="special">)(</span><span class="number">8</span><span class="special">,</span> <span class="number">8</span><span class="special">)(</span><span class="number">0</span><span class="special">,</span> <span class="number">0</span><span class="special">);</span>
461
462     <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">dsv</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
463     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">clear</span><span class="special">(</span><span class="identifier">r</span><span class="special">);</span>
464     <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">dsv</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
465
466     <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
467 <span class="special">}</span>
468 </pre>
469 <p>
470         </p>
471 <p>
472           Output:
473         </p>
474 <pre class="programlisting">(((0, 0), (0, 10), (11, 11), (0, 0)), ((0, 0), (0, 10), (11, 11), (0, 0)))
475 (())
476 ((0, 0), (0, 9), (8, 8), (0, 0))
477 ()
478 </pre>
479 </div>
480 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
481 <td align="left"></td>
482 <td align="right"><div class="copyright-footer">Copyright &#169; 2009-2019 Barend Gehrels, Bruno Lalande, Mateusz Loskot, Adam
483       Wulkiewicz, Oracle and/or its affiliates<p>
484         Distributed under the Boost Software License, Version 1.0. (See accompanying
485         file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
486       </p>
487 </div></td>
488 </tr></table>
489 <hr>
490 <div class="spirit-nav">
491 <a accesskey="p" href="centroid/return_centroid_2_with_strategy.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="convert.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
492 </div>
493 </body>
494 </html>