3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>num_points</title>
5 <link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.78.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="num_interior_rings.html" title="num_interior_rings">
10 <link rel="next" href="overlaps.html" title="overlaps">
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>
22 <div class="spirit-nav">
23 <a accesskey="p" href="num_interior_rings.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="overlaps.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
26 <div class="titlepage"><div><div><h4 class="title">
27 <a name="geometry.reference.algorithms.num_points"></a><a class="link" href="num_points.html" title="num_points">num_points</a>
28 </h4></div></div></div>
30 <a class="indexterm" name="idp119214144"></a>
31 Calculates the number of points of a geometry.
34 <a name="geometry.reference.algorithms.num_points.h0"></a>
35 <span class="phrase"><a name="geometry.reference.algorithms.num_points.description"></a></span><a class="link" href="num_points.html#geometry.reference.algorithms.num_points.description">Description</a>
38 The free function num_points calculates the number of points of a geometry.
41 <a name="geometry.reference.algorithms.num_points.h1"></a>
42 <span class="phrase"><a name="geometry.reference.algorithms.num_points.synopsis"></a></span><a class="link" href="num_points.html#geometry.reference.algorithms.num_points.synopsis">Synopsis</a>
46 <pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Geometry</span><span class="special">></span>
47 <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">num_points</span><span class="special">(</span><span class="identifier">Geometry</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">geometry</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">add_for_open</span> <span class="special">=</span> <span class="keyword">false</span><span class="special">)</span></pre>
51 <a name="geometry.reference.algorithms.num_points.h2"></a>
52 <span class="phrase"><a name="geometry.reference.algorithms.num_points.parameters"></a></span><a class="link" href="num_points.html#geometry.reference.algorithms.num_points.parameters">Parameters</a>
54 <div class="informaltable"><table class="table">
92 Any type fulfilling a Geometry Concept
102 A model of the specified concept
121 add one for open geometries (i.e. polygon types which are not
129 <a name="geometry.reference.algorithms.num_points.h3"></a>
130 <span class="phrase"><a name="geometry.reference.algorithms.num_points.returns"></a></span><a class="link" href="num_points.html#geometry.reference.algorithms.num_points.returns">Returns</a>
133 The calculated number of points
136 <a name="geometry.reference.algorithms.num_points.h4"></a>
137 <span class="phrase"><a name="geometry.reference.algorithms.num_points.header"></a></span><a class="link" href="num_points.html#geometry.reference.algorithms.num_points.header">Header</a>
143 <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">></span></code>
149 <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</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">num_points</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
152 <a name="geometry.reference.algorithms.num_points.h5"></a>
153 <span class="phrase"><a name="geometry.reference.algorithms.num_points.conformance"></a></span><a class="link" href="num_points.html#geometry.reference.algorithms.num_points.conformance">Conformance</a>
156 The function num_points implements function NumPoints from the <a href="http://www.opengeospatial.org/standards/sfa" target="_top">OGC
157 Simple Feature Specification</a>.
159 <div class="note"><table border="0" summary="Note">
161 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/src/images/note.png"></td>
162 <th align="left">Note</th>
164 <tr><td align="left" valign="top"><p>
165 num_points can be called for any geometry and not just linestrings (as
166 the standard describes)
170 <a name="geometry.reference.algorithms.num_points.h6"></a>
171 <span class="phrase"><a name="geometry.reference.algorithms.num_points.behavior"></a></span><a class="link" href="num_points.html#geometry.reference.algorithms.num_points.behavior">Behavior</a>
173 <div class="informaltable"><table class="table">
223 Returns 2^d, where d is the dimension of the box
230 Rangelike (linestring, ring)
235 Returns boost::size(geometry)
247 Returns the sum of the number of points of its elements
259 Returns the sum of the number of points of its elements, it adds
260 one for open (per ring) if specified
272 Returns the sum of the number of points of its elements
279 <a name="geometry.reference.algorithms.num_points.h7"></a>
280 <span class="phrase"><a name="geometry.reference.algorithms.num_points.complexity"></a></span><a class="link" href="num_points.html#geometry.reference.algorithms.num_points.complexity">Complexity</a>
286 <a name="geometry.reference.algorithms.num_points.h8"></a>
287 <span class="phrase"><a name="geometry.reference.algorithms.num_points.examples"></a></span><a class="link" href="num_points.html#geometry.reference.algorithms.num_points.examples">Examples</a>
290 Get the number of points in a geometry
294 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
296 <span class="preprocessor">#include</span> <span class="special"><</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">></span>
297 <span class="preprocessor">#include</span> <span class="special"><</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">point_xy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
298 <span class="preprocessor">#include</span> <span class="special"><</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">></span>
299 <span class="preprocessor">#include</span> <span class="special"><</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">multi_polygon</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
302 <span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
303 <span class="special">{</span>
304 <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">multi_polygon</span>
305 <span class="special"><</span>
306 <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>
307 <span class="special"><</span>
308 <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">d2</span><span class="special">::</span><span class="identifier">point_xy</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>
309 <span class="special">></span>
310 <span class="special">></span> <span class="identifier">mp</span><span class="special">;</span>
311 <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">read_wkt</span><span class="special">(</span><span class="string">"MULTIPOLYGON(((0 0,0 10,10 0,0 0),(1 1,1 9,9 1,1 1)),((10 10,10 7,7 10,10 10)))"</span><span class="special">,</span> <span class="identifier">mp</span><span class="special">);</span>
312 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Number of points: "</span> <span class="special"><<</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">num_points</span><span class="special">(</span><span class="identifier">mp</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
314 <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
315 <span class="special">}</span>
322 <pre class="programlisting">Number of points: 12
325 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
326 <td align="left"></td>
327 <td align="right"><div class="copyright-footer">Copyright © 2009-2014 Barend Gehrels, Bruno Lalande, Mateusz Loskot, Adam
328 Wulkiewicz, Oracle and/or its affiliates<p>
329 Distributed under the Boost Software License, Version 1.0. (See accompanying
330 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>)
335 <div class="spirit-nav">
336 <a accesskey="p" href="num_interior_rings.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="overlaps.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>