-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path_globals_8h_source.html
More file actions
138 lines (138 loc) · 15.4 KB
/
_globals_8h_source.html
File metadata and controls
138 lines (138 loc) · 15.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<!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"/>
<title>naowalkoptimiser: /Users/jason/Code/naowalkoptimiser/src/Globals.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
<h1>/Users/jason/Code/naowalkoptimiser/src/Globals.h</h1><a href="_globals_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef GLOBALS_H_DEFINED</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define GLOBALS_H_DEFINED </span>
<a name="l00003"></a>00003 <span class="preprocessor"></span>
<a name="l00004"></a><a class="code" href="_globals_8h.html#ad1dd823fc2a66ef03f61b116d7ade996">00004</a> <span class="preprocessor">#define robot_console_printf printf</span>
<a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor">#include <stdio.h></span>
<a name="l00006"></a>00006
<a name="l00007"></a>00007 <span class="preprocessor">#include <math.h></span>
<a name="l00008"></a>00008 <span class="preprocessor">#include "<a class="code" href="_game_packet_defs_8h.html">Network/GamePacketDefs.h</a>"</span>
<a name="l00009"></a>00009
<a name="l00010"></a><a class="code" href="_globals_8h.html#a952eac791b596a61bba0a133a3bb439f">00010</a> <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="_globals_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a> = 4.0*atan(1.0);
<a name="l00011"></a>00011
<a name="l00012"></a>00012 <span class="keyword">template</span> <<span class="keyword">class</span> T>
<a name="l00013"></a><a class="code" href="_globals_8h.html#a17117f99e2f3e060a02fcafd6a3d1b9d">00013</a> <span class="keyword">inline</span> T <a class="code" href="_globals_8h.html#a17117f99e2f3e060a02fcafd6a3d1b9d">ABS</a>(T x){
<a name="l00014"></a>00014 <span class="keywordflow">if</span>(x > 0) <span class="keywordflow">return</span> x;
<a name="l00015"></a>00015 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -x;
<a name="l00016"></a>00016 }
<a name="l00017"></a>00017
<a name="l00018"></a>00018 <span class="keyword">template</span> <<span class="keyword">class</span> T>
<a name="l00019"></a><a class="code" href="_globals_8h.html#a27796fd8cbdbf6359ec860a0056d5476">00019</a> <span class="keyword">inline</span> T <a class="code" href="_globals_8h.html#a27796fd8cbdbf6359ec860a0056d5476">MAX</a>(T x, T y){
<a name="l00020"></a>00020 <span class="keywordflow">if</span>(x > y) <span class="keywordflow">return</span> x;
<a name="l00021"></a>00021 <span class="keywordflow">else</span> <span class="keywordflow">return</span> y;
<a name="l00022"></a>00022 }
<a name="l00023"></a>00023
<a name="l00024"></a>00024 <span class="keyword">template</span> <<span class="keyword">class</span> T>
<a name="l00025"></a><a class="code" href="_globals_8h.html#ad0ab430043bb586ba2ab46d6a2bff09b">00025</a> <span class="keyword">inline</span> T <a class="code" href="_globals_8h.html#ad0ab430043bb586ba2ab46d6a2bff09b">MIN</a>(T x, T y){
<a name="l00026"></a>00026 <span class="keywordflow">if</span>(x < y) <span class="keywordflow">return</span> x;
<a name="l00027"></a>00027 <span class="keywordflow">else</span> <span class="keywordflow">return</span> y;
<a name="l00028"></a>00028 }
<a name="l00029"></a>00029
<a name="l00030"></a>00030 <span class="keyword">template</span> <<span class="keyword">class</span> T>
<a name="l00031"></a><a class="code" href="_globals_8h.html#acb55cbe29918bd329bb89992e3eb7e9d">00031</a> <span class="keyword">inline</span> T <a class="code" href="_globals_8h.html#acb55cbe29918bd329bb89992e3eb7e9d">NORMALISE</a>(T theta){
<a name="l00032"></a>00032 <span class="keywordflow">return</span> atan2(sin(theta), cos(theta));
<a name="l00033"></a>00033 }
<a name="l00034"></a>00034
<a name="l00035"></a>00035 <span class="keyword">template</span> <<span class="keyword">class</span> T>
<a name="l00036"></a><a class="code" href="_globals_8h.html#a0922faff5659ef64f74c434d83891502">00036</a> <span class="keyword">inline</span> T <a class="code" href="_globals_8h.html#a0922faff5659ef64f74c434d83891502">CROP</a>(T num, T low, T high){
<a name="l00037"></a>00037 <span class="keywordflow">if</span> (num < low) num = low;
<a name="l00038"></a>00038 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (num > high) num = high;
<a name="l00039"></a>00039 <span class="keywordflow">return</span> num;
<a name="l00040"></a>00040 }
<a name="l00041"></a>00041
<a name="l00042"></a>00042 <span class="keyword">template</span> <<span class="keyword">class</span> T>
<a name="l00043"></a><a class="code" href="_globals_8h.html#a5fe08043f7c85bcceccacf427b22911d">00043</a> <span class="keyword">inline</span> T <a class="code" href="_globals_8h.html#a5fe08043f7c85bcceccacf427b22911d">SIGN</a>(T x){
<a name="l00044"></a>00044 <span class="keywordflow">return</span> (x / <a class="code" href="_globals_8h.html#a17117f99e2f3e060a02fcafd6a3d1b9d">ABS</a>(x));
<a name="l00045"></a>00045 }
<a name="l00046"></a>00046
<a name="l00047"></a>00047
<a name="l00048"></a><a class="code" href="_globals_8h.html#aec09ce386d5af75d6a052060ff348262">00048</a> <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="_globals_8h.html#aec09ce386d5af75d6a052060ff348262">RAD_TO_DEG</a>(<span class="keywordtype">double</span> x){
<a name="l00049"></a>00049 <span class="keywordflow">return</span> ((x)*180.0)/<a class="code" href="_globals_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>;
<a name="l00050"></a>00050 }
<a name="l00051"></a>00051
<a name="l00052"></a><a class="code" href="_globals_8h.html#afaeaf130441a590de337b4e207f572e3">00052</a> <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="_globals_8h.html#afaeaf130441a590de337b4e207f572e3">DEG_TO_RAD</a>(<span class="keywordtype">double</span> x){
<a name="l00053"></a>00053 <span class="keywordflow">return</span> ((x)*<a class="code" href="_globals_8h.html#a952eac791b596a61bba0a133a3bb439f">PI</a>)/180;
<a name="l00054"></a>00054 }
<a name="l00055"></a>00055
<a name="l00056"></a>00056 <span class="comment">//ROBOT</span>
<a name="l00057"></a>00057 <span class="comment">//const double FOVx = DEG_TO_RAD(46.4); // Calculated as 58 degrees * 4/5</span>
<a name="l00058"></a>00058 <span class="comment">//const double FOVx = DEG_TO_RAD(47.8); // Calculated as 2* atan(tan(58deg /2) * 4/5)</span>
<a name="l00059"></a><a class="code" href="_globals_8h.html#a1582c1d5c18abd9b52e5c7a54f183592">00059</a> <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="_globals_8h.html#a1582c1d5c18abd9b52e5c7a54f183592">FOVx</a> = <a class="code" href="_globals_8h.html#afaeaf130441a590de337b4e207f572e3">DEG_TO_RAD</a>(45.0f); <span class="comment">// Calculated value from measurements on the forum.</span>
<a name="l00060"></a>00060 <span class="comment">//ROBOT </span>
<a name="l00061"></a>00061 <span class="comment">//const double FOVy = DEG_TO_RAD(34.8); // Calculated as 58 degrees * 3/5</span>
<a name="l00062"></a>00062 <span class="comment">//const double FOVy = DEG_TO_RAD(36.8); // Calculated as 2* atan(tan(58deg /2) * 3/5)</span>
<a name="l00063"></a><a class="code" href="_globals_8h.html#a66704ce2c725b01368279c1be35ce254">00063</a> <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="_globals_8h.html#a66704ce2c725b01368279c1be35ce254">FOVy</a> = <a class="code" href="_globals_8h.html#afaeaf130441a590de337b4e207f572e3">DEG_TO_RAD</a>(34.45f); <span class="comment">// Calculated value from measurements on the forum.</span>
<a name="l00064"></a>00064
<a name="l00065"></a>00065 <span class="comment">//SIMULATOR const double FOVx = 0.7854;</span>
<a name="l00066"></a>00066
<a name="l00067"></a>00067 <span class="comment">//SIMULATOR const double FOVy = FOVx * 240.0 / 320.0;</span>
<a name="l00068"></a>00068
<a name="l00069"></a>00069 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="_globals_8cpp.html#aa6a5beff91f210b37282896bb2f497a4">IMAGE_WIDTH</a>; <span class="comment">// 160 for simulator, 640 for robot </span>
<a name="l00070"></a>00070 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="_globals_8cpp.html#af631548ee8631adce6cf29c67184d842">IMAGE_HEIGHT</a>; <span class="comment">// 120 for simulator, 480 for robot</span>
<a name="l00071"></a>00071
<a name="l00072"></a>00072 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="_globals_8cpp.html#ad9fbaad977906df110057e5df840880e">g_fps</a>;
<a name="l00073"></a>00073
<a name="l00074"></a>00074 <span class="keyword">extern</span> <span class="keywordtype">double</span> <a class="code" href="_globals_8cpp.html#a0b801c811e166bec396126777128e5a5">EFFECTIVE_CAMERA_DISTANCE_IN_PIXELS</a>;
<a name="l00075"></a>00075
<a name="l00076"></a>00076 <span class="keyword">enum</span> {
<a name="l00077"></a><a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55bab7da8f01fdea08b7c7f12c9fb3f4115e">00077</a> <a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55bab7da8f01fdea08b7c7f12c9fb3f4115e">c_UNDEFINED</a> = 0,
<a name="l00078"></a><a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba625ee82d9c743e26e87b73501042477c">00078</a> <a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba625ee82d9c743e26e87b73501042477c">c_WHITE</a> = 1,
<a name="l00079"></a><a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba8fac84b44b061bc22b7569cd3a388599">00079</a> <a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba8fac84b44b061bc22b7569cd3a388599">c_GREEN</a> = 2,
<a name="l00080"></a><a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55bac5afae7416a9973a74f079cde5cc41ab">00080</a> <a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55bac5afae7416a9973a74f079cde5cc41ab">c_SHADOW_OBJECT</a>= 3,
<a name="l00081"></a><a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba054e3e67cdf7369af290cc4e8b7eb737">00081</a> <a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba054e3e67cdf7369af290cc4e8b7eb737">c_RED</a> = 4,
<a name="l00082"></a><a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba0d67f0d6e1bd8efed61b472b047ed070">00082</a> <a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba0d67f0d6e1bd8efed61b472b047ed070">c_RORANGE</a>= 5,
<a name="l00083"></a><a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba5092b443d570c809a76da83e92c0a7b8">00083</a> <a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba5092b443d570c809a76da83e92c0a7b8">c_ORANGE</a> = 6,
<a name="l00084"></a><a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba301f26accd4891f864bb7e33d2c89c65">00084</a> <a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba301f26accd4891f864bb7e33d2c89c65">c_YORANGE</a> = 7,
<a name="l00085"></a><a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba3b1646fd86be2c173bbc414dc676b6e1">00085</a> <a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba3b1646fd86be2c173bbc414dc676b6e1">c_YELLOW</a> = 8,
<a name="l00086"></a><a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1e72403a51a042e0db84991e1ea9bc3">00086</a> <a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1e72403a51a042e0db84991e1ea9bc3">c_BLUE</a> = 9,
<a name="l00087"></a><a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf87cdda522658d76627326b56789aad">00087</a> <a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55bacf87cdda522658d76627326b56789aad">c_SHBLUE</a>= 10,
<a name="l00088"></a><a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55badb589d2825542b2037e13b4eaaa4db9e">00088</a> <a class="code" href="_globals_8h.html#a06fc87d81c62e9abb8790b6e5713c55badb589d2825542b2037e13b4eaaa4db9e">NUM_COLOURS</a> = 11
<a name="l00089"></a>00089 };
<a name="l00090"></a>00090
<a name="l00091"></a>00091 <span class="keywordtype">double</span> <a class="code" href="_globals_8cpp.html#a7fec748c2c64f7d7f23b14e544af3422">CalculateBearing</a>(<span class="keywordtype">double</span> cx);
<a name="l00092"></a>00092 <span class="keywordtype">double</span> <a class="code" href="_globals_8cpp.html#a514963b6c876611b7f22eacfba66ed4d">CalculateElevation</a>(<span class="keywordtype">double</span> cy);
<a name="l00093"></a>00093
<a name="l00094"></a>00094 <span class="comment">// Stuff we have heard from game controller ... </span>
<a name="l00095"></a><a class="code" href="_globals_8h.html#a3f522072322d8112dc00ae9aea94ed0a">00095</a> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="_globals_8h.html#a3f522072322d8112dc00ae9aea94ed0a">NUM_ROBOTS</a> = 3;
<a name="l00096"></a>00096
<a name="l00097"></a>00097 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="_globals_8cpp.html#aef4f7974622c678cc3e0bd0023c70948">framesSinceGameController</a>;
<a name="l00098"></a>00098
<a name="l00099"></a>00099 <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="_globals_8cpp.html#ac2416a7e3e8868e8bfd70f9bb15a31ff">packetsSent</a>;
<a name="l00100"></a>00100
<a name="l00101"></a><a class="code" href="_globals_8h.html#aa88e4d9a09fb0f8e890f31c55dbe49b2">00101</a> <span class="preprocessor">#define WM_BUFFERSIZE 6</span>
<a name="l00102"></a>00102 <span class="preprocessor"></span>
<a name="l00103"></a><a class="code" href="_globals_8h.html#a314c4d2a1e738eb47365bf11646164ad">00103</a> <span class="preprocessor">#define BVR_BUFFERSIZE 6</span>
<a name="l00104"></a>00104 <span class="preprocessor"></span>
<a name="l00105"></a>00105 <span class="keyword">extern</span> <a class="code" href="struct_stored_game_packets.html">StoredGamePackets</a> <a class="code" href="_globals_8cpp.html#a60c1a5d32bd84891d0e01441d1814b93">latestReceivedGamePackets</a>[<a class="code" href="_globals_8h.html#a3f522072322d8112dc00ae9aea94ed0a">NUM_ROBOTS</a>];
<a name="l00106"></a>00106
<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
</pre></div></div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Fri Oct 9 13:42:11 2009 for naowalkoptimiser by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>