worldmodel_8c-source.html
来自「仿真人工智能是指用人工的方法和技术」· HTML 代码 · 共 685 行 · 第 1/5 页
HTML
685 行
<a name="l00790"></a><a class="code" href="classWorldModel.html#a60">00790</a> <a class="code" href="Geometry_8h.html#a2">AngDeg</a> <a class="code" href="classWorldModel.html#a60">WorldModel::getGlobalAngle</a>( <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> o )00791 {00792 <font class="keywordflow">if</font>( <a class="code" href="classSoccerTypes.html#d4">SoccerTypes::isLine</a>( o ) )00793 <font class="keywordflow">return</font> <a class="code" href="classSoccerTypes.html#d18">SoccerTypes::getGlobalAngleLine</a>( o, <a class="code" href="classWorldModel.html#a16">getSide</a>() );00794 <font class="keywordflow">return</font> <a class="code" href="SoccerTypes_8h.html#a20">UnknownAngleValue</a>;00795 }00796 00797 <a name="l00803"></a><a class="code" href="classWorldModel.html#a61">00803</a> <font class="keywordtype">double</font> <a class="code" href="classWorldModel.html#a61">WorldModel::getConfidence</a>( <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> o)00804 {00805 <a class="code" href="classObject.html">Object</a> *object = <a class="code" href="classWorldModel.html#c0">getObjectPtrFromType</a>( o );00806 <font class="keywordflow">if</font>( object != NULL )00807 <font class="keywordflow">return</font> object-><a class="code" href="classObject.html#a4">getConfidence</a>( <a class="code" href="classWorldModel.html#a4">getCurrentTime</a>() );00808 <font class="keywordflow">return</font> 0.0;00809 }00810 <a name="l00818"></a><a class="code" href="classWorldModel.html#a62">00818</a> <font class="keywordtype">bool</font> <a class="code" href="classWorldModel.html#a62">WorldModel::isKnownPlayer</a>( <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> o )00819 {00820 <a class="code" href="classPlayerObject.html">PlayerObject</a> *object = (<a class="code" href="classPlayerObject.html">PlayerObject</a> *)<a class="code" href="classWorldModel.html#c0">getObjectPtrFromType</a>( o );00821 <font class="keywordflow">if</font>( object != NULL )00822 <font class="keywordflow">return</font> object-><a class="code" href="classPlayerObject.html#a4">getIsKnownPlayer</a>();00823 <font class="keywordflow">return</font> <font class="keyword">false</font>;00824 00825 }00826 <a name="l00835"></a><a class="code" href="classWorldModel.html#a63">00835</a> <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> <a class="code" href="classWorldModel.html#a63">WorldModel::getOppGoalieType</a>()00836 {00837 <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> objOppMaxX = <a class="code" href="SoccerTypes_8h.html#a240a113">OBJECT_ILLEGAL</a>;00838 <font class="keywordtype">double</font> x = -100.0, y = <a class="code" href="SoccerTypes_8h.html#a19">UnknownDoubleValue</a>;00839 00840 <font class="keywordflow">for</font>( <font class="keywordtype">int</font> i = 0; i < <a class="code" href="SoccerTypes_8h.html#a1">MAX_OPPONENTS</a>; i++ )00841 {00842 <font class="keywordflow">if</font>( <a class="code" href="classWorldModel.html#a135">isConfidenceGood</a>( <a class="code" href="classWorldModel.html#o16">Opponents</a>[i].getType( ) ) )00843 {00844 <font class="keywordflow">if</font>( <a class="code" href="classWorldModel.html#o16">Opponents</a>[i].<a class="code" href="classPlayerObject.html#a6">getIsGoalie</a>() == <font class="keyword">true</font> )00845 <font class="keywordflow">return</font> <a class="code" href="classWorldModel.html#o16">Opponents</a>[i].<a class="code" href="classObject.html#a6">getType</a>();00846 <font class="keywordflow">if</font>( <a class="code" href="classWorldModel.html#o16">Opponents</a>[i].<a class="code" href="classObject.html#a13">getGlobalPosition</a>().<a class="code" href="classVecPosition.html#a26">getX</a>() > x )00847 {00848 x = <a class="code" href="classWorldModel.html#o16">Opponents</a>[i].<a class="code" href="classObject.html#a13">getGlobalPosition</a>().<a class="code" href="classVecPosition.html#a26">getX</a>();00849 y = <a class="code" href="classWorldModel.html#o16">Opponents</a>[i].<a class="code" href="classObject.html#a13">getGlobalPosition</a>().<a class="code" href="classVecPosition.html#a28">getY</a>();00850 objOppMaxX = <a class="code" href="classWorldModel.html#o16">Opponents</a>[i].<a class="code" href="classObject.html#a6">getType</a>();00851 }00852 }00853 }00854 00855 <font class="comment">// if opponent with highest x is nr 1, assume it is goalkeeper when standing</font>00856 <font class="comment">// in own penalty area, otherwise assume goalkeeper closest player to goal.</font>00857 <font class="keywordflow">if</font>( objOppMaxX == <a class="code" href="SoccerTypes_8h.html#a240a97">OBJECT_OPPONENT_1</a> && x > <a class="code" href="SoccerTypes_8h.html#a18">PENALTY_X</a> + 4.0 ||00858 (objOppMaxX != <a class="code" href="SoccerTypes_8h.html#a240a113">OBJECT_ILLEGAL</a> && x > <a class="code" href="SoccerTypes_8h.html#a13">PITCH_LENGTH</a>/2.0 - 6.0 &&00859 fabs( y ) < <a class="code" href="classWorldModel.html#o0">SS</a>-><a class="code" href="classServerSettings.html#a4">getGoalWidth</a>()/2.0 ))00860 <font class="keywordflow">return</font> objOppMaxX;00861 <font class="keywordflow">return</font> <a class="code" href="SoccerTypes_8h.html#a240a113">OBJECT_ILLEGAL</a>;00862 }00863 00864 <a name="l00873"></a><a class="code" href="classWorldModel.html#a64">00873</a> <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> <a class="code" href="classWorldModel.html#a64">WorldModel::getOwnGoalieType</a>()00874 {00875 <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> objOwnMinX = <a class="code" href="SoccerTypes_8h.html#a240a113">OBJECT_ILLEGAL</a>;00876 <font class="keywordtype">double</font> x = -100.0, y = <a class="code" href="SoccerTypes_8h.html#a19">UnknownDoubleValue</a>;00877 <font class="keywordflow">for</font>( <font class="keywordtype">int</font> i = 0; i < <a class="code" href="SoccerTypes_8h.html#a0">MAX_TEAMMATES</a>; i++ )00878 {00879 <font class="keywordflow">if</font>( <a class="code" href="classWorldModel.html#a135">isConfidenceGood</a>( <a class="code" href="classWorldModel.html#o15">Teammates</a>[i].getType( ) ) )00880 {00881 <font class="keywordflow">if</font>( <a class="code" href="classWorldModel.html#o15">Teammates</a>[i].<a class="code" href="classPlayerObject.html#a6">getIsGoalie</a>() == <font class="keyword">true</font> )00882 <font class="keywordflow">return</font> <a class="code" href="classWorldModel.html#o15">Teammates</a>[i].<a class="code" href="classObject.html#a6">getType</a>();00883 <font class="keywordflow">if</font>( <a class="code" href="classWorldModel.html#o15">Teammates</a>[i].<a class="code" href="classObject.html#a13">getGlobalPosition</a>().<a class="code" href="classVecPosition.html#a26">getX</a>() < x )00884 {00885 x = <a class="code" href="classWorldModel.html#o15">Teammates</a>[i].<a class="code" href="classObject.html#a13">getGlobalPosition</a>().<a class="code" href="classVecPosition.html#a26">getX</a>();00886 y = <a class="code" href="classWorldModel.html#o15">Teammates</a>[i].<a class="code" href="classObject.html#a13">getGlobalPosition</a>().<a class="code" href="classVecPosition.html#a28">getY</a>();00887 objOwnMinX = <a class="code" href="classWorldModel.html#o15">Teammates</a>[i].<a class="code" href="classObject.html#a6">getType</a>();00888 }00889 }00890 }00891 <font class="keywordflow">if</font>( objOwnMinX == <a class="code" href="SoccerTypes_8h.html#a240a85">OBJECT_TEAMMATE_1</a> && x < - ( <a class="code" href="SoccerTypes_8h.html#a18">PENALTY_X</a> + 4.0 ) ||00892 (objOwnMinX != <a class="code" href="SoccerTypes_8h.html#a240a113">OBJECT_ILLEGAL</a> && x < - ( <a class="code" href="SoccerTypes_8h.html#a13">PITCH_LENGTH</a>/2.0 - 6.0 ) &&00893 fabs( y ) < <a class="code" href="classWorldModel.html#o0">SS</a>-><a class="code" href="classServerSettings.html#a4">getGoalWidth</a>()/2.0 ))00894 <font class="keywordflow">return</font> objOwnMinX;00895 <font class="keywordflow">return</font> <a class="code" href="SoccerTypes_8h.html#a240a113">OBJECT_ILLEGAL</a>;00896 }00897 00898 <a name="l00903"></a><a class="code" href="classWorldModel.html#a65">00903</a> <a class="code" href="classTime.html">Time</a> <a class="code" href="classWorldModel.html#a65">WorldModel::getTimeLastSeen</a>( <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> o )00904 {00905 <a class="code" href="classObject.html">Object</a> *object = <a class="code" href="classWorldModel.html#c0">getObjectPtrFromType</a>( o );00906 <font class="keywordflow">if</font>( object != NULL )00907 <font class="keywordflow">return</font> object-><a class="code" href="classObject.html#a21">getTimeLastSeen</a>( );00908 <font class="keywordflow">return</font> <a class="code" href="classTime.html">Time</a>( -1, 0);00909 00910 }00911 <a name="l00920"></a><a class="code" href="classWorldModel.html#a66">00920</a> <font class="keywordtype">bool</font> <a class="code" href="classWorldModel.html#a66">WorldModel::setIsKnownPlayer</a>( <a class="code" href="SoccerTypes_8h.html#a240">ObjectT</a> o, <font class="keywordtype">bool</font> isKnownPlayer )00921 {00922 <a class="code" href="classPlayerObject.html">PlayerObject</a> *object = (<a class="code" href="classPlayerObject.html">PlayerObject</a>*) <a class="code" href="classWorldModel.html#c0">getObjectPtrFromType</a>( o );00923 <font class="keywordflow">return</font> object-><a class="code" href="classPlayerObject.html#a3">setIsKnownPlayer</a>( <a class="code" href="classWorldModel.html#a62">isKnownPlayer</a> );00924 }00925 <a name="l00928"></a><a class="code" href="classWorldModel.html#a67">00928</a> <a class="code" href="classVecPosition.html">VecPosition</a> <a class="code" href="classWorldModel.html#a67">WorldModel::getPosOpponentGoal</a>( )00929 {00930 <font class="keywordflow">return</font> <a class="code" href="classSoccerTypes.html#d17">SoccerTypes::getGlobalPositionFlag</a>(00931 <a class="code" href="classSoccerTypes.html#d7">SoccerTypes::getGoalOpponent</a>( <a class="code" href="classWorldModel.html#a16">getSide</a>() ),00932 <a class="code" href="classWorldModel.html#a16">getSide</a>( ),00933 <a class="code" href="classWorldModel.html#o0">SS</a>-><a class="code" href="classServerSettings.html#a4">getGoalWidth</a>() );00934 }00935 <a name="l00938"></a><a class="code" href="classWorldModel.html#a68">00938</a> <a class="code" href="classVecPosition.html">VecPosition</a> <a class="code" href="classWorldModel.html#a68">WorldModel::getPosOwnGoal</a>( )00939 {00940 <font class="keywordflow">return</font> <a class="code" href="classSoccerTypes.html#d17">SoccerTypes::getGlobalPositionFlag</a>(00941 <a class="code" href="classSoccerTypes.html#d6">SoccerTypes::getOwnGoal</a>( <a class="code" href="classWorldModel.html#a16">getSide</a>() ),00942 <a class="code" href="classWorldModel.html#a16">getSide</a>( ),00943 <a class="code" href="classWorldModel.html#o0">SS</a>-><a class="code" href="classServerSettings.html#a4">getGoalWidth</a>() );00944 }00945 <a name="l00948"></a><a class="code" href="classWorldModel.html#a69">00948</a> <font class="keywordtype">double</font> <a class="code" href="classWorldModel.html#a69">WorldModel::getRelDistanceOpponentGoal</a>()00949 {00950 <a class="code" href="classVecPosition.html">VecPosition</a> posGoal;00951 <font class="keywordflow">if</font>( <a class="code" href="classWorldModel.html#o10">sideSide</a> == <a class="code" href="SoccerTypes_8h.html#a246a177">SIDE_LEFT</a> )00952 posGoal = <a class="code" href="classSoccerTypes.html#d17">SoccerTypes::getGlobalPositionFlag</a>( <a class="code" href="SoccerTypes_8h.html#a240a26">OBJECT_GOAL_R</a>, <a class="code" href="classWorldModel.html#o10">sideSide</a> );00953 <font class="keywordflow">else</font>00954 posGoal = <a class="code" href="classSoccerTypes.html#d17">SoccerTypes::getGlobalPositionFlag</a>( <a class="code" href="SoccerTypes_8h.html#a240a25">OBJECT_GOAL_L</a>, <a class="code" href="classWorldModel.html#o10">sideSide</a> );00955 00956 <font class="keywordflow">return</font> <a class="code" href="classWorldModel.html#a43">getAgentGlobalPosition</a>().<a class="code" href="classVecPosition.html#a30">getDistanceTo</a>( posGoal );00957 00958 }00959 <a name="l00964"></a><a class="code" href="classWorldModel.html#a70">00964</a> <font class="keywordtype">double</font> <a class="code" href="classWorldModel.html#a70">WorldModel::getRelAngleOpponentGoal</a>()00965 {00966 <a class="code" href="classVecPosition.html">VecPosition</a> posGoal;00967 <font class="keywordflow">if</font>( <a class="code" href="classWorldModel.html#o10">sideSide</a> == <a class="code" href="SoccerTypes_8h.html#a246a177">SIDE_LEFT</a> )00968 posGoal = <a class="code" href="classSoccerTypes.html#d17">SoccerTypes::getGlobalPositionFlag</a>( <a class="code" href="SoccerTypes_8h.html#a240a26">OBJECT_GOAL_R</a>, <a class="code" href="classWorldModel.html#o10">sideSide</a> );00969 <font class="keywordflow">else</font>00970 posGoal = <a class="code" href="classSoccerTypes.html#d17">SoccerTypes::getGlobalPositionFlag</a>( <a class="code" href="SoccerTypes_8h.html#a240a25">OBJECT_GOAL_L</a>, <a class="code" href="classWorldModel.html#o10">sideSide</a> );00971 00972 <font class="keywordflow">return</font> ( posGoal - <a class="code" href="classWorldModel.html#a43">getAgentGlobalPosition</a>()).getDirection() ;00973 00974 }00975 <a name="l00979"></a><a class="code" href="classWorldModel.html#a71">00979</a> <a class="code" href="classHeteroPlayerSettings.html">HeteroPlayerSettings</a> <a class="code" href="classWorldModel.html#a71">WorldModel::getInfoHeteroPlayer</a>( <font class="keywordtype">int</
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?