Updated documentation

This commit is contained in:
FlightControl
2017-03-24 14:47:51 +01:00
parent de87e1f557
commit 3e8824b89b
20 changed files with 2285 additions and 2757 deletions

View File

@@ -79,93 +79,16 @@
<hr/>
<h1>1) <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class, extends <a href="AI_CAP.html##(AI_PATROL_ZONE)">AI<em>CAP#AI</em>PATROL_ZONE</a></h1>
<p>The <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class implements the core functions to patrol a <a href="Zone.html">Zone</a> by an AI <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>
and automatically engage any airborne enemies that are within a certain range or within a certain zone.</p>
<p>AI CAP classes makes AI Controllables execute a Combat Air Patrol.</p>
<p><img src="..\Presentations\AI_CAP\Dia3.JPG" alt="Process"/></p>
<p>The AI<em>CAP</em>ZONE is assigned a <a href="Group.html">Group</a> and this must be done before the AI<em>CAP</em>ZONE process can be started using the <strong>Start</strong> event.</p>
<p><img src="..\Presentations\AI_CAP\Dia4.JPG" alt="Process"/></p>
<p>The AI will fly towards the random 3D point within the patrol zone, using a random speed within the given altitude and speed limits.
Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.</p>
<p><img src="..\Presentations\AI_CAP\Dia5.JPG" alt="Process"/></p>
<p>This cycle will continue.</p>
<p><img src="..\Presentations\AI_CAP\Dia6.JPG" alt="Process"/></p>
<p>During the patrol, the AI will detect enemy targets, which are reported through the <strong>Detected</strong> event.</p>
<p><img src="..\Presentations\AI_CAP\Dia9.JPG" alt="Process"/></p>
<p>When enemies are detected, the AI will automatically engage the enemy.</p>
<p><img src="..\Presentations\AI_CAP\Dia10.JPG" alt="Process"/></p>
<p>Until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.
When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.</p>
<p><img src="..\Presentations\AI_CAP\Dia13.JPG" alt="Process"/></p>
<h2>1.1) AI<em>CAP</em>ZONE constructor</h2>
<p>There are the following types of CAP classes defined:</p>
<ul>
<li><a href="##(AI_CAP_ZONE).New">AI<em>CAP</em>ZONE.New</a>(): Creates a new AI<em>CAP</em>ZONE object.</li>
<li><a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a>: Perform a CAP in a zone.</li>
</ul>
<h2>1.2) AI<em>CAP</em>ZONE is a FSM</h2>
<p><img src="..\Presentations\AI_CAP\Dia2.JPG" alt="Process"/></p>
<h3>1.2.1) AI<em>CAP</em>ZONE States</h3>
<ul>
<li><strong>None</strong> ( Group ): The process is not started yet.</li>
<li><strong>Patrolling</strong> ( Group ): The AI is patrolling the Patrol Zone.</li>
<li><strong>Engaging</strong> ( Group ): The AI is engaging the bogeys.</li>
<li><strong>Returning</strong> ( Group ): The AI is returning to Base..</li>
</ul>
<h3>1.2.2) AI<em>CAP</em>ZONE Events</h3>
<ul>
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Start">AI<em>Patrol#AI</em>PATROL_ZONE.Start</a>**: Start the process.</li>
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Route">AI<em>Patrol#AI</em>PATROL_ZONE.Route</a>**: Route the AI to a new random 3D point within the Patrol Zone.</li>
<li>**<a href="##(AI_CAP_ZONE).Engage">AI<em>CAP</em>ZONE.Engage</a>**: Let the AI engage the bogeys.</li>
<li>**<a href="##(AI_CAP_ZONE).Abort">AI<em>CAP</em>ZONE.Abort</a>**: Aborts the engagement and return patrolling in the patrol zone.</li>
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).RTB">AI<em>Patrol#AI</em>PATROL_ZONE.RTB</a>**: Route the AI to the home base.</li>
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Detect">AI<em>Patrol#AI</em>PATROL_ZONE.Detect</a>**: The AI is detecting targets.</li>
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Detected">AI<em>Patrol#AI</em>PATROL_ZONE.Detected</a>**: The AI has detected new targets.</li>
<li>**<a href="##(AI_CAP_ZONE).Destroy">AI<em>CAP</em>ZONE.Destroy</a>**: The AI has destroyed a bogey <a href="Unit.html">Unit</a>.</li>
<li>**<a href="##(AI_CAP_ZONE).Destroyed">AI<em>CAP</em>ZONE.Destroyed</a>**: The AI has destroyed all bogeys <a href="Unit.html">Unit</a>s assigned in the CAS task.</li>
<li><strong>Status</strong> ( Group ): The AI is checking status (fuel and damage). When the tresholds have been reached, the AI will RTB.</li>
</ul>
<h2>1.3) Set the Range of Engagement</h2>
<p><img src="..\Presentations\AI_CAP\Dia11.JPG" alt="Range"/></p>
<p>An optional range can be set in meters,
that will define when the AI will engage with the detected airborne enemy targets.
The range can be beyond or smaller than the range of the Patrol Zone.
The range is applied at the position of the AI.
Use the method <a href="AI_CAP.html##(AI_CAP_ZONE).SetEngageRange">AI<em>CAP#AI</em>CAP_ZONE.SetEngageRange</a>() to define that range.</p>
<h2>1.4) Set the Zone of Engagement</h2>
<p><img src="..\Presentations\AI_CAP\Dia12.JPG" alt="Zone"/></p>
<p>An optional <a href="Zone.html">Zone</a> can be set,
that will define when the AI will engage with the detected airborne enemy targets.
Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</em>CAP_ZONE.SetEngageZone</a>() to define that Zone.</p>
<hr/>
<h1><strong>API CHANGE HISTORY</strong></h1>
@@ -207,7 +130,10 @@ Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</
<tr>
<td class="name" nowrap="nowrap"><a href="#AI_CAP_ZONE">AI_CAP_ZONE</a></td>
<td class="summary">
<h1>1) <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class, extends <a href="AI_CAP.html##(AI_PATROL_ZONE)">AI<em>CAP#AI</em>PATROL_ZONE</a></h1>
<p>The <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class implements the core functions to patrol a <a href="Zone.html">Zone</a> by an AI <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>
and automatically engage any airborne enemies that are within a certain range or within a certain zone.</p>
</td>
</tr>
<tr>
@@ -241,12 +167,6 @@ Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</
<td class="name" nowrap="nowrap"><a href="##(AI_CAP_ZONE).Accomplished">AI_CAP_ZONE.Accomplished</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CAP_ZONE).ClassName">AI_CAP_ZONE.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
@@ -472,6 +392,94 @@ Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</
</dt>
<dd>
<h1>1) <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class, extends <a href="AI_CAP.html##(AI_PATROL_ZONE)">AI<em>CAP#AI</em>PATROL_ZONE</a></h1>
<p>The <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class implements the core functions to patrol a <a href="Zone.html">Zone</a> by an AI <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>
and automatically engage any airborne enemies that are within a certain range or within a certain zone.</p>
<p><img src="..\Presentations\AI_CAP\Dia3.JPG" alt="Process"/></p>
<p>The AI<em>CAP</em>ZONE is assigned a <a href="Group.html">Group</a> and this must be done before the AI<em>CAP</em>ZONE process can be started using the <strong>Start</strong> event.</p>
<p><img src="..\Presentations\AI_CAP\Dia4.JPG" alt="Process"/></p>
<p>The AI will fly towards the random 3D point within the patrol zone, using a random speed within the given altitude and speed limits.
Upon arrival at the 3D point, a new random 3D point will be selected within the patrol zone using the given limits.</p>
<p><img src="..\Presentations\AI_CAP\Dia5.JPG" alt="Process"/></p>
<p>This cycle will continue.</p>
<p><img src="..\Presentations\AI_CAP\Dia6.JPG" alt="Process"/></p>
<p>During the patrol, the AI will detect enemy targets, which are reported through the <strong>Detected</strong> event.</p>
<p><img src="..\Presentations\AI_CAP\Dia9.JPG" alt="Process"/></p>
<p>When enemies are detected, the AI will automatically engage the enemy.</p>
<p><img src="..\Presentations\AI_CAP\Dia10.JPG" alt="Process"/></p>
<p>Until a fuel or damage treshold has been reached by the AI, or when the AI is commanded to RTB.
When the fuel treshold has been reached, the airplane will fly towards the nearest friendly airbase and will land.</p>
<p><img src="..\Presentations\AI_CAP\Dia13.JPG" alt="Process"/></p>
<h2>1.1) AI<em>CAP</em>ZONE constructor</h2>
<ul>
<li><a href="##(AI_CAP_ZONE).New">AI<em>CAP</em>ZONE.New</a>(): Creates a new AI<em>CAP</em>ZONE object.</li>
</ul>
<h2>1.2) AI<em>CAP</em>ZONE is a FSM</h2>
<p><img src="..\Presentations\AI_CAP\Dia2.JPG" alt="Process"/></p>
<h3>1.2.1) AI<em>CAP</em>ZONE States</h3>
<ul>
<li><strong>None</strong> ( Group ): The process is not started yet.</li>
<li><strong>Patrolling</strong> ( Group ): The AI is patrolling the Patrol Zone.</li>
<li><strong>Engaging</strong> ( Group ): The AI is engaging the bogeys.</li>
<li><strong>Returning</strong> ( Group ): The AI is returning to Base..</li>
</ul>
<h3>1.2.2) AI<em>CAP</em>ZONE Events</h3>
<ul>
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Start">AI<em>Patrol#AI</em>PATROL_ZONE.Start</a>**: Start the process.</li>
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Route">AI<em>Patrol#AI</em>PATROL_ZONE.Route</a>**: Route the AI to a new random 3D point within the Patrol Zone.</li>
<li>**<a href="##(AI_CAP_ZONE).Engage">AI<em>CAP</em>ZONE.Engage</a>**: Let the AI engage the bogeys.</li>
<li>**<a href="##(AI_CAP_ZONE).Abort">AI<em>CAP</em>ZONE.Abort</a>**: Aborts the engagement and return patrolling in the patrol zone.</li>
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).RTB">AI<em>Patrol#AI</em>PATROL_ZONE.RTB</a>**: Route the AI to the home base.</li>
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Detect">AI<em>Patrol#AI</em>PATROL_ZONE.Detect</a>**: The AI is detecting targets.</li>
<li>**<a href="AI_Patrol.html##(AI_PATROL_ZONE).Detected">AI<em>Patrol#AI</em>PATROL_ZONE.Detected</a>**: The AI has detected new targets.</li>
<li>**<a href="##(AI_CAP_ZONE).Destroy">AI<em>CAP</em>ZONE.Destroy</a>**: The AI has destroyed a bogey <a href="Unit.html">Unit</a>.</li>
<li>**<a href="##(AI_CAP_ZONE).Destroyed">AI<em>CAP</em>ZONE.Destroyed</a>**: The AI has destroyed all bogeys <a href="Unit.html">Unit</a>s assigned in the CAS task.</li>
<li><strong>Status</strong> ( Group ): The AI is checking status (fuel and damage). When the tresholds have been reached, the AI will RTB.</li>
</ul>
<h2>1.3) Set the Range of Engagement</h2>
<p><img src="..\Presentations\AI_CAP\Dia11.JPG" alt="Range"/></p>
<p>An optional range can be set in meters,
that will define when the AI will engage with the detected airborne enemy targets.
The range can be beyond or smaller than the range of the Patrol Zone.
The range is applied at the position of the AI.
Use the method <a href="AI_CAP.html##(AI_CAP_ZONE).SetEngageRange">AI<em>CAP#AI</em>CAP_ZONE.SetEngageRange</a>() to define that range.</p>
<h2>1.4) Set the Zone of Engagement</h2>
<p><img src="..\Presentations\AI_CAP\Dia12.JPG" alt="Zone"/></p>
<p>An optional <a href="Zone.html">Zone</a> can be set,
that will define when the AI will engage with the detected airborne enemy targets.
Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</em>CAP_ZONE.SetEngageZone</a>() to define that Zone.</p>
<hr/>
</dd>
@@ -500,10 +508,7 @@ Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</
<h2><a id="#(AI_Cap)" >Type <code>AI_Cap</code></a></h2>
<h2><a id="#(AI_CAP_ZONE)" >Type <code>AI_CAP_ZONE</code></a></h2>
<p>AI<em>CAP</em>ZONE class</p>
<h3>Field(s)</h3>
<h3>Field(s)</h3>
<dl class="function">
<dt>
@@ -556,20 +561,6 @@ Use the method <a href="AI_Cap.html##(AI_CAP_ZONE).SetEngageZone">AI<em>Cap#AI</
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(AI_CAP_ZONE).ClassName" >
<strong>AI_CAP_ZONE.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">