objects_8c-source.html

来自「仿真人工智能是指用人工的方法和技术」· HTML 代码 · 共 651 行 · 第 1/4 页

HTML
651
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>Objects.C Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body bgcolor="#ffffff"><!-- Generated by Doxygen 1.2.12 --><center><a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center><hr><h1>Objects.C</h1><a href="Objects_8C.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <font class="comment">/*</font>00002 <font class="comment">Copyright (c) 2000,2001, Jelle Kok, University of Amsterdam</font>00003 <font class="comment">All rights reserved.</font>00004 <font class="comment"></font>00005 <font class="comment">Redistribution and use in source and binary forms, with or without </font>00006 <font class="comment">modification, are permitted provided that the following conditions are met:</font>00007 <font class="comment"></font>00008 <font class="comment">1. Redistributions of source code must retain the above copyright notice, this </font>00009 <font class="comment">list of conditions and the following disclaimer. </font>00010 <font class="comment"></font>00011 <font class="comment">2. Redistributions in binary form must reproduce the above copyright notice, </font>00012 <font class="comment">this list of conditions and the following disclaimer in the documentation </font>00013 <font class="comment">and/or other materials provided with the distribution. </font>00014 <font class="comment"></font>00015 <font class="comment">3. Neither the name of the University of Amsterdam nor the names of its </font>00016 <font class="comment">contributors may be used to endorse or promote products derived from this </font>00017 <font class="comment">software without specific prior written permission. </font>00018 <font class="comment"></font>00019 <font class="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" </font>00020 <font class="comment">AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE </font>00021 <font class="comment">IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE </font>00022 <font class="comment">DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE </font>00023 <font class="comment">FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL </font>00024 <font class="comment">DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR </font>00025 <font class="comment">SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER </font>00026 <font class="comment">CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, </font>00027 <font class="comment">OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE </font>00028 <font class="comment">OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</font>00029 <font class="comment">*/</font>00041 <font class="preprocessor">#include"<a class="code" href="Objects_8h.html">Objects.h</a>"</font>00042 00043 <font class="preprocessor">#include&lt;stdlib.h&gt;</font>       <font class="comment">// needed for free</font>00044 <font class="preprocessor">#include&lt;iostream.h&gt;</font>     <font class="comment">// needed for cout</font>00045 <font class="preprocessor">#ifdef Solaris</font>00046 <font class="preprocessor"></font><font class="preprocessor">  #include &lt;strings.h&gt;</font>   <font class="comment">// needed for strdup</font>00047 <font class="preprocessor">#else</font>00048 <font class="preprocessor"></font><font class="preprocessor">  #include &lt;string.h&gt;</font>    <font class="comment">// needed for strdup</font>00049 <font class="preprocessor">#endif</font>00050 <font class="preprocessor"></font>00051 <font class="comment">/******************************************************************************/</font>00052 <font class="comment">/********************** CLASS OBJECT ******************************************/</font>00053 <font class="comment">/******************************************************************************/</font>00054 <a name="l00057"></a><a class="code" href="classObject.html#a0">00057</a> <a class="code" href="classObject.html#a0">Object::Object</a>( )00058 {00059   <a class="code" href="classObject.html#n0">objectType</a>                   = <a class="code" href="SoccerTypes_8h.html#a240a113">OBJECT_ILLEGAL</a>;00060 }00061 <a name="l00065"></a><a class="code" href="classObject.html#a2">00065</a> <a class="code" href="Geometry_8h.html#a2">AngDeg</a> <a class="code" href="classObject.html#a2">Object::getRelativeAngle</a>( )00066 {00067   <font class="keywordflow">return</font> <a class="code" href="classVecPosition.html#d1">VecPosition::normalizeAngle</a>(<a class="code" href="classObject.html#n4">posRelative</a>.<a class="code" href="classVecPosition.html#a33">getDirection</a>());00068 }00069 <a name="l00073"></a><a class="code" href="classObject.html#a3">00073</a> <font class="keywordtype">double</font> <a class="code" href="classObject.html#a3">Object::getRelativeDistance</a>( )00074 {00075   <font class="keywordflow">return</font> <a class="code" href="classObject.html#n4">posRelative</a>.<a class="code" href="classVecPosition.html#a32">getMagnitude</a>();00076 }00077 <a name="l00083"></a><a class="code" href="classObject.html#a4">00083</a> <font class="keywordtype">double</font> <a class="code" href="classObject.html#a4">Object::getConfidence</a>( <a class="code" href="classTime.html">Time</a> time )00084 {00085   <font class="keywordflow">if</font>( <a class="code" href="classObject.html#n1">timeLastSeen</a>.<a class="code" href="classTime.html#a3">getTime</a>() == -1 )00086     <font class="keywordflow">return</font> 0.0;00087 00088   <font class="keywordflow">return</font> <a class="code" href="Geometry_8h.html#a1">max</a>( 0.0, 1.0-(<font class="keywordtype">double</font>)(time.<a class="code" href="classTime.html#a5">getTimeDifference</a>(<a class="code" href="classObject.html#n1">timeLastSeen</a>))/100.0);00089 }00090 <a name="l00094"></a><a class="code" href="classObject.html#a5">00094</a> <font class="keywordtype">bool</font> <a class="code" href="classObject.html#a5">Object::setType</a>( <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> o )00095 {00096   <a class="code" href="classObject.html#n0">objectType</a> = o;00097   <font class="keywordflow">return</font> <font class="keyword">true</font>;00098 }00099 <a name="l00102"></a><a class="code" href="classObject.html#a6">00102</a> <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a>  <a class="code" href="classObject.html#a6">Object::getType</a>()<font class="keyword"> const</font>00103 <font class="keyword"></font>{00104   <font class="keywordflow">return</font> <a class="code" href="classObject.html#n0">objectType</a>;00105 }00106 <a name="l00114"></a><a class="code" href="classObject.html#a7">00114</a> <font class="keywordtype">bool</font> <a class="code" href="classObject.html#a7">Object::setRelativePosition</a>( <font class="keywordtype">double</font> dDist, <a class="code" href="Geometry_8h.html#a2">AngDeg</a> ang, <a class="code" href="classTime.html">Time</a> time )00115 {00116   <a class="code" href="classObject.html#n4">posRelative</a>.<a class="code" href="classVecPosition.html#a29">setVecPosition</a>( dDist, ang, POLAR );00117   <a class="code" href="classObject.html#a10">setTimeRelativePosition</a>( time );00118   <font class="keywordflow">return</font> <font class="keyword">true</font>;00119 }00120 <a name="l00126"></a><a class="code" href="classObject.html#a8">00126</a> <font class="keywordtype">bool</font> <a class="code" href="classObject.html#a7">Object::setRelativePosition</a>( <a class="code" href="classVecPosition.html">VecPosition</a> v, <a class="code" href="classTime.html">Time</a> time )00127 {00128   <a class="code" href="classObject.html#n4">posRelative</a> = v;00129   <a class="code" href="classObject.html#a10">setTimeRelativePosition</a>( time );00130   <font class="keywordflow">return</font> <font class="keyword">true</font>;00131 }00132 <a name="l00138"></a><a class="code" href="classObject.html#a9">00138</a> <a class="code" href="classVecPosition.html">VecPosition</a> <a class="code" href="classObject.html#a9">Object::getRelativePosition</a>()<font class="keyword"> const</font>00139 <font class="keyword"></font>{00140   <font class="keywordflow">return</font> <a class="code" href="classObject.html#n4">posRelative</a>;00141 }00142 <a name="l00146"></a><a class="code" href="classObject.html#a10">00146</a> <font class="keywordtype">bool</font> <a class="code" href="classObject.html#a10">Object::setTimeRelativePosition</a>( <a class="code" href="classTime.html">Time</a> time )00147 {00148   <a class="code" href="classObject.html#n5">timeRelativePosition</a> = time;00149   <font class="keywordflow">return</font> <font class="keyword">true</font>;00150 }00151 <a name="l00155"></a><a class="code" href="classObject.html#a11">00155</a> <a class="code" href="classTime.html">Time</a> <a class="code" href="classObject.html#a11">Object::getTimeRelativePosition</a>()<font class="keyword"> const</font>00156 <font class="keyword"></font>{00157   <font class="keywordflow">return</font> <a class="code" href="classObject.html#n5">timeRelativePosition</a>;00158 }00159 <a name="l00165"></a><a class="code" href="classObject.html#a12">00165</a> <font class="keywordtype">bool</font> <a class="code" href="classObject.html#a12">Object::setGlobalPosition</a>( <a class="code" href="classVecPosition.html">VecPosition</a> p, <a class="code" href="classTime.html">Time</a> time )00166 {00167   <a class="code" href="classObject.html#n2">posGlobal</a> = p;00168   <a class="code" href="classObject.html#a14">setTimeGlobalPosition</a>( time );00169   <font class="keywordflow">return</font> <font class="keyword">true</font>;00170 }00171 <a name="l00177"></a><a class="code" href="classObject.html#a13">00177</a> <a class="code" href="classVecPosition.html">VecPosition</a> <a class="code" href="classObject.html#a13">Object::getGlobalPosition</a>()<font class="keyword"> const</font>00178 <font class="keyword"></font>{00179   <font class="keywordflow">return</font> <a class="code" href="classObject.html#n2">posGlobal</a>;00180 }00181 <a name="l00185"></a><a class="code" href="classObject.html#a14">00185</a> <font class="keywordtype">bool</font> <a class="code" href="classObject.html#a14">Object::setTimeGlobalPosition</a>( <a class="code" href="classTime.html">Time</a> time )00186 {00187   <a class="code" href="classObject.html#n3">timeGlobalPosition</a> = time;00188   <font class="keywordflow">return</font> <font class="keyword">true</font>;00189 }00190 <a name="l00194"></a><a class="code" href="classObject.html#a15">00194</a> <a class="code" href="classTime.html">Time</a> <a class="code" href="classObject.html#a15">Object::getTimeGlobalPosition</a>()<font class="keyword"> const</font>00195 <font class="keyword"></font>{00196   <font class="keywordflow">return</font> <a class="code" href="classObject.html#n3">timeGlobalPosition</a>;00197 }00198 <a name="l00206"></a><a class="code" href="classObject.html#a16">00206</a> <font class="keywordtype">bool</font> <a class="code" href="classObject.html#a16">Object::setGlobalPositionLastSee</a>( <a class="code" href="classVecPosition.html">VecPosition</a> p, <a class="code" href="classTime.html">Time</a> time )00207 {00208   <a class="code" href="classObject.html#n6">posGlobalLastSee</a> = p;00209   <a class="code" href="classObject.html#a18">setTimeGlobalPosDerivedFromSee</a>( time );00210   <font class="keywordflow">return</font> <font class="keyword">true</font>;00211 }00212 <a name="l00217"></a><a class="code" href="classObject.html#a17">00217</a> <a class="code" href="classVecPosition.html">VecPosition</a> <a class="code" href="classObject.html#a17">Object::getGlobalPositionLastSee</a>()<font class="keyword"> const</font>00218 <font class="keyword"></font>{00219   <font class="keywordflow">return</font> <a class="code" href="classObject.html#n6">posGlobalLastSee</a>;00220 }00221 <a name="l00226"></a><a class="code" href="classObject.html#a18">00226</a> <font class="keywordtype">bool</font> <a class="code" href="classObject.html#a18">Object::setTimeGlobalPosDerivedFromSee</a>( <a class="code" href="classTime.html">Time</a> time )00227 {00228   <a class="code" href="classObject.html#n7">timeGlobalPosDerivedFromSee</a> = time;00229   <font class="keywordflow">return</font> <font class="keyword">true</font>;00230 }00231 <a name="l00235"></a><a class="code" href="classObject.html#a19">00235</a> <a class="code" href="classTime.html">Time</a> <a class="code" href="classObject.html#a19">Object::getTimeGlobalPosDerivedFromSee</a>()<font class="keyword"> const</font>00236 <font class="keyword"></font>{00237   <font class="keywordflow">return</font> <a class="code" href="classObject.html#n7">timeGlobalPosDerivedFromSee</a>;00238 }00239 <a name="l00244"></a><a class="code" href="classObject.html#a20">00244</a> <font class="keywordtype">bool</font> <a class="code" href="classObject.html#a20">Object::setTimeLastSeen</a>( <a class="code" href="classTime.html">Time</a> time)00245 {

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?