summaryrefslogtreecommitdiff
path: root/transform_8c.html
diff options
context:
space:
mode:
Diffstat (limited to 'transform_8c.html')
-rw-r--r--transform_8c.html565
1 files changed, 565 insertions, 0 deletions
diff --git a/transform_8c.html b/transform_8c.html
new file mode 100644
index 000000000..45519312b
--- /dev/null
+++ b/transform_8c.html
@@ -0,0 +1,565 @@
+<!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.6"/>
+<title>navit: transform.c File 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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</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 style="padding-left: 0.5em;">
+ <div id="projectname">navit
+ &#160;<span id="projectnumber">0.5.1-trunk</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+ <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="modules.html"><span>Modules</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('transform_8c.html','');});
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">transform.c File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;assert.h&gt;</code><br/>
+<code>#include &lt;stdio.h&gt;</code><br/>
+<code>#include &lt;math.h&gt;</code><br/>
+<code>#include &lt;limits.h&gt;</code><br/>
+<code>#include &lt;glib.h&gt;</code><br/>
+<code>#include &lt;string.h&gt;</code><br/>
+<code>#include &lt;stdlib.h&gt;</code><br/>
+<code>#include &quot;config.h&quot;</code><br/>
+<code>#include &quot;coord.h&quot;</code><br/>
+<code>#include &quot;debug.h&quot;</code><br/>
+<code>#include &quot;item.h&quot;</code><br/>
+<code>#include &quot;<a class="el" href="map_8h_source.html">map.h</a>&quot;</code><br/>
+<code>#include &quot;transform.h&quot;</code><br/>
+<code>#include &quot;projection.h&quot;</code><br/>
+<code>#include &quot;point.h&quot;</code><br/>
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtransformation.html">transformation</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The parameters needed to transform a map for display. <a href="structtransformation.html#details">More...</a><br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcoord__3d.html">coord_3d</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structz__clip__result.html">z_clip_result</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a525335710b53cb064ca56b936120431e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transform_8c.html#a525335710b53cb064ca56b936120431e">_USE_MATH_DEFINES</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a525335710b53cb064ca56b936120431e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a142f183c856d187544d5beb8db7b564f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transform_8c.html#a142f183c856d187544d5beb8db7b564f">POST_SHIFT</a>&#160;&#160;&#160;5</td></tr>
+<tr class="memdesc:a142f183c856d187544d5beb8db7b564f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bitshift to apply during coordinate transformation. <a href="#a142f183c856d187544d5beb8db7b564f">More...</a><br/></td></tr>
+<tr class="separator:a142f183c856d187544d5beb8db7b564f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21c9763d0694cbf3dd25e7b780434144"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a21c9763d0694cbf3dd25e7b780434144"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>HOG</b>(t)&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a21c9763d0694cbf3dd25e7b780434144"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4912c64aec0c943b7985db6cb61ff83a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4912c64aec0c943b7985db6cb61ff83a"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>TWOPI</b>&#160;&#160;&#160;(M_PI*2)</td></tr>
+<tr class="separator:a4912c64aec0c943b7985db6cb61ff83a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5869507f3b4e971d6a69232734e892ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5869507f3b4e971d6a69232734e892ac"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>GC2RAD</b>(c)&#160;&#160;&#160;((c) * TWOPI/(1&lt;&lt;24))</td></tr>
+<tr class="separator:a5869507f3b4e971d6a69232734e892ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa841bb4d90b9745dab841c733126bdfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa841bb4d90b9745dab841c733126bdfe"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>minf</b>(a, b)&#160;&#160;&#160;((a) &lt; (b) ? (a) : (b))</td></tr>
+<tr class="separator:aa841bb4d90b9745dab841c733126bdfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab71851b87771f298c8ef7153fc08ef29"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab71851b87771f298c8ef7153fc08ef29"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>GMETER</b>&#160;&#160;&#160;2.3887499999999999</td></tr>
+<tr class="separator:ab71851b87771f298c8ef7153fc08ef29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7a7bfdede2bb9b2d05f4969b56449cd0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7a7bfdede2bb9b2d05f4969b56449cd0"></a>
+struct <a class="el" href="structtransformation.html">transformation</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>transform_new</b> (struct <a class="el" href="structpcoord.html">pcoord</a> *center, int scale, int yaw)</td></tr>
+<tr class="separator:a7a7bfdede2bb9b2d05f4969b56449cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a814d58b8403b734178d1c1191e096615"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a814d58b8403b734178d1c1191e096615"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_get_hog</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_)</td></tr>
+<tr class="separator:a814d58b8403b734178d1c1191e096615"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49a14792e4d46bf7887f5dc006407044"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49a14792e4d46bf7887f5dc006407044"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_hog</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_, int hog)</td></tr>
+<tr class="separator:a49a14792e4d46bf7887f5dc006407044"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a70d9f4c1906b6e8da445d86482202a22"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70d9f4c1906b6e8da445d86482202a22"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_get_attr</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_, enum attr_type type, struct <a class="el" href="structattr.html">attr</a> *<a class="el" href="structattr.html">attr</a>, struct <a class="el" href="structattr__iter.html">attr_iter</a> *iter)</td></tr>
+<tr class="separator:a70d9f4c1906b6e8da445d86482202a22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2a530d63a1f05a92d1629cfbe63d046"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2a530d63a1f05a92d1629cfbe63d046"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_attr</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_, struct <a class="el" href="structattr.html">attr</a> *<a class="el" href="structattr.html">attr</a>)</td></tr>
+<tr class="separator:af2a530d63a1f05a92d1629cfbe63d046"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c40e49945de57235c9b1443e0b5eace"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c40e49945de57235c9b1443e0b5eace"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transformation_get_order_base</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_)</td></tr>
+<tr class="separator:a4c40e49945de57235c9b1443e0b5eace"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a616c0669ae0a8bc8abef4eb1e4b0cab5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a616c0669ae0a8bc8abef4eb1e4b0cab5"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_order_base</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_, int order_base)</td></tr>
+<tr class="separator:a616c0669ae0a8bc8abef4eb1e4b0cab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b24b78a752baed872322716720dc2e1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b24b78a752baed872322716720dc2e1"></a>
+struct <a class="el" href="structtransformation.html">transformation</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>transform_dup</b> (struct <a class="el" href="structtransformation.html">transformation</a> *t)</td></tr>
+<tr class="separator:a5b24b78a752baed872322716720dc2e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5cbcb421bbf89d276019e973aa7c5703"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5cbcb421bbf89d276019e973aa7c5703"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_to_geo</b> (enum projection pro, struct <a class="el" href="structcoord.html">coord</a> *c, struct <a class="el" href="structcoord__geo.html">coord_geo</a> *g)</td></tr>
+<tr class="separator:a5cbcb421bbf89d276019e973aa7c5703"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a677e361bc2370ddd5203fabda516a1e3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a677e361bc2370ddd5203fabda516a1e3"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_from_geo</b> (enum projection pro, struct <a class="el" href="structcoord__geo.html">coord_geo</a> *g, struct <a class="el" href="structcoord.html">coord</a> *c)</td></tr>
+<tr class="separator:a677e361bc2370ddd5203fabda516a1e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac81bc15ee9c9a1e2793d53233a60a4a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac81bc15ee9c9a1e2793d53233a60a4a2"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_from_to_count</b> (struct <a class="el" href="structcoord.html">coord</a> *cfrom, enum projection from, struct <a class="el" href="structcoord.html">coord</a> *cto, enum projection to, int count)</td></tr>
+<tr class="separator:ac81bc15ee9c9a1e2793d53233a60a4a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1b04ebb9ec02e3a4ddffd54434412a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae1b04ebb9ec02e3a4ddffd54434412a1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_from_to</b> (struct <a class="el" href="structcoord.html">coord</a> *cfrom, enum projection from, struct <a class="el" href="structcoord.html">coord</a> *cto, enum projection to)</td></tr>
+<tr class="separator:ae1b04ebb9ec02e3a4ddffd54434412a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a638f6568ea669aee76cc358eea50720f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transform_8c.html#a638f6568ea669aee76cc358eea50720f">transform_geo_to_cart</a> (struct <a class="el" href="structcoord__geo.html">coord_geo</a> *geo, navit_float a, navit_float b, struct <a class="el" href="structcoord__geo__cart.html">coord_geo_cart</a> *cart)</td></tr>
+<tr class="memdesc:a638f6568ea669aee76cc358eea50720f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms geodetic to Cartesian coordinates. <a href="#a638f6568ea669aee76cc358eea50720f">More...</a><br/></td></tr>
+<tr class="separator:a638f6568ea669aee76cc358eea50720f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa9c7031e996d0ec6bb245225be9fe4a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transform_8c.html#aa9c7031e996d0ec6bb245225be9fe4a5">transform_cart_to_geo</a> (struct <a class="el" href="structcoord__geo__cart.html">coord_geo_cart</a> *cart, navit_float a, navit_float b, struct <a class="el" href="structcoord__geo.html">coord_geo</a> *geo)</td></tr>
+<tr class="memdesc:aa9c7031e996d0ec6bb245225be9fe4a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transforms Cartesian to geodetic coordinates. <a href="#aa9c7031e996d0ec6bb245225be9fe4a5">More...</a><br/></td></tr>
+<tr class="separator:aa9c7031e996d0ec6bb245225be9fe4a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc9ea9d8b6cb2d53d35907d55c2a52ee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transform_8c.html#acc9ea9d8b6cb2d53d35907d55c2a52ee">transform_utm_to_geo</a> (const double UTMEasting, const double UTMNorthing, int ZoneNumber, int NorthernHemisphere, struct <a class="el" href="structcoord__geo.html">coord_geo</a> *geo)</td></tr>
+<tr class="memdesc:acc9ea9d8b6cb2d53d35907d55c2a52ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts UTM coords to lat/long. <a href="#acc9ea9d8b6cb2d53d35907d55c2a52ee">More...</a><br/></td></tr>
+<tr class="separator:acc9ea9d8b6cb2d53d35907d55c2a52ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26cd39d9b4265244e9453c5904c7eb02"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a26cd39d9b4265244e9453c5904c7eb02"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform</b> (struct <a class="el" href="structtransformation.html">transformation</a> *t, enum projection required_projection, struct <a class="el" href="structcoord.html">coord</a> *input, struct <a class="el" href="structpoint.html">point</a> *<a class="el" href="structresult.html">result</a>, int count, int mindist, int width, int *width_result)</td></tr>
+<tr class="separator:a26cd39d9b4265244e9453c5904c7eb02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a40f38ebfbe5adacd7450e6bace9a29"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a40f38ebfbe5adacd7450e6bace9a29"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_reverse</b> (struct <a class="el" href="structtransformation.html">transformation</a> *t, struct <a class="el" href="structpoint.html">point</a> *p, struct <a class="el" href="structcoord.html">coord</a> *c)</td></tr>
+<tr class="separator:a5a40f38ebfbe5adacd7450e6bace9a29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a884903c79e69175a6008d3ccff261b2e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a884903c79e69175a6008d3ccff261b2e"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>transform_pixels_to_map_distance</b> (struct <a class="el" href="structtransformation.html">transformation</a> *<a class="el" href="structtransformation.html">transformation</a>, int pixels)</td></tr>
+<tr class="separator:a884903c79e69175a6008d3ccff261b2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15d0284f89bb7b2d2cc240847aa942d3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a15d0284f89bb7b2d2cc240847aa942d3"></a>
+enum projection&#160;</td><td class="memItemRight" valign="bottom"><b>transform_get_projection</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_)</td></tr>
+<tr class="separator:a15d0284f89bb7b2d2cc240847aa942d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac4929397a5aaa87b82ee4e4b726f1a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac4929397a5aaa87b82ee4e4b726f1a3"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_projection</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_, enum projection pro)</td></tr>
+<tr class="separator:aac4929397a5aaa87b82ee4e4b726f1a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab2c6743998d19227685bfc9ade4a73f0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2c6743998d19227685bfc9ade4a73f0"></a>
+struct <a class="el" href="structmap__selection.html">map_selection</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>transform_get_selection</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_, enum projection pro, int order)</td></tr>
+<tr class="separator:ab2c6743998d19227685bfc9ade4a73f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acfd8aede3d2b5564394739cd2c9b327e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acfd8aede3d2b5564394739cd2c9b327e"></a>
+struct <a class="el" href="structcoord.html">coord</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>transform_center</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_)</td></tr>
+<tr class="separator:acfd8aede3d2b5564394739cd2c9b327e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a740e84249080ba94050d5501fe285db8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a740e84249080ba94050d5501fe285db8"></a>
+struct <a class="el" href="structcoord.html">coord</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>transform_get_center</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_)</td></tr>
+<tr class="separator:a740e84249080ba94050d5501fe285db8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab77dbc51823e0478c082bd78bc9754f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab77dbc51823e0478c082bd78bc9754f5"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_center</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_, struct <a class="el" href="structcoord.html">coord</a> *c)</td></tr>
+<tr class="separator:ab77dbc51823e0478c082bd78bc9754f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b8915f7e30c6aead73ab2fda929b48c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b8915f7e30c6aead73ab2fda929b48c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_yaw</b> (struct <a class="el" href="structtransformation.html">transformation</a> *t, int yaw)</td></tr>
+<tr class="separator:a7b8915f7e30c6aead73ab2fda929b48c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a92e6ed1f885c1ad359488eb6013281"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a92e6ed1f885c1ad359488eb6013281"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_get_yaw</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_)</td></tr>
+<tr class="separator:a8a92e6ed1f885c1ad359488eb6013281"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f4e47e02c6fd4655be2b81f05e19bdf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f4e47e02c6fd4655be2b81f05e19bdf"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_pitch</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_, int pitch)</td></tr>
+<tr class="separator:a4f4e47e02c6fd4655be2b81f05e19bdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0503d516e333c5c990b7bce55bc1a7af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0503d516e333c5c990b7bce55bc1a7af"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_get_pitch</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_)</td></tr>
+<tr class="separator:a0503d516e333c5c990b7bce55bc1a7af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80346ab0b59af0a2b690bdfc90b349e3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a80346ab0b59af0a2b690bdfc90b349e3"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_roll</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_, int roll)</td></tr>
+<tr class="separator:a80346ab0b59af0a2b690bdfc90b349e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e8c4510e3993192b9f82bfc5340c63a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e8c4510e3993192b9f82bfc5340c63a"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_get_roll</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_)</td></tr>
+<tr class="separator:a5e8c4510e3993192b9f82bfc5340c63a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a859d5013f4f0c07d0d2a5d82e3c4b131"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a859d5013f4f0c07d0d2a5d82e3c4b131"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_distance</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_, int distance)</td></tr>
+<tr class="separator:a859d5013f4f0c07d0d2a5d82e3c4b131"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3557daa8a2ebf0768628aaaf9f06e3d3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3557daa8a2ebf0768628aaaf9f06e3d3"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_get_distance</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_)</td></tr>
+<tr class="separator:a3557daa8a2ebf0768628aaaf9f06e3d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa191a99a0e24a2e2a24a00f524926ba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaa191a99a0e24a2e2a24a00f524926ba"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_scales</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_, int xscale, int yscale, int wscale)</td></tr>
+<tr class="separator:aaa191a99a0e24a2e2a24a00f524926ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd2bd54ce3b5ab0fbf2f53f52aa9f175"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acd2bd54ce3b5ab0fbf2f53f52aa9f175"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_screen_selection</b> (struct <a class="el" href="structtransformation.html">transformation</a> *t, struct <a class="el" href="structmap__selection.html">map_selection</a> *sel)</td></tr>
+<tr class="separator:acd2bd54ce3b5ab0fbf2f53f52aa9f175"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a102a8bc4eefd800e69039ed3d4972c63"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a102a8bc4eefd800e69039ed3d4972c63"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_screen_center</b> (struct <a class="el" href="structtransformation.html">transformation</a> *t, struct <a class="el" href="structpoint.html">point</a> *p)</td></tr>
+<tr class="separator:a102a8bc4eefd800e69039ed3d4972c63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14c0f80f525cbd3d44bba0ea859bbb8b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a14c0f80f525cbd3d44bba0ea859bbb8b"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_get_size</b> (struct <a class="el" href="structtransformation.html">transformation</a> *t, int *width, int *height)</td></tr>
+<tr class="separator:a14c0f80f525cbd3d44bba0ea859bbb8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab18da629c0d3677cc417a08813a63fe4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab18da629c0d3677cc417a08813a63fe4"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_setup_source_rect</b> (struct <a class="el" href="structtransformation.html">transformation</a> *t)</td></tr>
+<tr class="separator:ab18da629c0d3677cc417a08813a63fe4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad28a3e5f7f730e35bd5f582a4cac89bb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad28a3e5f7f730e35bd5f582a4cac89bb"></a>
+long&#160;</td><td class="memItemRight" valign="bottom"><b>transform_get_scale</b> (struct <a class="el" href="structtransformation.html">transformation</a> *t)</td></tr>
+<tr class="separator:ad28a3e5f7f730e35bd5f582a4cac89bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a82dd549a3e2370f027c13b0b04b4ae0d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a82dd549a3e2370f027c13b0b04b4ae0d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_set_scale</b> (struct <a class="el" href="structtransformation.html">transformation</a> *t, long scale)</td></tr>
+<tr class="separator:a82dd549a3e2370f027c13b0b04b4ae0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35fc5bc1642ce4fc7557c9a2f34cd1cf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35fc5bc1642ce4fc7557c9a2f34cd1cf"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_get_order</b> (struct <a class="el" href="structtransformation.html">transformation</a> *t)</td></tr>
+<tr class="separator:a35fc5bc1642ce4fc7557c9a2f34cd1cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7f5c25ad56b17d0f964c444a109d30a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7f5c25ad56b17d0f964c444a109d30a"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>transform_scale</b> (int y)</td></tr>
+<tr class="separator:af7f5c25ad56b17d0f964c444a109d30a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf0560a954a531f44ab7e05715da80f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf0560a954a531f44ab7e05715da80f3"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>transform_distance</b> (enum projection pro, struct <a class="el" href="structcoord.html">coord</a> *c1, struct <a class="el" href="structcoord.html">coord</a> *c2)</td></tr>
+<tr class="separator:abf0560a954a531f44ab7e05715da80f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab26d54522bb49785c15a3a6a9f0ac4b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab26d54522bb49785c15a3a6a9f0ac4b"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_project</b> (enum projection pro, struct <a class="el" href="structcoord.html">coord</a> *c, int distance, int angle, struct <a class="el" href="structcoord.html">coord</a> *res)</td></tr>
+<tr class="separator:aab26d54522bb49785c15a3a6a9f0ac4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a164704cd689c4fe7b0b78259e19249"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2a164704cd689c4fe7b0b78259e19249"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>transform_polyline_length</b> (enum projection pro, struct <a class="el" href="structcoord.html">coord</a> *c, int count)</td></tr>
+<tr class="separator:a2a164704cd689c4fe7b0b78259e19249"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a965e3084a10d5bda58185a389851460f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a965e3084a10d5bda58185a389851460f"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_distance_sq</b> (struct <a class="el" href="structcoord.html">coord</a> *c1, struct <a class="el" href="structcoord.html">coord</a> *c2)</td></tr>
+<tr class="separator:a965e3084a10d5bda58185a389851460f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a207e554c5eb4b0d12c0f9cdd752845c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a207e554c5eb4b0d12c0f9cdd752845c5"></a>
+navit_float&#160;</td><td class="memItemRight" valign="bottom"><b>transform_distance_sq_float</b> (struct <a class="el" href="structcoord.html">coord</a> *c1, struct <a class="el" href="structcoord.html">coord</a> *c2)</td></tr>
+<tr class="separator:a207e554c5eb4b0d12c0f9cdd752845c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adeaa0bc60b6541725a856a0a23d6a388"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adeaa0bc60b6541725a856a0a23d6a388"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_distance_sq_pc</b> (struct <a class="el" href="structpcoord.html">pcoord</a> *c1, struct <a class="el" href="structpcoord.html">pcoord</a> *c2)</td></tr>
+<tr class="separator:adeaa0bc60b6541725a856a0a23d6a388"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a27503406c67175ef2cdf98be34d12422"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a27503406c67175ef2cdf98be34d12422"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_distance_line_sq</b> (struct <a class="el" href="structcoord.html">coord</a> *l0, struct <a class="el" href="structcoord.html">coord</a> *l1, struct <a class="el" href="structcoord.html">coord</a> *ref, struct <a class="el" href="structcoord.html">coord</a> *lpnt)</td></tr>
+<tr class="separator:a27503406c67175ef2cdf98be34d12422"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae000c02a85c13b056aa425df8c6522ad"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae000c02a85c13b056aa425df8c6522ad"></a>
+navit_float&#160;</td><td class="memItemRight" valign="bottom"><b>transform_distance_line_sq_float</b> (struct <a class="el" href="structcoord.html">coord</a> *l0, struct <a class="el" href="structcoord.html">coord</a> *l1, struct <a class="el" href="structcoord.html">coord</a> *ref, struct <a class="el" href="structcoord.html">coord</a> *lpnt)</td></tr>
+<tr class="separator:ae000c02a85c13b056aa425df8c6522ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9db50d07acafe0d8e916459f6a568d59"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9db50d07acafe0d8e916459f6a568d59"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_distance_polyline_sq</b> (struct <a class="el" href="structcoord.html">coord</a> *c, int count, struct <a class="el" href="structcoord.html">coord</a> *ref, struct <a class="el" href="structcoord.html">coord</a> *lpnt, int *pos)</td></tr>
+<tr class="separator:a9db50d07acafe0d8e916459f6a568d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a900115e1620f2bcb323751024134eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a900115e1620f2bcb323751024134eb"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_douglas_peucker</b> (struct <a class="el" href="structcoord.html">coord</a> *in, int count, int dist_sq, struct <a class="el" href="structcoord.html">coord</a> *out)</td></tr>
+<tr class="separator:a8a900115e1620f2bcb323751024134eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f1f70d26b7e4993ac27db4a8e32d604"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f1f70d26b7e4993ac27db4a8e32d604"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_douglas_peucker_float</b> (struct <a class="el" href="structcoord.html">coord</a> *in, int count, navit_float dist_sq, struct <a class="el" href="structcoord.html">coord</a> *out)</td></tr>
+<tr class="separator:a2f1f70d26b7e4993ac27db4a8e32d604"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3350d82778e30d53e5d2af89efef2add"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3350d82778e30d53e5d2af89efef2add"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_print_deg</b> (double deg)</td></tr>
+<tr class="separator:a3350d82778e30d53e5d2af89efef2add"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a957cf45974ab30e11fdba372af1468e6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="transform_8c.html#a957cf45974ab30e11fdba372af1468e6">transform_get_angle_delta</a> (struct <a class="el" href="structcoord.html">coord</a> *c1, struct <a class="el" href="structcoord.html">coord</a> *c2, int dir)</td></tr>
+<tr class="memdesc:a957cf45974ab30e11fdba372af1468e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the bearing from one point to another. <a href="#a957cf45974ab30e11fdba372af1468e6">More...</a><br/></td></tr>
+<tr class="separator:a957cf45974ab30e11fdba372af1468e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f20669829e65e806598f14318a551f9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8f20669829e65e806598f14318a551f9"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_within_border</b> (struct <a class="el" href="structtransformation.html">transformation</a> *this_, struct <a class="el" href="structpoint.html">point</a> *p, int border)</td></tr>
+<tr class="separator:a8f20669829e65e806598f14318a551f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24e81f6e6c8c1ccd55f7bc4c3d1e672f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24e81f6e6c8c1ccd55f7bc4c3d1e672f"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_within_dist_point</b> (struct <a class="el" href="structcoord.html">coord</a> *ref, struct <a class="el" href="structcoord.html">coord</a> *c, int dist)</td></tr>
+<tr class="separator:a24e81f6e6c8c1ccd55f7bc4c3d1e672f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23466624422258d5647391974de863c9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23466624422258d5647391974de863c9"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_within_dist_line</b> (struct <a class="el" href="structcoord.html">coord</a> *ref, struct <a class="el" href="structcoord.html">coord</a> *c0, struct <a class="el" href="structcoord.html">coord</a> *c1, int dist)</td></tr>
+<tr class="separator:a23466624422258d5647391974de863c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41b6eb52bb4b99c1db65e49d3295dfcf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a41b6eb52bb4b99c1db65e49d3295dfcf"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_within_dist_polyline</b> (struct <a class="el" href="structcoord.html">coord</a> *ref, struct <a class="el" href="structcoord.html">coord</a> *c, int count, int close, int dist)</td></tr>
+<tr class="separator:a41b6eb52bb4b99c1db65e49d3295dfcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8cd0e4c679aeb0b1d151a793baa53bc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae8cd0e4c679aeb0b1d151a793baa53bc"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_within_dist_polygon</b> (struct <a class="el" href="structcoord.html">coord</a> *ref, struct <a class="el" href="structcoord.html">coord</a> *c, int count, int dist)</td></tr>
+<tr class="separator:ae8cd0e4c679aeb0b1d151a793baa53bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeb74e833a1968a5509cc19fe48d2d3d1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb74e833a1968a5509cc19fe48d2d3d1"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>transform_within_dist_item</b> (struct <a class="el" href="structcoord.html">coord</a> *ref, enum item_type type, struct <a class="el" href="structcoord.html">coord</a> *c, int count, int dist)</td></tr>
+<tr class="separator:aeb74e833a1968a5509cc19fe48d2d3d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3cd65d27f5fa565a7b5265ab000fd44e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3cd65d27f5fa565a7b5265ab000fd44e"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_copy</b> (struct <a class="el" href="structtransformation.html">transformation</a> *src, struct <a class="el" href="structtransformation.html">transformation</a> *dst)</td></tr>
+<tr class="separator:a3cd65d27f5fa565a7b5265ab000fd44e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6ae4250d27f20248e9a06989cbeac86"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa6ae4250d27f20248e9a06989cbeac86"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>transform_destroy</b> (struct <a class="el" href="structtransformation.html">transformation</a> *t)</td></tr>
+<tr class="separator:aa6ae4250d27f20248e9a06989cbeac86"><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>Coordinate transformations and projections. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a525335710b53cb064ca56b936120431e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define _USE_MATH_DEFINES&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Navit, a modular navigation system. Copyright (C) 2005-2008 Navit Team</p>
+<p>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.</p>
+<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p>
+<p>You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. </p>
+
+</div>
+</div>
+<a class="anchor" id="a142f183c856d187544d5beb8db7b564f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define POST_SHIFT&#160;&#160;&#160;5</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Bitshift to apply during coordinate transformation. </p>
+<p>This bitshift is applied (left shift) during coordinate transformation (and later reversed). The transformation is performed with integer arithmetic, and this shift reduces rounding errors when converting floating point numbers to integers, particularly because some input values are fairly small (for example, the entries in the transformation matrix, <code>struct transformation</code>).</p>
+<p>This works because the transformations involve only multiplications, so the shift can be applied to one factor and removed from the result.</p>
+<p>The value is a compromise; if it is too small, rounding errors increase, if it is too large, signed integer calculations will overflow at high zoom levels (which is undefined behavior).</p>
+<dl class="section see"><dt>See Also</dt><dd><a class="el" href="structtransformation.html" title="The parameters needed to transform a map for display. ">transformation</a> </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aa9c7031e996d0ec6bb245225be9fe4a5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void transform_cart_to_geo </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="structcoord__geo__cart.html">coord_geo_cart</a> *&#160;</td>
+ <td class="paramname"><em>cart</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">navit_float&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">navit_float&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct <a class="el" href="structcoord__geo.html">coord_geo</a> *&#160;</td>
+ <td class="paramname"><em>geo</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms Cartesian to geodetic coordinates. </p>
+<p>This transforms ECEF Cartesian coordinates into geodetic coordinates, consisting of latitude and longitude.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">cart</td><td>The Cartesian coordinates </td></tr>
+ <tr><td class="paramname">a</td><td>Semi-minor axis of the ellipsoid </td></tr>
+ <tr><td class="paramname">b</td><td>Semi-minor axis of the ellipsoid </td></tr>
+ <tr><td class="paramname">geo</td><td>Points to a structure that will receive the geodetic coordinates </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>References <a class="el" href="structcoord__geo.html#a549223ef1f76a24ba2568a4b25a0f766">coord_geo::lat</a>, <a class="el" href="structcoord__geo.html#aa780b02448f92912d7c6a541f289e8fb">coord_geo::lng</a>, <a class="el" href="structcoord__geo__cart.html#a8ad416e3cc04ee4e4c632426f1ca6e71">coord_geo_cart::x</a>, <a class="el" href="structcoord__geo__cart.html#a46084267efb2fd57b37048d0e2bbbef7">coord_geo_cart::y</a>, and <a class="el" href="structcoord__geo__cart.html#a1a8fdd1415b27d16395494f3c35f0ca8">coord_geo_cart::z</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a638f6568ea669aee76cc358eea50720f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void transform_geo_to_cart </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="structcoord__geo.html">coord_geo</a> *&#160;</td>
+ <td class="paramname"><em>geo</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">navit_float&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">navit_float&#160;</td>
+ <td class="paramname"><em>b</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct <a class="el" href="structcoord__geo__cart.html">coord_geo_cart</a> *&#160;</td>
+ <td class="paramname"><em>cart</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Transforms geodetic to Cartesian coordinates. </p>
+<p>This transforms geodetic coordinates (consisting of latitude and longitude) into ECEF Cartesian coordinates.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">geo</td><td>The WGS84 coordinates to convert </td></tr>
+ <tr><td class="paramname">a</td><td>Semi-minor axis of the ellipsoid </td></tr>
+ <tr><td class="paramname">b</td><td>Semi-minor axis of the ellipsoid </td></tr>
+ <tr><td class="paramname">cart</td><td>Points to a structure that will receive the Cartesian coordinates </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>References <a class="el" href="structcoord__geo.html#a549223ef1f76a24ba2568a4b25a0f766">coord_geo::lat</a>, <a class="el" href="structcoord__geo.html#aa780b02448f92912d7c6a541f289e8fb">coord_geo::lng</a>, <a class="el" href="structcoord__geo__cart.html#a8ad416e3cc04ee4e4c632426f1ca6e71">coord_geo_cart::x</a>, <a class="el" href="structcoord__geo__cart.html#a46084267efb2fd57b37048d0e2bbbef7">coord_geo_cart::y</a>, and <a class="el" href="structcoord__geo__cart.html#a1a8fdd1415b27d16395494f3c35f0ca8">coord_geo_cart::z</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a957cf45974ab30e11fdba372af1468e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int transform_get_angle_delta </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="structcoord.html">coord</a> *&#160;</td>
+ <td class="paramname"><em>c1</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct <a class="el" href="structcoord.html">coord</a> *&#160;</td>
+ <td class="paramname"><em>c2</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>dir</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Gets the bearing from one point to another. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">c1</td><td>The first coordinate </td></tr>
+ <tr><td class="paramname">c2</td><td>The second coordinate </td></tr>
+ <tr><td class="paramname">dir</td><td>The direction: if it is -1, the bearing from c2 to c1 is returned, else the bearing from c1 to c2</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The bearing in degrees,<div class="fragment"><div class="line">0 &lt;= <a class="code" href="structresult.html">result</a> &lt; 360 </div>
+</div><!-- fragment --> . </dd></dl>
+
+<p>References <a class="el" href="structcoord.html#ac3e93ff628aa19d2888c5f6fa26f430d">coord::x</a>, and <a class="el" href="structcoord.html#a2b099692d87f98e4844b615136ca37fb">coord::y</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="acc9ea9d8b6cb2d53d35907d55c2a52ee"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void transform_utm_to_geo </td>
+ <td>(</td>
+ <td class="paramtype">const double&#160;</td>
+ <td class="paramname"><em>UTMEasting</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const double&#160;</td>
+ <td class="paramname"><em>UTMNorthing</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>ZoneNumber</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>NorthernHemisphere</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct <a class="el" href="structcoord__geo.html">coord_geo</a> *&#160;</td>
+ <td class="paramname"><em>geo</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Converts UTM coords to lat/long. </p>
+<p>Equations from USGS Bulletin 1532.</p>
+<dl class="section author"><dt>Author</dt><dd>Chuck Gantz- <a href="#" onclick="location.href='mai'+'lto:'+'chu'+'ck'+'.ga'+'nt'+'z@g'+'lo'+'bal'+'st'+'ar.'+'co'+'m'; return false;">chuck<span style="display: none;">.nosp@m.</span>.gan<span style="display: none;">.nosp@m.</span>tz@gl<span style="display: none;">.nosp@m.</span>obal<span style="display: none;">.nosp@m.</span>star.<span style="display: none;">.nosp@m.</span>com</a> </dd></dl>
+
+<p>References <a class="el" href="structcoord__geo.html#a549223ef1f76a24ba2568a4b25a0f766">coord_geo::lat</a>, and <a class="el" href="structcoord__geo.html#aa780b02448f92912d7c6a541f289e8fb">coord_geo::lng</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="transform_8c.html">transform.c</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
+ </ul>
+</div>
+</body>
+</html>