Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / geometry / doc / html / geometry / reference / adapted / register / boost_geometry_register_box.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>BOOST_GEOMETRY_REGISTER_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="../register.html" title="Macro's for adaption">
9 <link rel="prev" href="../register.html" title="Macro's for adaption">
10 <link rel="next" href="boost_geometry_register_box_2d_4values.html" title="BOOST_GEOMETRY_REGISTER_BOX_2D_4VALUES">
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="../register.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../register.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="boost_geometry_register_box_2d_4values.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.adapted.register.boost_geometry_register_box"></a><a class="link" href="boost_geometry_register_box.html" title="BOOST_GEOMETRY_REGISTER_BOX">BOOST_GEOMETRY_REGISTER_BOX</a>
28 </h5></div></div></div>
29 <p>
30             <a class="indexterm" name="idm46187011856928"></a>
31 Macro to register a box.
32           </p>
33 <h6>
34 <a name="geometry.reference.adapted.register.boost_geometry_register_box.h0"></a>
35             <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_box.description"></a></span><a class="link" href="boost_geometry_register_box.html#geometry.reference.adapted.register.boost_geometry_register_box.description">Description</a>
36           </h6>
37 <p>
38             The macro BOOST_GEOMETRY_REGISTER_BOX registers a box such that it is
39             recognized by Boost.Geometry and that Boost.Geometry functionality can
40             used with the specified type. The box may contain template parameters,
41             which must be specified then.
42           </p>
43 <h6>
44 <a name="geometry.reference.adapted.register.boost_geometry_register_box.h1"></a>
45             <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_box.synopsis"></a></span><a class="link" href="boost_geometry_register_box.html#geometry.reference.adapted.register.boost_geometry_register_box.synopsis">Synopsis</a>
46           </h6>
47 <p>
48 </p>
49 <pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_GEOMETRY_REGISTER_BOX</span><span class="special">(</span><span class="identifier">Box</span><span class="special">,</span> <span class="identifier">Point</span><span class="special">,</span> <span class="identifier">MinCorner</span><span class="special">,</span>
50                              <span class="identifier">MaxCorner</span><span class="special">)</span></pre>
51 <p>
52           </p>
53 <h6>
54 <a name="geometry.reference.adapted.register.boost_geometry_register_box.h2"></a>
55             <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_box.parameters"></a></span><a class="link" href="boost_geometry_register_box.html#geometry.reference.adapted.register.boost_geometry_register_box.parameters">Parameters</a>
56           </h6>
57 <div class="informaltable"><table class="table">
58 <colgroup>
59 <col>
60 <col>
61 </colgroup>
62 <thead><tr>
63 <th>
64                     <p>
65                       Name
66                     </p>
67                   </th>
68 <th>
69                     <p>
70                       Description
71                     </p>
72                   </th>
73 </tr></thead>
74 <tbody>
75 <tr>
76 <td>
77                     <p>
78                       Box
79                     </p>
80                   </td>
81 <td>
82                     <p>
83                       Box type to be registered
84                     </p>
85                   </td>
86 </tr>
87 <tr>
88 <td>
89                     <p>
90                       Point
91                     </p>
92                   </td>
93 <td>
94                     <p>
95                       Point type on which box is based. Might be two or three-dimensional
96                     </p>
97                   </td>
98 </tr>
99 <tr>
100 <td>
101                     <p>
102                       MinCorner
103                     </p>
104                   </td>
105 <td>
106                     <p>
107                       minimum corner (should be public member or method)
108                     </p>
109                   </td>
110 </tr>
111 <tr>
112 <td>
113                     <p>
114                       MaxCorner
115                     </p>
116                   </td>
117 <td>
118                     <p>
119                       maximum corner (should be public member or method)
120                     </p>
121                   </td>
122 </tr>
123 </tbody>
124 </table></div>
125 <h6>
126 <a name="geometry.reference.adapted.register.boost_geometry_register_box.h3"></a>
127             <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_box.header"></a></span><a class="link" href="boost_geometry_register_box.html#geometry.reference.adapted.register.boost_geometry_register_box.header">Header</a>
128           </h6>
129 <p>
130             <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="keyword">register</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>
131           </p>
132 <h6>
133 <a name="geometry.reference.adapted.register.boost_geometry_register_box.h4"></a>
134             <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_box.example"></a></span><a class="link" href="boost_geometry_register_box.html#geometry.reference.adapted.register.boost_geometry_register_box.example">Example</a>
135           </h6>
136 <p>
137             Show the use of the macro BOOST_GEOMETRY_REGISTER_BOX
138           </p>
139 <p>
140 </p>
141 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
142 <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>
143 <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="keyword">register</span><span class="special">/</span><span class="identifier">point</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
144 <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="keyword">register</span><span class="special">/</span><span class="identifier">box</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
145
146 <span class="keyword">struct</span> <span class="identifier">my_point</span>
147 <span class="special">{</span>
148     <span class="keyword">double</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">;</span>
149 <span class="special">};</span>
150
151 <span class="keyword">struct</span> <span class="identifier">my_box</span>
152 <span class="special">{</span>
153     <span class="identifier">my_point</span> <span class="identifier">ll</span><span class="special">,</span> <span class="identifier">ur</span><span class="special">;</span>
154 <span class="special">};</span>
155
156 <span class="comment">// Register the point type</span>
157 <span class="identifier">BOOST_GEOMETRY_REGISTER_POINT_2D</span><span class="special">(</span><span class="identifier">my_point</span><span class="special">,</span> <span class="keyword">double</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">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">)</span>
158
159 <span class="comment">// Register the box type, also notifying that it is based on "my_point"</span>
160 <span class="identifier">BOOST_GEOMETRY_REGISTER_BOX</span><span class="special">(</span><span class="identifier">my_box</span><span class="special">,</span> <span class="identifier">my_point</span><span class="special">,</span> <span class="identifier">ll</span><span class="special">,</span> <span class="identifier">ur</span><span class="special">)</span>
161
162 <span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
163 <span class="special">{</span>
164     <span class="identifier">my_box</span> <span class="identifier">b</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">make</span><span class="special">&lt;</span><span class="identifier">my_box</span><span class="special">&gt;(</span><span class="number">0</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">2</span><span class="special">);</span>
165     <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Area: "</span>  <span class="special">&lt;&lt;</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">area</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</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>
166     <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
167 <span class="special">}</span>
168 </pre>
169 <p>
170           </p>
171 <p>
172             Output:
173           </p>
174 <pre class="programlisting">Area: 4
175 </pre>
176 </div>
177 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
178 <td align="left"></td>
179 <td align="right"><div class="copyright-footer">Copyright &#169; 2009-2019 Barend Gehrels, Bruno Lalande, Mateusz Loskot, Adam
180       Wulkiewicz, Oracle and/or its affiliates<p>
181         Distributed under the Boost Software License, Version 1.0. (See accompanying
182         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>)
183       </p>
184 </div></td>
185 </tr></table>
186 <hr>
187 <div class="spirit-nav">
188 <a accesskey="p" href="../register.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../register.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="boost_geometry_register_box_2d_4values.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
189 </div>
190 </body>
191 </html>