• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
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 1. 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="idm45635705026400"></a>
31Clears 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 © 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>
495