Imported Upstream version 1.64.0
[platform/upstream/boost.git] / libs / geometry / doc / html / geometry / reference / adapted / register / boost_geometry_register_linestring_templated.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>BOOST_GEOMETRY_REGISTER_LINESTRING_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_linestring.html" title="BOOST_GEOMETRY_REGISTER_LINESTRING">
10 <link rel="next" href="boost_geometry_register_multi_linestring.html" title="BOOST_GEOMETRY_REGISTER_MULTI_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_linestring.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_multi_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_linestring_templated"></a><a class="link" href="boost_geometry_register_linestring_templated.html" title="BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED">BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED</a>
28 </h5></div></div></div>
29 <p>
30             <a class="indexterm" name="idp86365760"></a>
31 Macro to register a templated linestring.
32           </p>
33 <h6>
34 <a name="geometry.reference.adapted.register.boost_geometry_register_linestring_templated.h0"></a>
35             <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_linestring_templated.description"></a></span><a class="link" href="boost_geometry_register_linestring_templated.html#geometry.reference.adapted.register.boost_geometry_register_linestring_templated.description">Description</a>
36           </h6>
37 <p>
38             The macro BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED registers a templated
39             linestring such that it is recognized by Boost.Geometry and that Boost.Geometry
40             functionality can used with the specified type. The type must have one
41             template parameter, which should be a point type, and should not be specified.
42             Boost.Geometry takes care of inserting the template parameter. Hence
43             all types of this templated linestring are registered, regardless of
44             their point type.
45           </p>
46 <h6>
47 <a name="geometry.reference.adapted.register.boost_geometry_register_linestring_templated.h1"></a>
48             <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_linestring_templated.synopsis"></a></span><a class="link" href="boost_geometry_register_linestring_templated.html#geometry.reference.adapted.register.boost_geometry_register_linestring_templated.synopsis">Synopsis</a>
49           </h6>
50 <p>
51 </p>
52 <pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED</span><span class="special">(</span><span class="identifier">Linestring</span><span class="special">)</span></pre>
53 <p>
54           </p>
55 <h6>
56 <a name="geometry.reference.adapted.register.boost_geometry_register_linestring_templated.h2"></a>
57             <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_linestring_templated.parameters"></a></span><a class="link" href="boost_geometry_register_linestring_templated.html#geometry.reference.adapted.register.boost_geometry_register_linestring_templated.parameters">Parameters</a>
58           </h6>
59 <div class="informaltable"><table class="table">
60 <colgroup>
61 <col>
62 <col>
63 </colgroup>
64 <thead><tr>
65 <th>
66                     <p>
67                       Name
68                     </p>
69                   </th>
70 <th>
71                     <p>
72                       Description
73                     </p>
74                   </th>
75 </tr></thead>
76 <tbody><tr>
77 <td>
78                     <p>
79                       Linestring
80                     </p>
81                   </td>
82 <td>
83                     <p>
84                       linestring (without template parameters) type to be registered
85                     </p>
86                   </td>
87 </tr></tbody>
88 </table></div>
89 <h6>
90 <a name="geometry.reference.adapted.register.boost_geometry_register_linestring_templated.h3"></a>
91             <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_linestring_templated.header"></a></span><a class="link" href="boost_geometry_register_linestring_templated.html#geometry.reference.adapted.register.boost_geometry_register_linestring_templated.header">Header</a>
92           </h6>
93 <p>
94             <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">linestring</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
95           </p>
96 <h6>
97 <a name="geometry.reference.adapted.register.boost_geometry_register_linestring_templated.h4"></a>
98             <span class="phrase"><a name="geometry.reference.adapted.register.boost_geometry_register_linestring_templated.example"></a></span><a class="link" href="boost_geometry_register_linestring_templated.html#geometry.reference.adapted.register.boost_geometry_register_linestring_templated.example">Example</a>
99           </h6>
100 <p>
101             Show the use of the macro BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED
102           </p>
103 <p>
104 </p>
105 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
106 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">deque</span><span class="special">&gt;</span>
107
108 <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>
109 <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>
110 <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">linestring</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
111
112 <span class="comment">// Adapt any deque to Boost.Geometry Linestring Concept</span>
113 <span class="identifier">BOOST_GEOMETRY_REGISTER_LINESTRING_TEMPLATED</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">deque</span><span class="special">)</span>
114
115 <span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
116 <span class="special">{</span>
117     <span class="identifier">std</span><span class="special">::</span><span class="identifier">deque</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">line</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>
118     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">assign_values</span><span class="special">(</span><span class="identifier">line</span><span class="special">[</span><span class="number">0</span><span class="special">],</span> <span class="number">1</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
119     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">geometry</span><span class="special">::</span><span class="identifier">assign_values</span><span class="special">(</span><span class="identifier">line</span><span class="special">[</span><span class="number">1</span><span class="special">],</span> <span class="number">2</span><span class="special">,</span> <span class="number">2</span><span class="special">);</span>
120
121     <span class="comment">// Boost.Geometry algorithms work on any deque now</span>
122     <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Length: "</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">length</span><span class="special">(</span><span class="identifier">line</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>
123     <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Line: "</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">dsv</span><span class="special">(</span><span class="identifier">line</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>
124
125     <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
126 <span class="special">}</span>
127 </pre>
128 <p>
129           </p>
130 <p>
131             Output:
132           </p>
133 <pre class="programlisting">Length: 1.41421
134 Line: ((1, 1), (2, 2))
135 </pre>
136 </div>
137 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
138 <td align="left"></td>
139 <td align="right"><div class="copyright-footer">Copyright &#169; 2009-2017 Barend
140       Gehrels, Bruno Lalande, Mateusz Loskot, Adam Wulkiewicz, Oracle and/or its
141       affiliates<p>
142         Distributed under the Boost Software License, Version 1.0. (See accompanying
143         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>)
144       </p>
145 </div></td>
146 </tr></table>
147 <hr>
148 <div class="spirit-nav">
149 <a accesskey="p" href="boost_geometry_register_linestring.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_multi_linestring.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
150 </div>
151 </body>
152 </html>