3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>BOOST_GEOMETRY_REGISTER_RING</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_point_3d_get_set.html" title="BOOST_GEOMETRY_REGISTER_POINT_3D_GET_SET">
10 <link rel="next" href="boost_geometry_register_ring_templated.html" title="BOOST_GEOMETRY_REGISTER_RING_TEMPLATED">
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_point_3d_get_set.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_ring_templated.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_ring"></a><a class="link" href="boost_geometry_register_ring.html" title="BOOST_GEOMETRY_REGISTER_RING">BOOST_GEOMETRY_REGISTER_RING</a>
28 </h5></div></div></div>
30 <a class="indexterm" name="idm46187010246240"></a>
31 Macro to register a ring.
34 <a name="geometry.reference.adapted.register.boost_geometry_register_ring.h0"></a>
35 <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_ring.description"></a></span><a class="link" href="boost_geometry_register_ring.html#geometry.reference.adapted.register.boost_geometry_register_ring.description">Description</a>
38 The macro BOOST_GEOMETRY_REGISTER_RING registers a ring such that it
39 is recognized by Boost.Geometry and that Boost.Geometry functionality
40 can used with the specified type. The ring may contain template parameters,
41 which must be specified then.
44 <a name="geometry.reference.adapted.register.boost_geometry_register_ring.h1"></a>
45 <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_ring.synopsis"></a></span><a class="link" href="boost_geometry_register_ring.html#geometry.reference.adapted.register.boost_geometry_register_ring.synopsis">Synopsis</a>
49 <pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_GEOMETRY_REGISTER_RING</span><span class="special">(</span><span class="identifier">Ring</span><span class="special">)</span></pre>
53 <a name="geometry.reference.adapted.register.boost_geometry_register_ring.h2"></a>
54 <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_ring.parameters"></a></span><a class="link" href="boost_geometry_register_ring.html#geometry.reference.adapted.register.boost_geometry_register_ring.parameters">Parameters</a>
56 <div class="informaltable"><table class="table">
81 ring type to be registered
87 <a name="geometry.reference.adapted.register.boost_geometry_register_ring.h3"></a>
88 <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_ring.header"></a></span><a class="link" href="boost_geometry_register_ring.html#geometry.reference.adapted.register.boost_geometry_register_ring.header">Header</a>
91 <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">ring</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
94 <a name="geometry.reference.adapted.register.boost_geometry_register_ring.h4"></a>
95 <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_ring.example"></a></span><a class="link" href="boost_geometry_register_ring.html#geometry.reference.adapted.register.boost_geometry_register_ring.example">Example</a>
98 Show the use of the macro BOOST_GEOMETRY_REGISTER_RING
102 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
104 <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>
105 <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>
106 <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">ring</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
108 <span class="keyword">typedef</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="identifier">point_2d</span><span class="special">;</span>
110 <span class="identifier">BOOST_GEOMETRY_REGISTER_RING</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">point_2d</span><span class="special">>)</span> <a class="co" name="geometry.reference.adapted.register.boost_geometry_register_ring.c0" href="boost_geometry_register_ring.html#geometry.reference.adapted.register.boost_geometry_register_ring.c1"><img src="../../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a>
112 <span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
113 <span class="special">{</span>
114 <span class="comment">// Normal usage of std::</span>
115 <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">point_2d</span><span class="special">></span> <span class="identifier">ring</span><span class="special">;</span>
116 <span class="identifier">ring</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">point_2d</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">1</span><span class="special">));</span>
117 <span class="identifier">ring</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">point_2d</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">2</span><span class="special">));</span>
118 <span class="identifier">ring</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">point_2d</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">1</span><span class="special">));</span>
121 <span class="comment">// Usage of Boost.Geometry</span>
122 <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">correct</span><span class="special">(</span><span class="identifier">ring</span><span class="special">);</span>
123 <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">ring</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>
124 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"WKT: "</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">wkt</span><span class="special">(</span><span class="identifier">ring</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>
126 <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
127 <span class="special">}</span>
131 <div class="calloutlist"><table border="0" summary="Callout list"><tr>
132 <td width="5%" valign="top" align="left"><p><a name="geometry.reference.adapted.register.boost_geometry_register_ring.c1"></a><a href="#geometry.reference.adapted.register.boost_geometry_register_ring.c0"><img src="../../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
133 <td valign="top" align="left"><p>
134 The magic: adapt vector to Boost.Geometry Ring Concept
140 <pre class="programlisting">Area: 0.5
141 WKT: POLYGON((1 1,2 2,2 1,1 1))
144 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
145 <td align="left"></td>
146 <td align="right"><div class="copyright-footer">Copyright © 2009-2019 Barend Gehrels, Bruno Lalande, Mateusz Loskot, Adam
147 Wulkiewicz, Oracle and/or its affiliates<p>
148 Distributed under the Boost Software License, Version 1.0. (See accompanying
149 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>)
154 <div class="spirit-nav">
155 <a accesskey="p" href="boost_geometry_register_point_3d_get_set.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_ring_templated.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>