Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / geometry / doc / html / geometry / reference / algorithms / centroid / return_centroid_2_with_strategy.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>return_centroid (with strategy)</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="../centroid.html" title="centroid">
9 <link rel="prev" href="return_centroid_1.html" title="return_centroid">
10 <link rel="next" href="../clear.html" title="clear">
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="return_centroid_1.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../centroid.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="../clear.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section">
26 <div class="titlepage"><div><div><h5 class="title">
27 <a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy"></a><a class="link" href="return_centroid_2_with_strategy.html" title="return_centroid (with strategy)">return_centroid
28           (with strategy)</a>
29 </h5></div></div></div>
30 <p>
31             <a class="indexterm" name="idm46187006950608"></a>
32 Calculates the centroid of a geometry using the specified strategy.
33           </p>
34 <h6>
35 <a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.h0"></a>
36             <span class="phrase"><a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.description"></a></span><a class="link" href="return_centroid_2_with_strategy.html#geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.description">Description</a>
37           </h6>
38 <p>
39             The free function centroid calculates the geometric center (or: center
40             of mass) of a geometry. This version with the return_ prefix returns
41             the centroid, and a template parameter must therefore be specified in
42             the call.. Reasons to specify a strategy include: use another coordinate
43             system for calculations; construct the strategy beforehand (e.g. with
44             the radius of the Earth); select a strategy when there are more than
45             one available for a calculation.
46           </p>
47 <h6>
48 <a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.h1"></a>
49             <span class="phrase"><a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.synopsis"></a></span><a class="link" href="return_centroid_2_with_strategy.html#geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.synopsis">Synopsis</a>
50           </h6>
51 <p>
52 </p>
53 <pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Point</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Geometry</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Strategy</span><span class="special">&gt;</span>
54 <span class="identifier">Point</span> <span class="identifier">return_centroid</span><span class="special">(</span><span class="identifier">Geometry</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">geometry</span><span class="special">,</span> <span class="identifier">Strategy</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">strategy</span><span class="special">)</span></pre>
55 <p>
56           </p>
57 <h6>
58 <a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.h2"></a>
59             <span class="phrase"><a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.parameters"></a></span><a class="link" href="return_centroid_2_with_strategy.html#geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.parameters">Parameters</a>
60           </h6>
61 <div class="informaltable"><table class="table">
62 <colgroup>
63 <col>
64 <col>
65 <col>
66 <col>
67 </colgroup>
68 <thead><tr>
69 <th>
70                     <p>
71                       Type
72                     </p>
73                   </th>
74 <th>
75                     <p>
76                       Concept
77                     </p>
78                   </th>
79 <th>
80                     <p>
81                       Name
82                     </p>
83                   </th>
84 <th>
85                     <p>
86                       Description
87                     </p>
88                   </th>
89 </tr></thead>
90 <tbody>
91 <tr>
92 <td>
93                     <p>
94                       Point
95                     </p>
96                   </td>
97 <td>
98                     <p>
99                       Any type fulfilling a Point Concept
100                     </p>
101                   </td>
102 <td>
103                     <p>
104                       -
105                     </p>
106                   </td>
107 <td>
108                     <p>
109                       Must be specified
110                     </p>
111                   </td>
112 </tr>
113 <tr>
114 <td>
115                     <p>
116                       Geometry const &amp;
117                     </p>
118                   </td>
119 <td>
120                     <p>
121                       Any type fulfilling a Geometry Concept
122                     </p>
123                   </td>
124 <td>
125                     <p>
126                       geometry
127                     </p>
128                   </td>
129 <td>
130                     <p>
131                       A model of the specified concept
132                     </p>
133                   </td>
134 </tr>
135 <tr>
136 <td>
137                     <p>
138                       Strategy const &amp;
139                     </p>
140                   </td>
141 <td>
142                     <p>
143                       Any type fulfilling a centroid Strategy Concept
144                     </p>
145                   </td>
146 <td>
147                     <p>
148                       strategy
149                     </p>
150                   </td>
151 <td>
152                     <p>
153                       The strategy which will be used for centroid calculations
154                     </p>
155                   </td>
156 </tr>
157 </tbody>
158 </table></div>
159 <h6>
160 <a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.h3"></a>
161             <span class="phrase"><a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.returns"></a></span><a class="link" href="return_centroid_2_with_strategy.html#geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.returns">Returns</a>
162           </h6>
163 <p>
164             The calculated centroid
165           </p>
166 <h6>
167 <a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.h4"></a>
168             <span class="phrase"><a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.header"></a></span><a class="link" href="return_centroid_2_with_strategy.html#geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.header">Header</a>
169           </h6>
170 <p>
171             Either
172           </p>
173 <p>
174             <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>
175           </p>
176 <p>
177             Or
178           </p>
179 <p>
180             <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">centroid</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
181           </p>
182 <h6>
183 <a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.h5"></a>
184             <span class="phrase"><a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.conformance"></a></span><a class="link" href="return_centroid_2_with_strategy.html#geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.conformance">Conformance</a>
185           </h6>
186 <p>
187             The function centroid implements function Centroid from the <a href="http://www.opengeospatial.org/standards/sfa" target="_top">OGC
188             Simple Feature Specification</a>.
189           </p>
190 <h6>
191 <a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.h6"></a>
192             <span class="phrase"><a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.behavior"></a></span><a class="link" href="return_centroid_2_with_strategy.html#geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.behavior">Behavior</a>
193           </h6>
194 <div class="informaltable"><table class="table">
195 <colgroup>
196 <col>
197 <col>
198 </colgroup>
199 <thead><tr>
200 <th>
201                     <p>
202                       Case
203                     </p>
204                   </th>
205 <th>
206                     <p>
207                       Behavior
208                     </p>
209                   </th>
210 </tr></thead>
211 <tbody>
212 <tr>
213 <td>
214                     <p>
215                       Point
216                     </p>
217                   </td>
218 <td>
219                     <p>
220                       Returns the point itself as the centroid
221                     </p>
222                   </td>
223 </tr>
224 <tr>
225 <td>
226                     <p>
227                       Multi Point
228                     </p>
229                   </td>
230 <td>
231                     <p>
232                       Calculates centroid (based on average)
233                     </p>
234                   </td>
235 </tr>
236 <tr>
237 <td>
238                     <p>
239                       linear (e.g. linestring)
240                     </p>
241                   </td>
242 <td>
243                     <p>
244                       Calculates centroid (based on weighted length)
245                     </p>
246                   </td>
247 </tr>
248 <tr>
249 <td>
250                     <p>
251                       areal (e.g. polygon)
252                     </p>
253                   </td>
254 <td>
255                     <p>
256                       Calculates centroid
257                     </p>
258                   </td>
259 </tr>
260 <tr>
261 <td>
262                     <p>
263                       Empty (e.g. polygon without points)
264                     </p>
265                   </td>
266 <td>
267                     <p>
268                       Throws a <a class="link" href="../../exceptions/centroid_exception.html" title="centroid_exception">centroid_exception</a>
269                     </p>
270                   </td>
271 </tr>
272 <tr>
273 <td>
274                     <p>
275                       Cartesian
276                     </p>
277                   </td>
278 <td>
279                     <p>
280                       Implemented
281                     </p>
282                   </td>
283 </tr>
284 <tr>
285 <td>
286                     <p>
287                       Spherical
288                     </p>
289                   </td>
290 <td>
291                     <p>
292                       Calculates the centroid as if based on Cartesian coordinates
293                     </p>
294                   </td>
295 </tr>
296 </tbody>
297 </table></div>
298 <h6>
299 <a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.h7"></a>
300             <span class="phrase"><a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.supported_geometries"></a></span><a class="link" href="return_centroid_2_with_strategy.html#geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.supported_geometries">Supported
301             geometries</a>
302           </h6>
303 <div class="informaltable"><table class="table">
304 <colgroup>
305 <col>
306 <col>
307 <col>
308 </colgroup>
309 <thead><tr>
310 <th>
311                   </th>
312 <th>
313                     <p>
314                       2D
315                     </p>
316                   </th>
317 <th>
318                     <p>
319                       3D
320                     </p>
321                   </th>
322 </tr></thead>
323 <tbody>
324 <tr>
325 <td>
326                     <p>
327                       Point
328                     </p>
329                   </td>
330 <td>
331                     <p>
332                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
333                     </p>
334                   </td>
335 <td>
336                     <p>
337                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
338                     </p>
339                   </td>
340 </tr>
341 <tr>
342 <td>
343                     <p>
344                       Segment
345                     </p>
346                   </td>
347 <td>
348                     <p>
349                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
350                     </p>
351                   </td>
352 <td>
353                     <p>
354                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
355                     </p>
356                   </td>
357 </tr>
358 <tr>
359 <td>
360                     <p>
361                       Box
362                     </p>
363                   </td>
364 <td>
365                     <p>
366                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
367                     </p>
368                   </td>
369 <td>
370                     <p>
371                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
372                     </p>
373                   </td>
374 </tr>
375 <tr>
376 <td>
377                     <p>
378                       Linestring
379                     </p>
380                   </td>
381 <td>
382                     <p>
383                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
384                     </p>
385                   </td>
386 <td>
387                     <p>
388                       <span class="inlinemediaobject"><img src="../../../../img/nyi.png" alt="nyi"></span>
389                     </p>
390                   </td>
391 </tr>
392 <tr>
393 <td>
394                     <p>
395                       Ring
396                     </p>
397                   </td>
398 <td>
399                     <p>
400                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
401                     </p>
402                   </td>
403 <td>
404                     <p>
405                       <span class="inlinemediaobject"><img src="../../../../img/nyi.png" alt="nyi"></span>
406                     </p>
407                   </td>
408 </tr>
409 <tr>
410 <td>
411                     <p>
412                       Polygon
413                     </p>
414                   </td>
415 <td>
416                     <p>
417                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
418                     </p>
419                   </td>
420 <td>
421                     <p>
422                       <span class="inlinemediaobject"><img src="../../../../img/nyi.png" alt="nyi"></span>
423                     </p>
424                   </td>
425 </tr>
426 <tr>
427 <td>
428                     <p>
429                       MultiPoint
430                     </p>
431                   </td>
432 <td>
433                     <p>
434                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
435                     </p>
436                   </td>
437 <td>
438                     <p>
439                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
440                     </p>
441                   </td>
442 </tr>
443 <tr>
444 <td>
445                     <p>
446                       MultiLinestring
447                     </p>
448                   </td>
449 <td>
450                     <p>
451                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
452                     </p>
453                   </td>
454 <td>
455                     <p>
456                       <span class="inlinemediaobject"><img src="../../../../img/nyi.png" alt="nyi"></span>
457                     </p>
458                   </td>
459 </tr>
460 <tr>
461 <td>
462                     <p>
463                       MultiPolygon
464                     </p>
465                   </td>
466 <td>
467                     <p>
468                       <span class="inlinemediaobject"><img src="../../../../img/ok.png" alt="ok"></span>
469                     </p>
470                   </td>
471 <td>
472                     <p>
473                       <span class="inlinemediaobject"><img src="../../../../img/nyi.png" alt="nyi"></span>
474                     </p>
475                   </td>
476 </tr>
477 </tbody>
478 </table></div>
479 <h6>
480 <a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.h8"></a>
481             <span class="phrase"><a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.complexity"></a></span><a class="link" href="return_centroid_2_with_strategy.html#geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.complexity">Complexity</a>
482           </h6>
483 <p>
484             Linear
485           </p>
486 <h6>
487 <a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.h9"></a>
488             <span class="phrase"><a name="geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.available_strategies"></a></span><a class="link" href="return_centroid_2_with_strategy.html#geometry.reference.algorithms.centroid.return_centroid_2_with_strategy.available_strategies">Available
489             Strategies</a>
490           </h6>
491 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
492                 <a class="link" href="../../strategies/strategy_centroid_bashein_detmer.html" title="strategy::centroid::bashein_detmer">Bashein
493                 Detmer (cartesian)</a>
494               </li></ul></div>
495 </div>
496 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
497 <td align="left"></td>
498 <td align="right"><div class="copyright-footer">Copyright &#169; 2009-2019 Barend Gehrels, Bruno Lalande, Mateusz Loskot, Adam
499       Wulkiewicz, Oracle and/or its affiliates<p>
500         Distributed under the Boost Software License, Version 1.0. (See accompanying
501         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>)
502       </p>
503 </div></td>
504 </tr></table>
505 <hr>
506 <div class="spirit-nav">
507 <a accesskey="p" href="return_centroid_1.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../centroid.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="../clear.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
508 </div>
509 </body>
510 </html>