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 1. 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">
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="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>
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>
30 <a class="indexterm" name="idm46187011589696"></a>
31 Macro to register a box.
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>
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.
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>
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>
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>
58 <div class="informaltable"><table class="table">
84 Box type to be registered
96 minimum corner (should be public member or method)
108 maximum corner (should be public member or method)
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>
119 <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="keyword">register</span><span class="special">/</span><span class="identifier">box</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
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>
126 Show the use of the macro BOOST_GEOMETRY_REGISTER_BOX_TEMPLATED
130 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
132 <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>
133 <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">point_xy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
134 <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="keyword">register</span><span class="special">/</span><span class="identifier">box</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
136 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">P</span><span class="special">></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>
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>
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"><</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"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">></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"><</span><span class="identifier">box</span><span class="special">>(</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"><<</span> <span class="string">"Area: "</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">area</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span> <span class="special"><<</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>
158 <pre class="programlisting">Area: 4
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 © 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>)
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>