• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>model::box</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="../models.html" title="Models">
9<link rel="prev" href="model_multi_polygon.html" title="model::multi_polygon">
10<link rel="next" href="model_ring.html" title="model::ring">
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="model_multi_polygon.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../models.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="model_ring.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.models.model_box"></a><a class="link" href="model_box.html" title="model::box">model::box</a>
28</h4></div></div></div>
29<p>
30          <a class="indexterm" name="idm45635678755776"></a><a class="indexterm" name="idm45635678755088"></a>
31Class box: defines a box made of two describing points.
32        </p>
33<h6>
34<a name="geometry.reference.models.model_box.h0"></a>
35          <span class="phrase"><a name="geometry.reference.models.model_box.description"></a></span><a class="link" href="model_box.html#geometry.reference.models.model_box.description">Description</a>
36        </h6>
37<p>
38          Box is always described by a min_corner() and a max_corner() point. If
39          another rectangle is used, use linear_ring or polygon.
40        </p>
41<h6>
42<a name="geometry.reference.models.model_box.h1"></a>
43          <span class="phrase"><a name="geometry.reference.models.model_box.model_of"></a></span><a class="link" href="model_box.html#geometry.reference.models.model_box.model_of">Model
44          of</a>
45        </h6>
46<p>
47          <a class="link" href="../concepts/concept_box.html" title="Box Concept">Box Concept</a>
48        </p>
49<h6>
50<a name="geometry.reference.models.model_box.h2"></a>
51          <span class="phrase"><a name="geometry.reference.models.model_box.synopsis"></a></span><a class="link" href="model_box.html#geometry.reference.models.model_box.synopsis">Synopsis</a>
52        </h6>
53<p>
54</p>
55<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">&gt;</span>
56<span class="keyword">class</span> <span class="identifier">model</span><span class="special">::</span><span class="identifier">box</span>
57<span class="special">{</span>
58  <span class="comment">// ...</span>
59<span class="special">};</span>
60</pre>
61<p>
62        </p>
63<h6>
64<a name="geometry.reference.models.model_box.h3"></a>
65          <span class="phrase"><a name="geometry.reference.models.model_box.template_parameter_s_"></a></span><a class="link" href="model_box.html#geometry.reference.models.model_box.template_parameter_s_">Template
66          parameter(s)</a>
67        </h6>
68<div class="informaltable"><table class="table">
69<colgroup>
70<col>
71<col>
72</colgroup>
73<thead><tr>
74<th>
75                  <p>
76                    Parameter
77                  </p>
78                </th>
79<th>
80                  <p>
81                    Description
82                  </p>
83                </th>
84</tr></thead>
85<tbody><tr>
86<td>
87                  <p>
88                    typename Point
89                  </p>
90                </td>
91<td>
92                  <p>
93                    point type. The box takes a point type as template parameter.
94                    The point type can be any point type. It can be 2D but can also
95                    be 3D or more dimensional. The box can also take a latlong point
96                    type as template parameter.
97                  </p>
98                </td>
99</tr></tbody>
100</table></div>
101<h6>
102<a name="geometry.reference.models.model_box.h4"></a>
103          <span class="phrase"><a name="geometry.reference.models.model_box.constructor_s_"></a></span><a class="link" href="model_box.html#geometry.reference.models.model_box.constructor_s_">Constructor(s)</a>
104        </h6>
105<div class="informaltable"><table class="table">
106<colgroup>
107<col>
108<col>
109<col>
110</colgroup>
111<thead><tr>
112<th>
113                  <p>
114                    Function
115                  </p>
116                </th>
117<th>
118                  <p>
119                    Description
120                  </p>
121                </th>
122<th>
123                  <p>
124                    Parameters
125                  </p>
126                </th>
127</tr></thead>
128<tbody>
129<tr>
130<td>
131                  <p>
132</p>
133<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">box</span><span class="special">()</span></pre>
134<p>
135                  </p>
136                </td>
137<td>
138                  <p>
139                    Default constructor, no initialization.
140                  </p>
141                </td>
142<td>
143                </td>
144</tr>
145<tr>
146<td>
147                  <p>
148</p>
149<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">box</span><span class="special">(</span><span class="identifier">Point</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">min_corner</span><span class="special">,</span> <span class="identifier">Point</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">max_corner</span><span class="special">)</span></pre>
150<p>
151                  </p>
152                </td>
153<td>
154                  <p>
155                    Constructor taking the minimum corner point and the maximum corner
156                    point.
157                  </p>
158                </td>
159<td>
160                  <p>
161                    <span class="bold"><strong>Point const &amp;</strong></span>: <span class="emphasis"><em>min_corner</em></span>:
162                  </p>
163                  <p>
164                    <span class="bold"><strong>Point const &amp;</strong></span>: <span class="emphasis"><em>max_corner</em></span>:
165                  </p>
166                </td>
167</tr>
168</tbody>
169</table></div>
170<h6>
171<a name="geometry.reference.models.model_box.h5"></a>
172          <span class="phrase"><a name="geometry.reference.models.model_box.member_function_s_"></a></span><a class="link" href="model_box.html#geometry.reference.models.model_box.member_function_s_">Member
173          Function(s)</a>
174        </h6>
175<div class="informaltable"><table class="table">
176<colgroup>
177<col>
178<col>
179<col>
180<col>
181</colgroup>
182<thead><tr>
183<th>
184                  <p>
185                    Function
186                  </p>
187                </th>
188<th>
189                  <p>
190                    Description
191                  </p>
192                </th>
193<th>
194                  <p>
195                    Parameters
196                  </p>
197                </th>
198<th>
199                  <p>
200                    Returns
201                  </p>
202                </th>
203</tr></thead>
204<tbody>
205<tr>
206<td>
207                  <p>
208</p>
209<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Point</span> <span class="keyword">const</span>  <span class="special">&amp;</span> <span class="identifier">min_corner</span><span class="special">()</span></pre>
210<p>
211                  </p>
212                </td>
213<td>
214                </td>
215<td>
216                </td>
217<td>
218                </td>
219</tr>
220<tr>
221<td>
222                  <p>
223</p>
224<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Point</span> <span class="keyword">const</span>  <span class="special">&amp;</span> <span class="identifier">max_corner</span><span class="special">()</span></pre>
225<p>
226                  </p>
227                </td>
228<td>
229                </td>
230<td>
231                </td>
232<td>
233                </td>
234</tr>
235<tr>
236<td>
237                  <p>
238</p>
239<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Point</span> <span class="special">&amp;</span> <span class="identifier">min_corner</span><span class="special">()</span></pre>
240<p>
241                  </p>
242                </td>
243<td>
244                </td>
245<td>
246                </td>
247<td>
248                </td>
249</tr>
250<tr>
251<td>
252                  <p>
253</p>
254<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Point</span> <span class="special">&amp;</span> <span class="identifier">max_corner</span><span class="special">()</span></pre>
255<p>
256                  </p>
257                </td>
258<td>
259                </td>
260<td>
261                </td>
262<td>
263                </td>
264</tr>
265</tbody>
266</table></div>
267<h6>
268<a name="geometry.reference.models.model_box.h6"></a>
269          <span class="phrase"><a name="geometry.reference.models.model_box.header"></a></span><a class="link" href="model_box.html#geometry.reference.models.model_box.header">Header</a>
270        </h6>
271<p>
272          Either
273        </p>
274<p>
275          <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">geometries</span><span class="special">/</span><span class="identifier">geometries</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
276        </p>
277<p>
278          Or
279        </p>
280<p>
281          <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">geometries</span><span class="special">/</span><span class="identifier">box</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
282        </p>
283<h6>
284<a name="geometry.reference.models.model_box.h7"></a>
285          <span class="phrase"><a name="geometry.reference.models.model_box.examples"></a></span><a class="link" href="model_box.html#geometry.reference.models.model_box.examples">Examples</a>
286        </h6>
287<p>
288          Declaration and use of the Boost.Geometry model::box, modelling the Box
289          Concept
290        </p>
291<p>
292</p>
293<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
294<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>
295
296<span class="keyword">namespace</span> <span class="identifier">bg</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">;</span>
297
298<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
299<span class="special">{</span>
300    <span class="keyword">typedef</span> <span class="identifier">bg</span><span class="special">::</span><span class="identifier">model</span><span class="special">::</span><span class="identifier">point</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="identifier">bg</span><span class="special">::</span><span class="identifier">cs</span><span class="special">::</span><span class="identifier">cartesian</span><span class="special">&gt;</span> <span class="identifier">point_t</span><span class="special">;</span>
301    <span class="keyword">typedef</span> <span class="identifier">bg</span><span class="special">::</span><span class="identifier">model</span><span class="special">::</span><span class="identifier">box</span><span class="special">&lt;</span><span class="identifier">point_t</span><span class="special">&gt;</span> <span class="identifier">box_t</span><span class="special">;</span>
302
303    <span class="identifier">box_t</span> <span class="identifier">box1</span><span class="special">;</span> <a class="co" name="geometry.reference.models.model_box.c0" href="model_box.html#geometry.reference.models.model_box.c1"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a>
304    <span class="identifier">box_t</span> <span class="identifier">box2</span><span class="special">(</span><span class="identifier">point_t</span><span class="special">(</span><span class="number">0.0</span><span class="special">,</span> <span class="number">0.0</span><span class="special">),</span> <span class="identifier">point_t</span><span class="special">(</span><span class="number">5.0</span><span class="special">,</span> <span class="number">5.0</span><span class="special">));</span> <a class="co" name="geometry.reference.models.model_box.c2" href="model_box.html#geometry.reference.models.model_box.c3"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a>
305
306<span class="preprocessor">#ifndef</span> <span class="identifier">BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX</span>
307
308    <span class="identifier">box_t</span> <span class="identifier">box3</span><span class="special">{{</span><span class="number">0.0</span><span class="special">,</span> <span class="number">0.0</span><span class="special">},</span> <span class="special">{</span><span class="number">5.0</span><span class="special">,</span> <span class="number">5.0</span><span class="special">}};</span> <a class="co" name="geometry.reference.models.model_box.c4" href="model_box.html#geometry.reference.models.model_box.c5"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a>
309
310<span class="preprocessor">#endif</span>
311
312    <span class="identifier">bg</span><span class="special">::</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">bg</span><span class="special">::</span><span class="identifier">min_corner</span><span class="special">,</span> <span class="number">0</span><span class="special">&gt;(</span><span class="identifier">box1</span><span class="special">,</span> <span class="number">1.0</span><span class="special">);</span> <a class="co" name="geometry.reference.models.model_box.c6" href="model_box.html#geometry.reference.models.model_box.c7"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a>
313    <span class="identifier">bg</span><span class="special">::</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">bg</span><span class="special">::</span><span class="identifier">min_corner</span><span class="special">,</span> <span class="number">1</span><span class="special">&gt;(</span><span class="identifier">box1</span><span class="special">,</span> <span class="number">2.0</span><span class="special">);</span>
314    <span class="identifier">box1</span><span class="special">.</span><span class="identifier">max_corner</span><span class="special">().</span><span class="identifier">set</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="number">3.0</span><span class="special">);</span> <a class="co" name="geometry.reference.models.model_box.c8" href="model_box.html#geometry.reference.models.model_box.c9"><img src="../../../../../../../doc/src/images/callouts/5.png" alt="5" border="0"></a>
315    <span class="identifier">box1</span><span class="special">.</span><span class="identifier">max_corner</span><span class="special">().</span><span class="identifier">set</span><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;(</span><span class="number">4.0</span><span class="special">);</span>
316
317    <span class="keyword">double</span> <span class="identifier">min_x</span> <span class="special">=</span> <span class="identifier">bg</span><span class="special">::</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">bg</span><span class="special">::</span><span class="identifier">min_corner</span><span class="special">,</span> <span class="number">0</span><span class="special">&gt;(</span><span class="identifier">box1</span><span class="special">);</span> <a class="co" name="geometry.reference.models.model_box.c10" href="model_box.html#geometry.reference.models.model_box.c11"><img src="../../../../../../../doc/src/images/callouts/6.png" alt="6" border="0"></a>
318    <span class="keyword">double</span> <span class="identifier">min_y</span> <span class="special">=</span> <span class="identifier">bg</span><span class="special">::</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">bg</span><span class="special">::</span><span class="identifier">min_corner</span><span class="special">,</span> <span class="number">1</span><span class="special">&gt;(</span><span class="identifier">box1</span><span class="special">);</span>
319    <span class="keyword">double</span> <span class="identifier">max_x</span> <span class="special">=</span> <span class="identifier">box1</span><span class="special">.</span><span class="identifier">max_corner</span><span class="special">().</span><span class="identifier">get</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;();</span> <a class="co" name="geometry.reference.models.model_box.c12" href="model_box.html#geometry.reference.models.model_box.c13"><img src="../../../../../../../doc/src/images/callouts/7.png" alt="7" border="0"></a>
320    <span class="keyword">double</span> <span class="identifier">max_y</span> <span class="special">=</span> <span class="identifier">box1</span><span class="special">.</span><span class="identifier">max_corner</span><span class="special">().</span><span class="identifier">get</span><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;();</span>
321
322    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">min_x</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">min_y</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">max_x</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">max_y</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>
323
324    <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
325<span class="special">}</span>
326</pre>
327<p>
328        </p>
329<div class="calloutlist"><table border="0" summary="Callout list">
330<tr>
331<td width="5%" valign="top" align="left"><p><a name="geometry.reference.models.model_box.c1"></a><a href="#geometry.reference.models.model_box.c0"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
332<td valign="top" align="left"><p>
333              Default-construct a box.
334            </p></td>
335</tr>
336<tr>
337<td width="5%" valign="top" align="left"><p><a name="geometry.reference.models.model_box.c3"></a><a href="#geometry.reference.models.model_box.c2"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a> </p></td>
338<td valign="top" align="left"><p>
339              Construct, assigning min and max corner point.
340            </p></td>
341</tr>
342<tr>
343<td width="5%" valign="top" align="left"><p><a name="geometry.reference.models.model_box.c5"></a><a href="#geometry.reference.models.model_box.c4"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a> </p></td>
344<td valign="top" align="left"><p>
345              Construct, using C++11 unified initialization syntax.
346            </p></td>
347</tr>
348<tr>
349<td width="5%" valign="top" align="left"><p><a name="geometry.reference.models.model_box.c7"></a><a href="#geometry.reference.models.model_box.c6"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a> </p></td>
350<td valign="top" align="left"><p>
351              Set a coordinate, generic.
352            </p></td>
353</tr>
354<tr>
355<td width="5%" valign="top" align="left"><p><a name="geometry.reference.models.model_box.c9"></a><a href="#geometry.reference.models.model_box.c8"><img src="../../../../../../../doc/src/images/callouts/5.png" alt="5" border="0"></a> </p></td>
356<td valign="top" align="left"><p>
357              Set a coordinate, class-specific (<span class="bold"><strong>Note</strong></span>:
358              prefer <code class="computeroutput"><span class="identifier">bg</span><span class="special">::</span><span class="identifier">set</span><span class="special">()</span></code>).
359            </p></td>
360</tr>
361<tr>
362<td width="5%" valign="top" align="left"><p><a name="geometry.reference.models.model_box.c11"></a><a href="#geometry.reference.models.model_box.c10"><img src="../../../../../../../doc/src/images/callouts/6.png" alt="6" border="0"></a> </p></td>
363<td valign="top" align="left"><p>
364              Get a coordinate, generic.
365            </p></td>
366</tr>
367<tr>
368<td width="5%" valign="top" align="left"><p><a name="geometry.reference.models.model_box.c13"></a><a href="#geometry.reference.models.model_box.c12"><img src="../../../../../../../doc/src/images/callouts/7.png" alt="7" border="0"></a> </p></td>
369<td valign="top" align="left"><p>
370              Get a coordinate, class-specific (<span class="bold"><strong>Note</strong></span>:
371              prefer <code class="computeroutput"><span class="identifier">bg</span><span class="special">::</span><span class="identifier">get</span><span class="special">()</span></code>).
372            </p></td>
373</tr>
374</table></div>
375<p>
376          Output:
377        </p>
378<pre class="programlisting">1, 2, 3, 4
379</pre>
380</div>
381<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
382<td align="left"></td>
383<td align="right"><div class="copyright-footer">Copyright © 2009-2019 Barend Gehrels, Bruno Lalande, Mateusz Loskot, Adam
384      Wulkiewicz, Oracle and/or its affiliates<p>
385        Distributed under the Boost Software License, Version 1.0. (See accompanying
386        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>)
387      </p>
388</div></td>
389</tr></table>
390<hr>
391<div class="spirit-nav">
392<a accesskey="p" href="model_multi_polygon.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../models.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="model_ring.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
393</div>
394</body>
395</html>
396