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