Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / geometry / doc / html / geometry / reference / models / model_box.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
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&#160;1.&#160;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="idm46186981968720"></a><a class="indexterm" name="idm46186981968032"></a>
31 Class 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 &#169; 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>