blob: 33c85d6ec2bde12e870f409744bfb42e37a9fb83 [file] [log] [blame]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>model::point</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Geometry 1.0">
<link rel="up" href="../models.html" title="Models">
<link rel="prev" href="../models.html" title="Models">
<link rel="next" href="model_d2_point_xy.html" title="model::d2::point_xy">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../models.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../models.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="model_d2_point_xy.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="geometry.reference.models.model_point"></a><a class="link" href="model_point.html" title="model::point">model::point</a>
</h4></div></div></div>
<p>
<a class="indexterm" name="id933432"></a><a class="indexterm" name="id933437"></a>
Basic point class, having coordinates defined in a neutral way.
</p>
<a name="geometry.reference.models.model_point.description"></a><h6>
<a name="geometry.reference.models.model_point.description-heading"></a>
<a class="link" href="model_point.html#geometry.reference.models.model_point.description">Description</a>
</h6>
<p>
Defines a neutral point class, fulfilling the Point Concept. Library users
can use this point class, or use their own point classes. This point class
is used in most of the samples and tests of Boost.Geometry This point class
is used occasionally within the library, where a temporary point class
is necessary.
</p>
<a name="geometry.reference.models.model_point.model_of"></a><h6>
<a name="geometry.reference.models.model_point.model_of-heading"></a>
<a class="link" href="model_point.html#geometry.reference.models.model_point.model_of">Model of</a>
</h6>
<p>
<a class="link" href="../concepts/concept_point.html" title="Point Concept">Point Concept</a>
</p>
<a name="geometry.reference.models.model_point.synopsis"></a><h6>
<a name="geometry.reference.models.model_point.synopsis-heading"></a>
<a class="link" href="model_point.html#geometry.reference.models.model_point.synopsis">Synopsis</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">CoordinateType</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">DimensionCount</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">CoordinateSystem</span><span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">model</span><span class="special">::</span><span class="identifier">point</span>
<span class="special">{</span>
<span class="comment">// ...</span>
<span class="special">};</span>
</pre>
<p>
</p>
<a name="geometry.reference.models.model_point.template_parameter_s_"></a><h6>
<a name="geometry.reference.models.model_point.template_parameter_s_-heading"></a>
<a class="link" href="model_point.html#geometry.reference.models.model_point.template_parameter_s_">Template
parameter(s)</a>
</h6>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Parameter
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
typename CoordinateType
</p>
</td>
<td>
<p>
numerical type (int, double, ttmath, ...)
</p>
</td>
</tr>
<tr>
<td>
<p>
std::size_t DimensionCount
</p>
</td>
<td>
<p>
number of coordinates, usually 2 or 3
</p>
</td>
</tr>
<tr>
<td>
<p>
typename CoordinateSystem
</p>
</td>
<td>
<p>
coordinate system, for example cs::cartesian
</p>
</td>
</tr>
</tbody>
</table></div>
<a name="geometry.reference.models.model_point.constructor_s_"></a><h6>
<a name="geometry.reference.models.model_point.constructor_s_-heading"></a>
<a class="link" href="model_point.html#geometry.reference.models.model_point.constructor_s_">Constructor(s)</a>
</h6>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Function
</p>
</th>
<th>
<p>
Description
</p>
</th>
<th>
<p>
Parameters
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">point</span><span class="special">()</span></pre>
<p>
</p>
</td>
<td>
<p>
Default constructor, no initialization.
</p>
</td>
<td>
</td>
</tr>
<tr>
<td>
<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">point</span><span class="special">(</span><span class="identifier">CoordinateType</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">v0</span><span class="special">,</span> <span class="identifier">CoordinateType</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">v1</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">CoordinateType</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">v2</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span></pre>
<p>
</p>
</td>
<td>
<p>
Constructor to set one, two or three values.
</p>
</td>
<td>
<p>
<span class="bold"><strong>CoordinateType const &amp;</strong></span>:
<span class="emphasis"><em>v0</em></span>:
</p>
<p>
<span class="bold"><strong>CoordinateType const &amp;</strong></span>:
<span class="emphasis"><em>v1</em></span>:
</p>
<p>
<span class="bold"><strong>CoordinateType const &amp;</strong></span>:
<span class="emphasis"><em>v2</em></span>:
</p>
</td>
</tr>
</tbody>
</table></div>
<a name="geometry.reference.models.model_point.member_function_s_"></a><h6>
<a name="geometry.reference.models.model_point.member_function_s_-heading"></a>
<a class="link" href="model_point.html#geometry.reference.models.model_point.member_function_s_">Member
Function(s)</a>
</h6>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Function
</p>
</th>
<th>
<p>
Description
</p>
</th>
<th>
<p>
Parameters
</p>
</th>
<th>
<p>
Returns
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">K</span><span class="special">&gt;</span>
<span class="identifier">CoordinateType</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">get</span><span class="special">()</span></pre>
<p>
</p>
</td>
<td>
<p>
Get a coordinate.
</p>
</td>
<td>
</td>
<td>
<p>
the coordinate
</p>
</td>
</tr>
<tr>
<td>
<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">K</span><span class="special">&gt;</span>
<span class="keyword">void</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">CoordinateType</span> <span class="keyword">const</span> <span class="special">&amp;</span> <span class="identifier">value</span><span class="special">)</span></pre>
<p>
</p>
</td>
<td>
<p>
Set a coordinate.
</p>
</td>
<td>
<p>
<span class="bold"><strong>CoordinateType const &amp;</strong></span>:
<span class="emphasis"><em>value</em></span>: value to set
</p>
</td>
</tr>
</tbody>
</table></div>
<a name="geometry.reference.models.model_point.header"></a><h6>
<a name="geometry.reference.models.model_point.header-heading"></a>
<a class="link" href="model_point.html#geometry.reference.models.model_point.header">Header</a>
</h6>
<p>
Either
</p>
<p>
<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="identifier">geometries</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<p>
Or
</p>
<p>
<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="identifier">point</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
<a name="geometry.reference.models.model_point.examples"></a><h6>
<a name="geometry.reference.models.model_point.examples-heading"></a>
<a class="link" href="model_point.html#geometry.reference.models.model_point.examples">Examples</a>
</h6>
<p>
Declaration and use of the Boost.Geometry model::point, modelling the Point
Concept
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<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>
<span class="keyword">namespace</span> <span class="identifier">bg</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="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
<span class="special">{</span>
<span class="identifier">bg</span><span class="special">::</span><span class="identifier">model</span><span class="special">::</span><span class="identifier">point</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="identifier">bg</span><span class="special">::</span><span class="identifier">cs</span><span class="special">::</span><span class="identifier">cartesian</span><span class="special">&gt;</span> <span class="identifier">point1</span><span class="special">;</span>
<span class="identifier">bg</span><span class="special">::</span><span class="identifier">model</span><span class="special">::</span><span class="identifier">point</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="number">3</span><span class="special">,</span> <span class="identifier">bg</span><span class="special">::</span><span class="identifier">cs</span><span class="special">::</span><span class="identifier">cartesian</span><span class="special">&gt;</span> <span class="identifier">point2</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">,</span> <span class="number">3.0</span><span class="special">);</span> <a class="co" name="geometry15co" href="model_point.html#geometry15"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a>
<span class="identifier">point1</span><span class="special">.</span><span class="identifier">set</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="number">1.0</span><span class="special">);</span> <a class="co" name="geometry16co" href="model_point.html#geometry16"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a>
<span class="identifier">point1</span><span class="special">.</span><span class="identifier">set</span><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;(</span><span class="number">2.0</span><span class="special">);</span>
<span class="keyword">double</span> <span class="identifier">x</span> <span class="special">=</span> <span class="identifier">point1</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;();</span> <a class="co" name="geometry17co" href="model_point.html#geometry17"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a>
<span class="keyword">double</span> <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">point1</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;();</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">x</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">y</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>
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
</pre>
<p>
</p>
<div class="calloutlist"><table border="0" summary="Callout list">
<tr>
<td width="5%" valign="top" align="left"><p><a name="geometry15"></a><a href="#geometry15co"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a> </p></td>
<td valign="top" align="left"><p>
Construct, assigning three coordinates
</p></td>
</tr>
<tr>
<td width="5%" valign="top" align="left"><p><a name="geometry16"></a><a href="#geometry16co"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a> </p></td>
<td valign="top" align="left"><p>
Set a coordinate. <span class="bold"><strong>Note</strong></span>: prefer using
<code class="computeroutput"><span class="identifier">bg</span><span class="special">::</span><span class="identifier">set</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="identifier">point1</span><span class="special">,</span>
<span class="number">1.0</span><span class="special">);</span></code>
</p></td>
</tr>
<tr>
<td width="5%" valign="top" align="left"><p><a name="geometry17"></a><a href="#geometry17co"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a> </p></td>
<td valign="top" align="left"><p>
Get a coordinate. <span class="bold"><strong>Note</strong></span>: prefer using
<code class="computeroutput"><span class="identifier">x</span> <span class="special">=</span>
<span class="identifier">bg</span><span class="special">::</span><span class="identifier">get</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="identifier">point1</span><span class="special">);</span></code>
</p></td>
</tr>
</table></div>
<p>
Output:
</p>
<pre class="programlisting">1, 2
</pre>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2011 Barend Gehrels, Bruno Lalande, Mateusz Loskot<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
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>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../models.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../models.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="model_d2_point_xy.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>