aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02343.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a02343.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to '')
-rw-r--r--docs/doxygen/nel/a02343.html1102
1 files changed, 1102 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02343.html b/docs/doxygen/nel/a02343.html
new file mode 100644
index 00000000..f076028b
--- /dev/null
+++ b/docs/doxygen/nel/a02343.html
@@ -0,0 +1,1102 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NLAINIMAT::CClassifierSystem class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLAINIMAT::CClassifierSystem Class Reference</h1><code>#include &lt;<a class="el" href="a05552.html">classifier.h</a>&gt;</code>
+<p>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+A simple and minimal version of a Classifier System. <dl compact><dt><b>Author:</b></dt><dd>Gabriel ROBERT <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05552.html#l00165">165</a> of file <a class="el" href="a05552.html">classifier.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystema0">addClassifier</a> (const <a class="el" href="a02399.html">CConditionMap</a> &amp;conditionsMap, <a class="el" href="a02342.html">CClassifierPriority</a> priority, <a class="el" href="a05371.html#a101">TAction</a> behavior)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystema1">addClassifierSystem</a> (const <a class="el" href="a02343.html">CClassifierSystem</a> &amp;cs)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Merge two CS. <a href="#NLAINIMAT_1_1CClassifierSystema1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystema2">CClassifierSystem</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <a href="#NLAINIMAT_1_1CClassifierSystema2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystema3">dividePriorityByTheMinPriorityPart</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05371.html#a101">TAction</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystema4">getActionPart</a> (<a class="el" href="a05371.html#a7">TClassifierNumber</a> classifierNumber) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05371.html#a7">TClassifierNumber</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystema5">getClassifierNumber</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the number of classifiers. <a href="#NLAINIMAT_1_1CClassifierSystema5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystema6">getDebugString</a> (<a class="el" href="a05371.html#a7">TClassifierNumber</a> classifierNumber, std::string &amp;<a class="el" href="a04223.html#a627">t</a>) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystema7">getDebugString</a> (std::string &amp;<a class="el" href="a04223.html#a627">t</a>) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02342.html">CClassifierPriority</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystema8">getPriorityPart</a> (<a class="el" href="a05371.html#a7">TClassifierNumber</a> classifierNumber) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystema9">selectBehavior</a> (const <a class="el" href="a02422.html">CCSPerception</a> *psensorMap, std::multimap&lt; <a class="el" href="a02342.html">CClassifierPriority</a>, std::pair&lt; <a class="el" href="a05371.html#a7">TClassifierNumber</a>, <a class="el" href="a05371.html#a13">TTargetId</a> &gt; &gt; &amp;mapActivableCS)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystema10">setPriorityPart</a> (<a class="el" href="a05371.html#a7">TClassifierNumber</a> classifierNumber, <a class="el" href="a02342.html">CClassifierPriority</a> priority)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystema11">~CClassifierSystem</a> ()</td></tr>
+
+<tr><td colspan=2><br><h2>Private Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::map&lt; <a class="el" href="a05371.html#a7">TClassifierNumber</a>,<br>
+ <a class="el" href="a02344.html">CClassifier</a> * &gt;::iterator&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystemy0">TitClassifiers</a></td></tr>
+
+<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystemd0">RAZNoTargetSensors</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystemd1">RAZTargetSensors</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystemd2">updateNoTargetSensors</a> (const <a class="el" href="a02422.html">CCSPerception</a> *psensorMap)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystemd3">updateTargetSensors</a> (const <a class="el" href="a02422.html">CCSPerception</a> *psensorMap, <a class="el" href="a05371.html#a13">TTargetId</a> target)</td></tr>
+
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05371.html#a7">TClassifierNumber</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr0">_ClassifierNumber</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::map&lt; <a class="el" href="a05371.html#a7">TClassifierNumber</a>,<br>
+ <a class="el" href="a02344.html">CClassifier</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05371.html#a6">TSensorMap</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr2">_Sensors</a></td></tr>
+
+</table>
+<hr><h2>Member Typedef Documentation</h2>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystemy0" doxytag="NLAINIMAT::CClassifierSystem::TitClassifiers" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef std::map&lt;<a class="el" href="a05371.html#a7">TClassifierNumber</a>, <a class="el" href="a02344.html">CClassifier</a>*&gt;::iterator <a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystemy0">NLAINIMAT::CClassifierSystem::TitClassifiers</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05552.html#l00200">200</a> of file <a class="el" href="a05552.html">classifier.h</a>.
+<p>
+Referenced by <a class="el" href="a05551.html#l00357">selectBehavior()</a>. </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystema2" doxytag="NLAINIMAT::CClassifierSystem::CClassifierSystem" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLAINIMAT::CClassifierSystem::CClassifierSystem </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Destructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00079">79</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00222">_ClassifierNumber</a>.
+<p>
+<div class="fragment"><pre>00080 {
+00081 <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr0">_ClassifierNumber</a> = 0;
+00082 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystema11" doxytag="NLAINIMAT::CClassifierSystem::~CClassifierSystem" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NLAINIMAT::CClassifierSystem::~<a class="el" href="a02343.html">CClassifierSystem</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00084">84</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00221">_Classifiers</a>.
+<p>
+<div class="fragment"><pre>00085 {
+00086 std::map&lt;TClassifierNumber, CClassifier*&gt;::iterator itClassifiers = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.begin();
+00087 <span class="keywordflow">while</span> (itClassifiers != <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.end())
+00088 {
+00089 <span class="keyword">delete</span> (*itClassifiers).second;
+00090 itClassifiers++;
+00091 }
+00092 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystema0" doxytag="NLAINIMAT::CClassifierSystem::addClassifier" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLAINIMAT::CClassifierSystem::addClassifier </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02399.html">CConditionMap</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>conditionsMap</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02342.html">CClassifierPriority</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>priority</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a05371.html#a101">TAction</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>behavior</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Add a new classifier in the classifier system. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>conditionsMap</em>&nbsp;</td><td>is a map whose key is the sensor name and value the sensor value. </td></tr>
+ <tr><td valign=top><em>priority</em>&nbsp;</td><td>is the importance of this rule. The value should be between 0 an 1. </td></tr>
+ <tr><td valign=top><em>behavior</em>&nbsp;</td><td>is the action to execute if this classifier is selected.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00094">94</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00222">_ClassifierNumber</a>, <a class="el" href="a05552.html#l00221">_Classifiers</a>, <a class="el" href="a05552.html#l00220">_Sensors</a>, <a class="el" href="a05552.html#l00150">NLAINIMAT::CConditionMap::begin()</a>, <a class="el" href="a05552.html#l00197">NLAINIMAT::CClassifierSystem::CClassifier::Behavior</a>, <a class="el" href="a05552.html#l00195">NLAINIMAT::CClassifierSystem::CClassifier::ConditionWithoutTarget</a>, <a class="el" href="a05552.html#l00194">NLAINIMAT::CClassifierSystem::CClassifier::ConditionWithTarget</a>, <a class="el" href="a05552.html#l00151">NLAINIMAT::CConditionMap::end()</a>, <a class="el" href="a05552.html#l00196">NLAINIMAT::CClassifierSystem::CClassifier::Priority</a>, and <a class="el" href="a06363.html#l00071">NLAINIMAT::TSensor</a>.
+<p>
+Referenced by <a class="el" href="a05551.html#l00128">addClassifierSystem()</a>, <a class="el" href="a05551.html#l00699">NLAINIMAT::CActionClassifiers::addMotivationRule()</a>, and <a class="el" href="a05551.html#l00707">NLAINIMAT::CActionClassifiers::addVirtualActionRule()</a>.
+<p>
+<div class="fragment"><pre>00095 {
+00096 <span class="comment">// We build a new classifier.</span>
+00097 CClassifier* classifier = <span class="keyword">new</span> CClassifier();
+00098 classifier-&gt;Behavior = behavior;
+00099 classifier-&gt;Priority = priority;
+00100
+00101 CClassifierConditionCell* condCell;
+00102 std::map&lt;TSensor, CConditionMap::CSensor &gt;::const_iterator itCondition;
+00103 <span class="keywordflow">for</span> (itCondition = conditionsMap.begin(); itCondition != conditionsMap.end(); itCondition++)
+00104 {
+00105 <span class="comment">// We add the new sensor in the sensor map and init it with a joker value '#'</span>
+00106 <a class="code" href="a05371.html#a100">TSensor</a> bibu = (*itCondition).first;
+00107 <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr2">_Sensors</a>[(*itCondition).first] = <span class="charliteral">'#'</span>;
+00108
+00109 <span class="comment">// A new condition cell is added to the classifier condition.</span>
+00110 condCell = <span class="keyword">new</span> CClassifierConditionCell(<a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr2">_Sensors</a>.find((*itCondition).first),
+00111 (*itCondition).second.SensorValue,
+00112 (*itCondition).second.TruthValue);
+00113 <span class="keywordflow">if</span> ((*itCondition).second.NeedTarget)
+00114 {
+00115 classifier-&gt;ConditionWithTarget.push_back(condCell);
+00116 }
+00117 <span class="keywordflow">else</span>
+00118 {
+00119 classifier-&gt;ConditionWithoutTarget.push_back(condCell);
+00120 }
+00121 }
+00122
+00123 <span class="comment">// The new classifier is added to the classifier list.</span>
+00124 <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>[<a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr0">_ClassifierNumber</a>++] = classifier;
+00125 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystema1" doxytag="NLAINIMAT::CClassifierSystem::addClassifierSystem" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLAINIMAT::CClassifierSystem::addClassifierSystem </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02343.html">CClassifierSystem</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>cs</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Merge two CS.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00128">128</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00221">_Classifiers</a>, <a class="el" href="a05551.html#l00094">addClassifier()</a>, <a class="el" href="a05551.html#l00666">NLAINIMAT::CConditionMap::addSensorCondition()</a>, <a class="el" href="a05551.html#l00637">NLAINIMAT::CClassifierSystem::CClassifierConditionCell::getSensorIsTrue()</a>, <a class="el" href="a05551.html#l00627">NLAINIMAT::CClassifierSystem::CClassifierConditionCell::getSensorName()</a>, and <a class="el" href="a05551.html#l00632">NLAINIMAT::CClassifierSystem::CClassifierConditionCell::getValue()</a>.
+<p>
+Referenced by <a class="el" href="a06032.html#l00222">NLAINIMAT::CMHiCSbase::addVirtualActionCS()</a>.
+<p>
+<div class="fragment"><pre>00129 {
+00130 std::map&lt;TClassifierNumber, CClassifier*&gt;::const_iterator itCSClassifiers;
+00131
+00132 <span class="comment">// Pour chacun des classeurs de cs</span>
+00133 <span class="keywordflow">for</span> (itCSClassifiers = cs._Classifiers.begin(); itCSClassifiers != cs._Classifiers.end(); itCSClassifiers++)
+00134 {
+00135 CConditionMap conditionsMap;
+00136 std::list&lt;CClassifierConditionCell*&gt;::const_iterator itCondCell;
+00137
+00138 <span class="comment">// Pour chacune des condition sans cible d'un de ces classeur</span>
+00139 <span class="keywordflow">for</span> (itCondCell = (*itCSClassifiers).second-&gt;ConditionWithoutTarget.begin();
+00140 itCondCell !=(*itCSClassifiers).second-&gt;ConditionWithoutTarget.end();
+00141 itCondCell++)
+00142 {
+00143 CClassifierConditionCell* pCondCell = (*itCondCell);
+00144 <span class="comment">// Je construit une liste de condition</span>
+00145 conditionsMap.addSensorCondition(pCondCell-&gt;getSensorName(), pCondCell-&gt;getValue(),pCondCell-&gt;getSensorIsTrue());
+00146 }
+00147
+00148 <span class="comment">// Pour chacune des condition avec cible d'un de ces classeur</span>
+00149 <span class="keywordflow">for</span> (itCondCell = (*itCSClassifiers).second-&gt;ConditionWithTarget.begin();
+00150 itCondCell !=(*itCSClassifiers).second-&gt;ConditionWithTarget.end();
+00151 itCondCell++)
+00152 {
+00153 CClassifierConditionCell* pCondCell = (*itCondCell);
+00154 <span class="comment">// Je construit une liste de condition</span>
+00155 conditionsMap.addSensorCondition(pCondCell-&gt;getSensorName(), pCondCell-&gt;getValue(),pCondCell-&gt;getSensorIsTrue());
+00156 }
+00157
+00158 <span class="comment">// je rajoute dans mon cs un nouveau classeur avec ces conditions, la priorité et le comportement du classeur</span>
+00159 <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystema0">addClassifier</a>(conditionsMap, (*itCSClassifiers).second-&gt;Priority, (*itCSClassifiers).second-&gt;Behavior);
+00160 }
+00161 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystema3" doxytag="NLAINIMAT::CClassifierSystem::dividePriorityByTheMinPriorityPart" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLAINIMAT::CClassifierSystem::dividePriorityByTheMinPriorityPart </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystema4" doxytag="NLAINIMAT::CClassifierSystem::getActionPart" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a05371.html#a101">TAction</a> NLAINIMAT::CClassifierSystem::getActionPart </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05371.html#a7">TClassifierNumber</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>classifierNumber</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Give the action part of a given Classifier. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>classifierNumber</em>&nbsp;</td><td>is the number of the classifier. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>is the condition part of the wanted Classifier.</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00413">413</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00221">_Classifiers</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06363.html#l00185">NLAINIMAT::TAction</a>, and <a class="el" href="a05552.html#l00064">NLAINIMAT::TClassifierNumber</a>.
+<p>
+<div class="fragment"><pre>00414 {
+00415 std::map&lt;TClassifierNumber, CClassifier*&gt;::const_iterator itClassifiers = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.find(classifierNumber);
+00416 <a class="code" href="a04199.html#a6">nlassert</a>(itClassifiers != <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.end());
+00417 <span class="keywordflow">return</span> (*itClassifiers).second-&gt;Behavior;
+00418 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystema5" doxytag="NLAINIMAT::CClassifierSystem::getClassifierNumber" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a05371.html#a7">TClassifierNumber</a> NLAINIMAT::CClassifierSystem::getClassifierNumber </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the number of classifiers.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05552.html#l00262">262</a> of file <a class="el" href="a05552.html">classifier.h</a>.
+<p>
+References <a class="el" href="a05552.html#l00222">_ClassifierNumber</a>, and <a class="el" href="a05552.html#l00064">NLAINIMAT::TClassifierNumber</a>.
+<p>
+<div class="fragment"><pre>00262 {<span class="keywordflow">return</span> <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr0">_ClassifierNumber</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystema6" doxytag="NLAINIMAT::CClassifierSystem::getDebugString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLAINIMAT::CClassifierSystem::getDebugString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05371.html#a7">TClassifierNumber</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>classifierNumber</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>t</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00505">505</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00221">_Classifiers</a>, <a class="el" href="a05551.html#l00044">NLAINIMAT::CClassifierPriority::getPriority()</a>, <a class="el" href="a05551.html#l00637">NLAINIMAT::CClassifierSystem::CClassifierConditionCell::getSensorIsTrue()</a>, <a class="el" href="a05551.html#l00627">NLAINIMAT::CClassifierSystem::CClassifierConditionCell::getSensorName()</a>, <a class="el" href="a05551.html#l00632">NLAINIMAT::CClassifierSystem::CClassifierConditionCell::getValue()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05646.html#l00985">t</a>, <a class="el" href="a05552.html#l00064">NLAINIMAT::TClassifierNumber</a>, and <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>.
+<p>
+<div class="fragment"><pre>00506 {
+00507 std::string dbg = <span class="stringliteral">""</span>;
+00508 std::map&lt;TClassifierNumber, CClassifier*&gt;::const_iterator itClassifiers = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.find(classifierNumber);
+00509 <a class="code" href="a04199.html#a6">nlassert</a> (itClassifiers != <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.end());
+00510
+00511 dbg += <span class="stringliteral">"&lt;"</span> + <a class="code" href="a05378.html#a244">NLMISC::toString</a>(classifierNumber) + <span class="stringliteral">"&gt; "</span>;
+00512 std::list&lt;CClassifierConditionCell*&gt;::const_iterator itConditions;
+00513 <span class="comment">// On parcour la liste de sensor indépendant d'une cible</span>
+00514 <span class="keywordflow">for</span> (itConditions = (*itClassifiers).second-&gt;ConditionWithoutTarget.begin();
+00515 itConditions != (*itClassifiers).second-&gt;ConditionWithoutTarget.end();
+00516 itConditions++)
+00517 {
+00518 CClassifierConditionCell* condCell = (*itConditions);
+00519 <span class="keywordflow">if</span> (condCell-&gt;getSensorIsTrue())
+00520 {
+00521 dbg += <span class="stringliteral">" ("</span> + conversionSensor.toString(condCell-&gt;getSensorName()) + <span class="stringliteral">"= "</span> + condCell-&gt;getValue() + <span class="stringliteral">") +"</span>;
+00522 }
+00523 <span class="keywordflow">else</span>
+00524 {
+00525 dbg += <span class="stringliteral">" ("</span> + conversionSensor.toString(condCell-&gt;getSensorName()) + <span class="stringliteral">"=!"</span> + condCell-&gt;getValue() + <span class="stringliteral">") +"</span>;
+00526 }
+00527 }
+00528 <span class="comment">// On parcour la liste de sensor dépendant d'une cible</span>
+00529 <span class="keywordflow">for</span> (itConditions = (*itClassifiers).second-&gt;ConditionWithTarget.begin();
+00530 itConditions != (*itClassifiers).second-&gt;ConditionWithTarget.end();
+00531 itConditions++)
+00532 {
+00533 CClassifierConditionCell* condCell = (*itConditions);
+00534 <span class="keywordflow">if</span> (condCell-&gt;getSensorIsTrue())
+00535 {
+00536 dbg += <span class="stringliteral">" ("</span> + conversionSensor.toString(condCell-&gt;getSensorName()) + <span class="stringliteral">"(x)= "</span> + condCell-&gt;getValue() + <span class="stringliteral">") +"</span>;
+00537 }
+00538 <span class="keywordflow">else</span>
+00539 {
+00540 dbg += <span class="stringliteral">" ("</span> + conversionSensor.toString(condCell-&gt;getSensorName()) + <span class="stringliteral">"(x)=!"</span> + condCell-&gt;getValue() + <span class="stringliteral">") +"</span>;
+00541 }
+00542 }
+00543 std::string actionName = conversionAction.toString((*itClassifiers).second-&gt;Behavior);
+00544 CClassifierPriority prio = (*itClassifiers).second-&gt;Priority;
+00545 dbg += <span class="stringliteral">"&gt; "</span> + actionName + <span class="stringliteral">" ["</span> + <a class="code" href="a05378.html#a244">NLMISC::toString</a>(prio.getPriority()) + <span class="stringliteral">"]"</span>;
+00546 <a class="code" href="a04223.html#a627">t</a> += dbg;
+00547 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystema7" doxytag="NLAINIMAT::CClassifierSystem::getDebugString" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLAINIMAT::CClassifierSystem::getDebugString </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::string &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>t</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00459">459</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00221">_Classifiers</a>, <a class="el" href="a05551.html#l00044">NLAINIMAT::CClassifierPriority::getPriority()</a>, <a class="el" href="a05551.html#l00637">NLAINIMAT::CClassifierSystem::CClassifierConditionCell::getSensorIsTrue()</a>, <a class="el" href="a05551.html#l00627">NLAINIMAT::CClassifierSystem::CClassifierConditionCell::getSensorName()</a>, <a class="el" href="a05551.html#l00632">NLAINIMAT::CClassifierSystem::CClassifierConditionCell::getValue()</a>, <a class="el" href="a05646.html#l00985">t</a>, and <a class="el" href="a06229.html#l02652">NLMISC::toString()</a>.
+<p>
+<div class="fragment"><pre>00460 {
+00461 std::string dbg = <span class="stringliteral">"\n"</span>;
+00462
+00463 std::map&lt;TClassifierNumber, CClassifier*&gt;::const_iterator itClassifiers;
+00464 <span class="keywordflow">for</span> (itClassifiers = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.begin(); itClassifiers != <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.end(); itClassifiers++)
+00465 {
+00466 dbg += <span class="stringliteral">"&lt;"</span> + <a class="code" href="a05378.html#a244">NLMISC::toString</a>((*itClassifiers).first) + <span class="stringliteral">"&gt; "</span>;
+00467 std::list&lt;CClassifierConditionCell*&gt;::const_iterator itConditions;
+00468 <span class="comment">// On parcour la liste de sensor indépendant d'une cible</span>
+00469 <span class="keywordflow">for</span> (itConditions = (*itClassifiers).second-&gt;ConditionWithoutTarget.begin();
+00470 itConditions != (*itClassifiers).second-&gt;ConditionWithoutTarget.end();
+00471 itConditions++)
+00472 {
+00473 CClassifierConditionCell* condCell = (*itConditions);
+00474 <span class="keywordflow">if</span> (condCell-&gt;getSensorIsTrue())
+00475 {
+00476 dbg += <span class="stringliteral">" ("</span> + conversionSensor.toString(condCell-&gt;getSensorName()) + <span class="stringliteral">"= "</span> + condCell-&gt;getValue() + <span class="stringliteral">") +"</span>;
+00477 }
+00478 <span class="keywordflow">else</span>
+00479 {
+00480 dbg += <span class="stringliteral">" ("</span> + conversionSensor.toString(condCell-&gt;getSensorName()) + <span class="stringliteral">"=!"</span> + condCell-&gt;getValue() + <span class="stringliteral">") +"</span>;
+00481 }
+00482 }
+00483 <span class="comment">// On parcour la liste de sensor dépendant d'une cible</span>
+00484 <span class="keywordflow">for</span> (itConditions = (*itClassifiers).second-&gt;ConditionWithTarget.begin();
+00485 itConditions != (*itClassifiers).second-&gt;ConditionWithTarget.end();
+00486 itConditions++)
+00487 {
+00488 CClassifierConditionCell* condCell = (*itConditions);
+00489 <span class="keywordflow">if</span> (condCell-&gt;getSensorIsTrue())
+00490 {
+00491 dbg += <span class="stringliteral">" ("</span> + conversionSensor.toString(condCell-&gt;getSensorName()) + <span class="stringliteral">"(x)= "</span> + condCell-&gt;getValue() + <span class="stringliteral">") +"</span>;
+00492 }
+00493 <span class="keywordflow">else</span>
+00494 {
+00495 dbg += <span class="stringliteral">" ("</span> + conversionSensor.toString(condCell-&gt;getSensorName()) + <span class="stringliteral">"(x)=!"</span> + condCell-&gt;getValue() + <span class="stringliteral">") +"</span>;
+00496 }
+00497 }
+00498 std::string actionName = conversionAction.toString((*itClassifiers).second-&gt;Behavior);
+00499 CClassifierPriority prio = (*itClassifiers).second-&gt;Priority;
+00500 dbg += <span class="stringliteral">"&gt; "</span> + actionName + <span class="stringliteral">" ["</span> + <a class="code" href="a05378.html#a244">NLMISC::toString</a>(prio.getPriority()) + <span class="stringliteral">"]\n"</span>;
+00501 }
+00502 <a class="code" href="a04223.html#a627">t</a> += dbg;
+00503 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystema8" doxytag="NLAINIMAT::CClassifierSystem::getPriorityPart" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02342.html">CClassifierPriority</a> NLAINIMAT::CClassifierSystem::getPriorityPart </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05371.html#a7">TClassifierNumber</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>classifierNumber</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00420">420</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00221">_Classifiers</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05552.html#l00064">NLAINIMAT::TClassifierNumber</a>.
+<p>
+<div class="fragment"><pre>00421 {
+00422 std::map&lt;TClassifierNumber, CClassifier*&gt;::const_iterator itClassifiers = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.find(classifierNumber);
+00423 <a class="code" href="a04199.html#a6">nlassert</a>(itClassifiers != <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.end());
+00424 <span class="keywordflow">return</span> (*itClassifiers).second-&gt;Priority;
+00425 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystemd0" doxytag="NLAINIMAT::CClassifierSystem::RAZNoTargetSensors" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLAINIMAT::CClassifierSystem::RAZNoTargetSensors </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00215">215</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00220">_Sensors</a>, and <a class="el" href="a05371.html#a100a47">NLAINIMAT::Sensors_WITHTARGET</a>.
+<p>
+Referenced by <a class="el" href="a05551.html#l00357">selectBehavior()</a>.
+<p>
+<div class="fragment"><pre>00216 {
+00217 TSensorMap::iterator itSensorBorder = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr2">_Sensors</a>.upper_bound(Sensors_WITHTARGET);
+00218 TSensorMap::iterator itSensors;
+00219 <span class="keywordflow">for</span> (itSensors = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr2">_Sensors</a>.begin(); itSensors != itSensorBorder; itSensors++)
+00220 {
+00221 (*itSensors).second = <span class="charliteral">'#'</span>;
+00222 }
+00223 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystemd1" doxytag="NLAINIMAT::CClassifierSystem::RAZTargetSensors" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLAINIMAT::CClassifierSystem::RAZTargetSensors </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00204">204</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00220">_Sensors</a>, and <a class="el" href="a05371.html#a100a47">NLAINIMAT::Sensors_WITHTARGET</a>.
+<p>
+Referenced by <a class="el" href="a05551.html#l00357">selectBehavior()</a>.
+<p>
+<div class="fragment"><pre>00205 {
+00206 TSensorMap::iterator itSensorBorder = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr2">_Sensors</a>.upper_bound(Sensors_WITHTARGET);
+00207 TSensorMap::iterator itSensors;
+00208 <span class="keywordflow">for</span> (itSensors = itSensorBorder; itSensors != <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr2">_Sensors</a>.end(); itSensors++)
+00209 {
+00210 (*itSensors).second = <span class="charliteral">'#'</span>;
+00211 }
+00212 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystema9" doxytag="NLAINIMAT::CClassifierSystem::selectBehavior" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLAINIMAT::CClassifierSystem::selectBehavior </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02422.html">CCSPerception</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>psensorMap</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::multimap&lt; <a class="el" href="a02342.html">CClassifierPriority</a>, std::pair&lt; <a class="el" href="a05371.html#a7">TClassifierNumber</a>, <a class="el" href="a05371.html#a13">TTargetId</a> &gt; &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>mapActivableCS</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Select a behavior according to the values in the sensorMap. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>sensorMap</em>&nbsp;</td><td>is a map whose key is the sensor name and value the sensor value. </td></tr>
+ <tr><td valign=top><em>mapActivableCS</em>&nbsp;</td><td>is the return value for the map containing all the activable CS. TClassifierPriority is the priority, TClassifierNumber the classifier number and TTargetId la cible de l'action</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00357">357</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00221">_Classifiers</a>, <a class="el" href="a05551.html#l00215">RAZNoTargetSensors()</a>, <a class="el" href="a05551.html#l00204">RAZTargetSensors()</a>, <a class="el" href="a05552.html#l00122">NLAINIMAT::CCSPerception::TargetSensors</a>, <a class="el" href="a05552.html#l00200">TitClassifiers</a>, <a class="el" href="a06363.html#l00038">NLAINIMAT::TTargetId</a>, <a class="el" href="a05551.html#l00164">updateNoTargetSensors()</a>, and <a class="el" href="a05551.html#l00183">updateTargetSensors()</a>.
+<p>
+<div class="fragment"><pre>00359 {
+00360 <span class="comment">// We update the internal sensor values for the no target sensors</span>
+00361 <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemd2">updateNoTargetSensors</a>(psensorMap);
+00362
+00363 <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemy0">TitClassifiers</a> itClassifiers;
+00364
+00365 <span class="keywordflow">for</span> (itClassifiers = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.begin();
+00366 itClassifiers != <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.end();
+00367 itClassifiers++)
+00368 {
+00369 <span class="comment">// S'il y a des conditions dépendantes d'une cible, ce n'est pas activable.</span>
+00370 <span class="keywordflow">if</span> ((*itClassifiers).second-&gt;ConditionWithTarget.begin() == (*itClassifiers).second-&gt;ConditionWithTarget.end())
+00371 {
+00372 <span class="keywordflow">if</span> ( (*itClassifiers).second-&gt;isActivable())
+00373 {
+00374 mapActivableCS.insert(std::make_pair((*itClassifiers).second-&gt;Priority, std::make_pair((*itClassifiers).first, NullTargetId)));
+00375 }
+00376 }
+00377 }
+00378
+00379 <span class="comment">// We now do the same, but with target sensors.</span>
+00380 std::map&lt;TTargetId, TSensorMap&gt;::const_iterator itTargetSensorMap;
+00381 <span class="keywordflow">for</span> (itTargetSensorMap = psensorMap-&gt;TargetSensors.begin(); itTargetSensorMap != psensorMap-&gt;TargetSensors.end(); itTargetSensorMap++)
+00382 {
+00383 <a class="code" href="a05371.html#a13">TTargetId</a> myTarget = (*itTargetSensorMap).first;
+00384 <span class="comment">// We update the internal sensor values for the target sensors</span>
+00385 <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemd3">updateTargetSensors</a>(psensorMap, myTarget);
+00386
+00387 <span class="comment">// We select the activables classifiers</span>
+00388 <span class="keywordflow">for</span> (itClassifiers = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.begin();
+00389 itClassifiers != <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.end();
+00390 itClassifiers++)
+00391 {
+00392 <span class="comment">// S'il n'y a pas de conditions dépendantes d'une cible, ça a déjà été traité au dessus.</span>
+00393 <span class="keywordflow">if</span> ((*itClassifiers).second-&gt;ConditionWithTarget.begin() != (*itClassifiers).second-&gt;ConditionWithTarget.end())
+00394 {
+00395 <span class="keywordflow">if</span> ( (*itClassifiers).second-&gt;isActivable())
+00396 {
+00397 mapActivableCS.insert(std::make_pair((*itClassifiers).second-&gt;Priority, std::make_pair((*itClassifiers).first, myTarget)));
+00398 }
+00399 }
+00400 }
+00401 <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemd1">RAZTargetSensors</a>();
+00402 }
+00403
+00404 <span class="comment">// We set the sensors back to the default value.</span>
+00405 <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemd0">RAZNoTargetSensors</a>();
+00406
+00407 <span class="comment">// // We set the return values.</span>
+00408 <span class="comment">// lastClassifierNumber = selectionNumber;</span>
+00409 <span class="comment">// lastTarget = myTarget;</span>
+00410 <span class="comment">// lastSelectionMaxPriority = higherPriority;</span>
+00411 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystema10" doxytag="NLAINIMAT::CClassifierSystem::setPriorityPart" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLAINIMAT::CClassifierSystem::setPriorityPart </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05371.html#a7">TClassifierNumber</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>classifierNumber</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02342.html">CClassifierPriority</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>priority</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00427">427</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00221">_Classifiers</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05552.html#l00064">NLAINIMAT::TClassifierNumber</a>.
+<p>
+<div class="fragment"><pre>00428 {
+00429 std::map&lt;TClassifierNumber, CClassifier*&gt;::iterator itClassifiers = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.find(classifierNumber);
+00430 <a class="code" href="a04199.html#a6">nlassert</a>(itClassifiers != <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">_Classifiers</a>.end());
+00431 (*itClassifiers).second-&gt;Priority = priority;
+00432 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystemd2" doxytag="NLAINIMAT::CClassifierSystem::updateNoTargetSensors" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLAINIMAT::CClassifierSystem::updateNoTargetSensors </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02422.html">CCSPerception</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>psensorMap</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00164">164</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00220">_Sensors</a>, <a class="el" href="a05552.html#l00120">NLAINIMAT::CCSPerception::NoTargetSensors</a>, <a class="el" href="a06363.html#l00071">NLAINIMAT::TSensor</a>, and <a class="el" href="a05552.html#l00062">NLAINIMAT::TSensorValue</a>.
+<p>
+Referenced by <a class="el" href="a05551.html#l00357">selectBehavior()</a>.
+<p>
+<div class="fragment"><pre>00165 {
+00166 <span class="comment">// We use an internal sensor map, because each condition cell is mapped to this intrenal map.</span>
+00167 TSensorMap::iterator itSensors;
+00168 TSensorMap::const_iterator itNoTargetSensors;
+00169
+00170 <span class="keywordflow">for</span> (itSensors = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr2">_Sensors</a>.begin(); itSensors != <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr2">_Sensors</a>.end(); itSensors++)
+00171 {
+00172 <a class="code" href="a05371.html#a100">TSensor</a> sensName = (*itSensors).first;
+00173 itNoTargetSensors = psensorMap-&gt;NoTargetSensors.find(sensName);
+00174 <span class="keywordflow">if</span> (itNoTargetSensors !=psensorMap-&gt;NoTargetSensors.end())
+00175 {
+00176 <a class="code" href="a05371.html#a5">TSensorValue</a> c = (*itNoTargetSensors).second;
+00177 (*itSensors).second = c;
+00178 }
+00179 }
+00180 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystemd3" doxytag="NLAINIMAT::CClassifierSystem::updateTargetSensors" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NLAINIMAT::CClassifierSystem::updateTargetSensors </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02422.html">CCSPerception</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>psensorMap</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a05371.html#a13">TTargetId</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>target</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05551.html#l00183">183</a> of file <a class="el" href="a05551.html">classifier.cpp</a>.
+<p>
+References <a class="el" href="a05552.html#l00220">_Sensors</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05552.html#l00122">NLAINIMAT::CCSPerception::TargetSensors</a>, <a class="el" href="a06363.html#l00071">NLAINIMAT::TSensor</a>, <a class="el" href="a05552.html#l00062">NLAINIMAT::TSensorValue</a>, and <a class="el" href="a06363.html#l00038">NLAINIMAT::TTargetId</a>.
+<p>
+Referenced by <a class="el" href="a05551.html#l00357">selectBehavior()</a>.
+<p>
+<div class="fragment"><pre>00184 {
+00185 <span class="comment">// We update the internal sensor values for the target sensors</span>
+00186 TSensorMap::iterator itSensors;
+00187 TSensorMap::const_iterator itTargetSensors;
+00188 std::map&lt;TTargetId, TSensorMap&gt;::const_iterator itTargetSensorMap = psensorMap-&gt;TargetSensors.find(target);
+00189 <a class="code" href="a04199.html#a6">nlassert</a>( itTargetSensorMap != psensorMap-&gt;TargetSensors.end() );
+00190
+00191 <span class="keywordflow">for</span> (itSensors = <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr2">_Sensors</a>.begin(); itSensors != <a class="code" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr2">_Sensors</a>.end(); itSensors++)
+00192 {
+00193 <a class="code" href="a05371.html#a100">TSensor</a> sensName = (*itSensors).first;
+00194 itTargetSensors = (*itTargetSensorMap).second.find(sensName);
+00195 <span class="keywordflow">if</span> (itTargetSensors != (*itTargetSensorMap).second.end())
+00196 {
+00197 <a class="code" href="a05371.html#a5">TSensorValue</a> c = (*itTargetSensors).second;
+00198 (*itSensors).second = c;
+00199 }
+00200 }
+00201 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystemr0" doxytag="NLAINIMAT::CClassifierSystem::_ClassifierNumber" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a05371.html#a7">TClassifierNumber</a> <a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr0">NLAINIMAT::CClassifierSystem::_ClassifierNumber</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05552.html#l00222">222</a> of file <a class="el" href="a05552.html">classifier.h</a>.
+<p>
+Referenced by <a class="el" href="a05551.html#l00094">addClassifier()</a>, <a class="el" href="a05551.html#l00079">CClassifierSystem()</a>, and <a class="el" href="a05552.html#l00262">getClassifierNumber()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystemr1" doxytag="NLAINIMAT::CClassifierSystem::_Classifiers" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> std::map&lt;<a class="el" href="a05371.html#a7">TClassifierNumber</a>, <a class="el" href="a02344.html">CClassifier</a>*&gt; <a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr1">NLAINIMAT::CClassifierSystem::_Classifiers</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05552.html#l00221">221</a> of file <a class="el" href="a05552.html">classifier.h</a>.
+<p>
+Referenced by <a class="el" href="a05551.html#l00094">addClassifier()</a>, <a class="el" href="a05551.html#l00128">addClassifierSystem()</a>, <a class="el" href="a05551.html#l00413">getActionPart()</a>, <a class="el" href="a05551.html#l00459">getDebugString()</a>, <a class="el" href="a05551.html#l00420">getPriorityPart()</a>, <a class="el" href="a05551.html#l00357">selectBehavior()</a>, <a class="el" href="a05551.html#l00427">setPriorityPart()</a>, and <a class="el" href="a05551.html#l00084">~CClassifierSystem()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLAINIMAT_1_1CClassifierSystemr2" doxytag="NLAINIMAT::CClassifierSystem::_Sensors" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a05371.html#a6">TSensorMap</a> <a class="el" href="a02343.html#NLAINIMAT_1_1CClassifierSystemr2">NLAINIMAT::CClassifierSystem::_Sensors</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05552.html#l00220">220</a> of file <a class="el" href="a05552.html">classifier.h</a>.
+<p>
+Referenced by <a class="el" href="a05551.html#l00094">addClassifier()</a>, <a class="el" href="a05551.html#l00215">RAZNoTargetSensors()</a>, <a class="el" href="a05551.html#l00204">RAZTargetSensors()</a>, <a class="el" href="a05551.html#l00164">updateNoTargetSensors()</a>, and <a class="el" href="a05551.html#l00183">updateTargetSensors()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05552.html">classifier.h</a><li><a class="el" href="a05551.html">classifier.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 11:09:43 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>