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 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">
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="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>
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>
30 <a class="indexterm" name="idm46186981968720"></a><a class="indexterm" name="idm46186981968032"></a>
31 Class box: defines a box made of two describing points.
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>
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.
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
47 <a class="link" href="../concepts/concept_box.html" title="Box Concept">Box Concept</a>
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>
55 <pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Point</span><span class="special">></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>
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
68 <div class="informaltable"><table class="table">
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.
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>
105 <div class="informaltable"><table class="table">
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>
139 Default constructor, no initialization.
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">&</span> <span class="identifier">min_corner</span><span class="special">,</span> <span class="identifier">Point</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">max_corner</span><span class="special">)</span></pre>
155 Constructor taking the minimum corner point and the maximum corner
161 <span class="bold"><strong>Point const &</strong></span>: <span class="emphasis"><em>min_corner</em></span>:
164 <span class="bold"><strong>Point const &</strong></span>: <span class="emphasis"><em>max_corner</em></span>:
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
175 <div class="informaltable"><table class="table">
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">&</span> <span class="identifier">min_corner</span><span class="special">()</span></pre>
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">&</span> <span class="identifier">max_corner</span><span class="special">()</span></pre>
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">&</span> <span class="identifier">min_corner</span><span class="special">()</span></pre>
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">&</span> <span class="identifier">max_corner</span><span class="special">()</span></pre>
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>
275 <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">geometries</span><span class="special">/</span><span class="identifier">geometries</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
281 <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">geometries</span><span class="special">/</span><span class="identifier">box</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
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>
288 Declaration and use of the Boost.Geometry model::box, modelling the Box
293 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
294 <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>
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>
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"><</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">></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"><</span><span class="identifier">point_t</span><span class="special">></span> <span class="identifier">box_t</span><span class="special">;</span>
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>
306 <span class="preprocessor">#ifndef</span> <span class="identifier">BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX</span>
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>
310 <span class="preprocessor">#endif</span>
312 <span class="identifier">bg</span><span class="special">::</span><span class="identifier">set</span><span class="special"><</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">>(</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"><</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">>(</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"><</span><span class="number">0</span><span class="special">>(</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"><</span><span class="number">1</span><span class="special">>(</span><span class="number">4.0</span><span class="special">);</span>
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"><</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">>(</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"><</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">>(</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"><</span><span class="number">0</span><span class="special">>();</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"><</span><span class="number">1</span><span class="special">>();</span>
322 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">min_x</span> <span class="special"><<</span> <span class="string">", "</span> <span class="special"><<</span> <span class="identifier">min_y</span> <span class="special"><<</span> <span class="string">", "</span> <span class="special"><<</span> <span class="identifier">max_x</span> <span class="special"><<</span> <span class="string">", "</span> <span class="special"><<</span> <span class="identifier">max_y</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
324 <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
325 <span class="special">}</span>
329 <div class="calloutlist"><table border="0" summary="Callout list">
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.
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.
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.
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.
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>).
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.
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>).
378 <pre class="programlisting">1, 2, 3, 4
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>)
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>