geos_390_docs/classgeos_1_1algorithm_1_1C...

668 lines
32 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GEOS: geos::algorithm::CGAlgorithmsDD Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GEOS
&#160;<span id="projectnumber">3.9.1dev</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacegeos.html">geos</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1algorithm.html">algorithm</a></li><li class="navelem"><a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html">CGAlgorithmsDD</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="classgeos_1_1algorithm_1_1CGAlgorithmsDD-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::algorithm::CGAlgorithmsDD Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Implements basic computational geometry algorithms using extended precision float-point arithmetic.
<a href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="CGAlgorithmsDD_8h_source.html">CGAlgorithmsDD.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a57badcb8314450a31d5d5a503e7ebc25"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#a57badcb8314450a31d5d5a503e7ebc25a5fe288f764efa9471689cc0b6ac8fcd9">CLOCKWISE</a> = -1,
<a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#a57badcb8314450a31d5d5a503e7ebc25aa4795cd1166fb6eb60b443d072722791">COLLINEAR</a> = 0,
<a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#a57badcb8314450a31d5d5a503e7ebc25a1006c02080c20274a85d41fcd56c9628">COUNTERCLOCKWISE</a> = 1
}</td></tr>
<tr class="separator:a57badcb8314450a31d5d5a503e7ebc25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfc808f83820518f99e747cfdf7090da"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#adfc808f83820518f99e747cfdf7090daaecd271306f35e6b932f8df4d6b9c9f73">RIGHT</a> = -1,
<a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#adfc808f83820518f99e747cfdf7090daaf13fa76480e31d54bd35032ce8963c6e">LEFT</a> = 1,
<a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#adfc808f83820518f99e747cfdf7090daa89ff4e62002a9a8cd03333f5ca73782a">STRAIGHT</a> = 0,
<a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#adfc808f83820518f99e747cfdf7090daa9f4949d7672ba7a513de15bda7ac09e6">FAILURE</a> = 2
}</td></tr>
<tr class="separator:adfc808f83820518f99e747cfdf7090da"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aa93f0b11d3d4fa3047ebeb71870854ac"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#aa93f0b11d3d4fa3047ebeb71870854ac">orientationIndex</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p1, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p2, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;q)</td></tr>
<tr class="memdesc:aa93f0b11d3d4fa3047ebeb71870854ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the index of the direction of the point <code>q</code> relative to a vector specified by <code>p1-p2</code>. <a href="#aa93f0b11d3d4fa3047ebeb71870854ac">More...</a><br /></td></tr>
<tr class="separator:aa93f0b11d3d4fa3047ebeb71870854ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5025b40a674be7d1d598fcc68b96797f"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#a5025b40a674be7d1d598fcc68b96797f">orientationIndex</a> (double p1x, double p1y, double p2x, double p2y, double qx, double qy)</td></tr>
<tr class="separator:a5025b40a674be7d1d598fcc68b96797f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a080b0c94a160bab0484d55979fb95c49"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#a080b0c94a160bab0484d55979fb95c49">orientationIndexFilter</a> (double pax, double pay, double pbx, double pby, double pcx, double pcy)</td></tr>
<tr class="separator:a080b0c94a160bab0484d55979fb95c49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac89d975848b7388b3a588edde30472a8"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#ac89d975848b7388b3a588edde30472a8">orientation</a> (double x)</td></tr>
<tr class="separator:ac89d975848b7388b3a588edde30472a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f7a3dceea078c61f17d24356656af9e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#a3f7a3dceea078c61f17d24356656af9e">intersection</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p1, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p2, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;q1, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;q2)</td></tr>
<tr class="separator:a3f7a3dceea078c61f17d24356656af9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8cb3bb1ccbcb77442b5d46cb3b8bee9"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#aa8cb3bb1ccbcb77442b5d46cb3b8bee9">signOfDet2x2</a> (double dx1, double dy1, double dx2, double dy2)</td></tr>
<tr class="separator:aa8cb3bb1ccbcb77442b5d46cb3b8bee9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacdf9113fed38e20910c34d9bf810329"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#aacdf9113fed38e20910c34d9bf810329">detDD</a> (double x1, double y1, double x2, double y2)</td></tr>
<tr class="separator:aacdf9113fed38e20910c34d9bf810329"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad22c869b897be2f170f29c7490818535"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#ad22c869b897be2f170f29c7490818535">detDD</a> (const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;x1, const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;y1, const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;x2, const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;y2)</td></tr>
<tr class="separator:ad22c869b897be2f170f29c7490818535"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1878326148dc1396769138f81cfec903"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#a1878326148dc1396769138f81cfec903">circumcentreDD</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;a, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;b, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;c)</td></tr>
<tr class="memdesc:a1878326148dc1396769138f81cfec903"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the circumcentre of a triangle. <a href="#a1878326148dc1396769138f81cfec903">More...</a><br /></td></tr>
<tr class="separator:a1878326148dc1396769138f81cfec903"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr class="memitem:abd2769b5f224c80708cceab54db0e162"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1CGAlgorithmsDD.html#abd2769b5f224c80708cceab54db0e162">signOfDet2x2</a> (const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;x1, const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;y1, const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;x2, const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;y2)</td></tr>
<tr class="separator:abd2769b5f224c80708cceab54db0e162"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Implements basic computational geometry algorithms using extended precision float-point arithmetic. </p>
<p>Definition at line <a class="el" href="CGAlgorithmsDD_8h_source.html#l00038">38</a> of file <a class="el" href="CGAlgorithmsDD_8h_source.html">CGAlgorithmsDD.h</a>.</p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="a57badcb8314450a31d5d5a503e7ebc25"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="a57badcb8314450a31d5d5a503e7ebc25a5fe288f764efa9471689cc0b6ac8fcd9"></a>CLOCKWISE&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a57badcb8314450a31d5d5a503e7ebc25aa4795cd1166fb6eb60b443d072722791"></a>COLLINEAR&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="a57badcb8314450a31d5d5a503e7ebc25a1006c02080c20274a85d41fcd56c9628"></a>COUNTERCLOCKWISE&#160;</td><td class="fielddoc">
</td></tr>
</table>
<p>Definition at line <a class="el" href="CGAlgorithmsDD_8h_source.html#l00042">42</a> of file <a class="el" href="CGAlgorithmsDD_8h_source.html">CGAlgorithmsDD.h</a>.</p>
</div>
</div>
<a class="anchor" id="adfc808f83820518f99e747cfdf7090da"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="adfc808f83820518f99e747cfdf7090daaecd271306f35e6b932f8df4d6b9c9f73"></a>RIGHT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adfc808f83820518f99e747cfdf7090daaf13fa76480e31d54bd35032ce8963c6e"></a>LEFT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adfc808f83820518f99e747cfdf7090daa89ff4e62002a9a8cd03333f5ca73782a"></a>STRAIGHT&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="adfc808f83820518f99e747cfdf7090daa9f4949d7672ba7a513de15bda7ac09e6"></a>FAILURE&#160;</td><td class="fielddoc">
</td></tr>
</table>
<p>Definition at line <a class="el" href="CGAlgorithmsDD_8h_source.html#l00048">48</a> of file <a class="el" href="CGAlgorithmsDD_8h_source.html">CGAlgorithmsDD.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a1878326148dc1396769138f81cfec903"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> geos::algorithm::CGAlgorithmsDD::circumcentreDD </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>c</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the circumcentre of a triangle. </p>
<p>The circumcentre is the centre of the circumcircle, the smallest circle which encloses the triangle. It is also the common intersection point of the perpendicular bisectors of the sides of the triangle, and is the only point which has equal distance to all three vertices of the triangle.</p>
<p>The circumcentre does not necessarily lie within the triangle. For example, the circumcentre of an obtuse isosceles triangle lies outside the triangle.</p>
<p>This method uses <a class="el" href="classgeos_1_1math_1_1DD.html">geos::math::DD</a> extended-precision arithmetic to provide more accurate results than <a class="el" href="classgeos_1_1geom_1_1Triangle.html#aa5cf3994bd12f3001b34354995602ff1">circumcentre(Coordinate, Coordinate, Coordinate)</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">a</td><td>a vertex of the triangle </td></tr>
<tr><td class="paramname">b</td><td>a vertex of the triangle </td></tr>
<tr><td class="paramname">c</td><td>a vertex of the triangle </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the circumcentre of the triangle </dd></dl>
</div>
</div>
<a class="anchor" id="aacdf9113fed38e20910c34d9bf810329"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> geos::algorithm::CGAlgorithmsDD::detDD </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>x1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>y1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>x2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>y2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad22c869b897be2f170f29c7490818535"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> geos::algorithm::CGAlgorithmsDD::detDD </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;&#160;</td>
<td class="paramname"><em>x1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;&#160;</td>
<td class="paramname"><em>y1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;&#160;</td>
<td class="paramname"><em>x2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;&#160;</td>
<td class="paramname"><em>y2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3f7a3dceea078c61f17d24356656af9e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> geos::algorithm::CGAlgorithmsDD::intersection </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>q1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>q2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>If the lines are parallel (either identical or separate) a null value is returned. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p1</td><td>an endpoint of line segment 1 </td></tr>
<tr><td class="paramname">p2</td><td>an endpoint of line segment 1 </td></tr>
<tr><td class="paramname">q1</td><td>an endpoint of line segment 2 </td></tr>
<tr><td class="paramname">q2</td><td>an endpoint of line segment 2 </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an intersection point if one exists, or null if the lines are parallel </dd></dl>
</div>
</div>
<a class="anchor" id="ac89d975848b7388b3a588edde30472a8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int geos::algorithm::CGAlgorithmsDD::orientation </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="CGAlgorithmsDD_8h_source.html#l00096">96</a> of file <a class="el" href="CGAlgorithmsDD_8h_source.html">CGAlgorithmsDD.h</a>.</p>
</div>
</div>
<a class="anchor" id="aa93f0b11d3d4fa3047ebeb71870854ac"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int geos::algorithm::CGAlgorithmsDD::orientationIndex </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>q</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the index of the direction of the point <code>q</code> relative to a vector specified by <code>p1-p2</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p1</td><td>the origin point of the vector </td></tr>
<tr><td class="paramname">p2</td><td>the final point of the vector </td></tr>
<tr><td class="paramname">q</td><td>the point to compute the direction to</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 if q is counter-clockwise (left) from p1-p2 </dd>
<dd>
-1 if q is clockwise (right) from p1-p2 </dd>
<dd>
0 if q is collinear with p1-p2 </dd></dl>
</div>
</div>
<a class="anchor" id="a5025b40a674be7d1d598fcc68b96797f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int geos::algorithm::CGAlgorithmsDD::orientationIndex </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>p1x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>p1y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>p2x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>p2y</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>qx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>qy</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a080b0c94a160bab0484d55979fb95c49"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int geos::algorithm::CGAlgorithmsDD::orientationIndexFilter </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>pax</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>pay</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>pbx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>pby</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>pcx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>pcy</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A filter for computing the orientation index of three coordinates.</p>
<p>If the orientation can be computed safely using standard DP arithmetic, this routine returns the orientation index. Otherwise, a value <code>i &gt; 1</code> is returned. In this case the orientation index must be computed using some other more robust method.</p>
<p>The filter is fast to compute, so can be used to avoid the use of slower robust methods except when they are really needed, thus providing better average performance.</p>
<p>Uses an approach due to Jonathan Shewchuk, which is in the public domain. </p>
</div>
</div>
<a class="anchor" id="aa8cb3bb1ccbcb77442b5d46cb3b8bee9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int geos::algorithm::CGAlgorithmsDD::signOfDet2x2 </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>dx1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>dy1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>dx2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>dy2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="abd2769b5f224c80708cceab54db0e162"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int geos::algorithm::CGAlgorithmsDD::signOfDet2x2 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;&#160;</td>
<td class="paramname"><em>x1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;&#160;</td>
<td class="paramname"><em>y1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;&#160;</td>
<td class="paramname"><em>x2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1math_1_1DD.html">DD</a> &amp;&#160;</td>
<td class="paramname"><em>y2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="CGAlgorithmsDD_8h_source.html">CGAlgorithmsDD.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>