FlightControl_Master 74951f4237 Documentation
2017-10-26 11:17:11 +02:00

2920 lines
74 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="AI_A2A.html">AI_A2A</a></li>
<li><a href="AI_A2A_Cap.html">AI_A2A_Cap</a></li>
<li><a href="AI_A2A_Dispatcher.html">AI_A2A_Dispatcher</a></li>
<li><a href="AI_A2A_GCI.html">AI_A2A_GCI</a></li>
<li><a href="AI_A2A_Patrol.html">AI_A2A_Patrol</a></li>
<li><a href="AI_Bai.html">AI_Bai</a></li>
<li><a href="AI_Balancer.html">AI_Balancer</a></li>
<li><a href="AI_Cap.html">AI_Cap</a></li>
<li><a href="AI_Cas.html">AI_Cas</a></li>
<li><a href="AI_Formation.html">AI_Formation</a></li>
<li><a href="AI_Patrol.html">AI_Patrol</a></li>
<li><a href="ATC_Ground.html">ATC_Ground</a></li>
<li><a href="Account.html">Account</a></li>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="Assign.html">Assign</a></li>
<li><a href="Base.html">Base</a></li>
<li><a href="Cargo.html">Cargo</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="CommandCenter.html">CommandCenter</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
<li><a href="DCSTask.html">DCSTask</a></li>
<li><a href="DCSTypes.html">DCSTypes</a></li>
<li><a href="DCSUnit.html">DCSUnit</a></li>
<li><a href="DCSVec3.html">DCSVec3</a></li>
<li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCSZone.html">DCSZone</a></li>
<li><a href="DCScountry.html">DCScountry</a></li>
<li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DCStrigger.html">DCStrigger</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Designate.html">Designate</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="DetectionManager.html">DetectionManager</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Goal.html">Goal</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Protect.html">Protect</a></li>
<li><a href="Radio.html">Radio</a></li>
<li><a href="Rat.html">Rat</a></li>
<li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li>
<li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li>
<li><a href="Settings.html">Settings</a></li>
<li><a href="Smoke.html">Smoke</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="SpawnStatic.html">SpawnStatic</a></li>
<li><a href="Spot.html">Spot</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="Task.html">Task</a></li>
<li><a href="TaskZoneCapture.html">TaskZoneCapture</a></li>
<li><a href="Task_A2A.html">Task_A2A</a></li>
<li><a href="Task_A2A_Dispatcher.html">Task_A2A_Dispatcher</a></li>
<li><a href="Task_A2G.html">Task_A2G</a></li>
<li><a href="Task_A2G_Dispatcher.html">Task_A2G_Dispatcher</a></li>
<li><a href="Task_Cargo.html">Task_Cargo</a></li>
<li><a href="Task_PICKUP.html">Task_PICKUP</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="UserFlag.html">UserFlag</a></li>
<li><a href="UserSound.html">UserSound</a></li>
<li><a href="Utils.html">Utils</a></li>
<li>Zone</li>
<li><a href="ZoneCaptureCoalition.html">ZoneCaptureCoalition</a></li>
<li><a href="ZoneGoal.html">ZoneGoal</a></li>
<li><a href="ZoneGoalCargo.html">ZoneGoalCargo</a></li>
<li><a href="ZoneGoalCoalition.html">ZoneGoalCoalition</a></li>
<li><a href="env.html">env</a></li>
<li><a href="land.html">land</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Zone</code></h1>
<p><strong>Core</strong> -- ZONE classes define <strong>zones</strong> within your mission of <strong>various forms</strong>, with <strong>various capabilities</strong>.</p>
<p><img src="..\Presentations\ZONE\Dia1.JPG" alt="Banner Image"/></p>
<hr/>
<p>There are essentially two core functions that zones accomodate:</p>
<ul>
<li>Test if an object is within the zone boundaries.</li>
<li>Provide the zone behaviour. Some zones are static, while others are moveable.</li>
</ul>
<p>The object classes are using the zone classes to test the zone boundaries, which can take various forms:</p>
<ul>
<li>Test if completely within the zone.</li>
<li>Test if partly within the zone (for <a href="Group.html##(GROUP)">Group#GROUP</a> objects).</li>
<li>Test if not in the zone.</li>
<li>Distance to the nearest intersecting point of the zone.</li>
<li>Distance to the center of the zone.</li>
<li>...</li>
</ul>
<p>Each of these ZONE classes have a zone name, and specific parameters defining the zone type:</p>
<ul>
<li><a href="##(ZONE_BASE)">#ZONE_BASE</a>: The ZONE_BASE class defining the base for all other zone classes.</li>
<li><a href="##(ZONE_RADIUS)">#ZONE_RADIUS</a>: The ZONE_RADIUS class defined by a zone name, a location and a radius.</li>
<li><a href="##(ZONE)">#ZONE</a>: The ZONE class, defined by the zone name as defined within the Mission Editor.</li>
<li><a href="##(ZONE_UNIT)">#ZONE_UNIT</a>: The ZONE_UNIT class defines by a zone around a <a href="Unit.html##(UNIT)">Unit#UNIT</a> with a radius.</li>
<li><a href="##(ZONE_GROUP)">#ZONE_GROUP</a>: The ZONE_GROUP class defines by a zone around a <a href="Group.html##(GROUP)">Group#GROUP</a> with a radius.</li>
<li><a href="##(ZONE_POLYGON)">#ZONE_POLYGON</a>: The ZONE_POLYGON class defines by a sequence of <a href="Group.html##(GROUP)">Group#GROUP</a> waypoints within the Mission Editor, forming a polygon.</li>
</ul>
<hr/>
<h3>Author: <strong>Sven Van de Velde (FlightControl)</strong></h3>
<h3>Contributions:</h3>
<hr/>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE">ZONE</a></td>
<td class="summary">
<h1>ZONE class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<p>The ZONE class, defined by the zone name as defined within the Mission Editor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE_BASE">ZONE_BASE</a></td>
<td class="summary">
<h1>ZONE_BASE class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>This class is an abstract BASE class for derived classes, and is not meant to be instantiated.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE_GROUP">ZONE_GROUP</a></td>
<td class="summary">
<h1>ZONE_GROUP class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<p>The ZONE_GROUP class defines by a zone around a <a href="Group.html##(GROUP)">Group#GROUP</a> with a radius.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE_POLYGON">ZONE_POLYGON</a></td>
<td class="summary">
<h1>ZONE_POLYGON class, extends <a href="Zone.html##(ZONE_POLYGON_BASE)">Zone#ZONE<em>POLYGON</em>BASE</a></h1>
<p>The ZONE_POLYGON class defined by a sequence of <a href="Group.html##(GROUP)">Group#GROUP</a> waypoints within the Mission Editor, forming a polygon.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE_POLYGON_BASE">ZONE_POLYGON_BASE</a></td>
<td class="summary">
<h1>ZONE<em>POLYGON</em>BASE class, extends <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></h1>
<p>The ZONE<em>POLYGON</em>BASE class defined by a sequence of <a href="Group.html##(GROUP)">Group#GROUP</a> waypoints within the Mission Editor, forming a polygon.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE_RADIUS">ZONE_RADIUS</a></td>
<td class="summary">
<h1>ZONE_RADIUS class, extends <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></h1>
<p>The ZONE_RADIUS class defined by a zone name, a location and a radius.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#ZONE_UNIT">ZONE_UNIT</a></td>
<td class="summary">
<h1>ZONE_UNIT class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<p>The ZONE_UNIT class defined by a zone around a <a href="Unit.html##(UNIT)">Unit#UNIT</a> with a radius.</p>
</td>
</tr>
</table>
<h2><a id="#(ZONE)">Type <code>ZONE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE).New">ZONE:New(ZoneName)</a></td>
<td class="summary">
<p>Constructor of ZONE, taking the zone name.</p>
</td>
</tr>
</table>
<h2><a id="#(ZONE_BASE)">Type <code>ZONE_BASE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).BoundZone">ZONE_BASE:BoundZone()</a></td>
<td class="summary">
<p>Bound the zone boundaries with a tires.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetBoundingSquare">ZONE_BASE:GetBoundingSquare()</a></td>
<td class="summary">
<p>Get the bounding square the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetCoordinate">ZONE_BASE:GetCoordinate()</a></td>
<td class="summary">
<p>Returns a <a href="Point.html##(COORDINATE)">Point#COORDINATE</a> of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetName">ZONE_BASE:GetName()</a></td>
<td class="summary">
<p>Returns the name of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetPointVec2">ZONE_BASE:GetPointVec2(Height)</a></td>
<td class="summary">
<p>Returns a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetPointVec3">ZONE_BASE:GetPointVec3(Height)</a></td>
<td class="summary">
<p>Returns a <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetRandomPointVec2">ZONE_BASE:GetRandomPointVec2()</a></td>
<td class="summary">
<p>Define a random <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetRandomPointVec3">ZONE_BASE:GetRandomPointVec3()</a></td>
<td class="summary">
<p>Define a random <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetRandomVec2">ZONE_BASE:GetRandomVec2()</a></td>
<td class="summary">
<p>Define a random <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetVec2">ZONE_BASE:GetVec2()</a></td>
<td class="summary">
<p>Returns the <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> coordinate of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetVec3">ZONE_BASE:GetVec3(Height)</a></td>
<td class="summary">
<p>Returns the <a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a> of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetZoneMaybe">ZONE_BASE:GetZoneMaybe()</a></td>
<td class="summary">
<p>Get the zone taking into account the randomization probability of a zone to be selected.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).GetZoneProbability">ZONE_BASE:GetZoneProbability()</a></td>
<td class="summary">
<p>Get the randomization probability of a zone to be selected.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).IsPointVec2InZone">ZONE_BASE:IsPointVec2InZone(PointVec2)</a></td>
<td class="summary">
<p>Returns if a PointVec2 is within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).IsPointVec3InZone">ZONE_BASE:IsPointVec3InZone(PointVec3)</a></td>
<td class="summary">
<p>Returns if a PointVec3 is within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).IsVec2InZone">ZONE_BASE:IsVec2InZone(Vec2)</a></td>
<td class="summary">
<p>Returns if a Vec2 is within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).IsVec3InZone">ZONE_BASE:IsVec3InZone(Vec3)</a></td>
<td class="summary">
<p>Returns if a Vec3 is within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).New">ZONE_BASE:New(ZoneName)</a></td>
<td class="summary">
<p>ZONE_BASE constructor</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).SetName">ZONE_BASE:SetName(ZoneName)</a></td>
<td class="summary">
<p>Sets the name of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).SetZoneProbability">ZONE_BASE:SetZoneProbability(ZoneProbability)</a></td>
<td class="summary">
<p>Set the randomization probability of a zone to be selected.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).SmokeZone">ZONE_BASE:SmokeZone(SmokeColor)</a></td>
<td class="summary">
<p>Smokes the zone boundaries in a color.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).ZoneName">ZONE_BASE.ZoneName</a></td>
<td class="summary">
<p>Name of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE).ZoneProbability">ZONE_BASE.ZoneProbability</a></td>
<td class="summary">
<p>A value between 0 and 1. 0 = 0% and 1 = 100% probability.</p>
</td>
</tr>
</table>
<h2><a id="#(ZONE_BASE.BoundingSquare)">Type <code>ZONE_BASE.BoundingSquare</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE.BoundingSquare).x1">ZONE_BASE.BoundingSquare.x1</a></td>
<td class="summary">
<p>The lower x coordinate (left down)</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE.BoundingSquare).x2">ZONE_BASE.BoundingSquare.x2</a></td>
<td class="summary">
<p>The higher x coordinate (right up)</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE.BoundingSquare).y1">ZONE_BASE.BoundingSquare.y1</a></td>
<td class="summary">
<p>The lower y coordinate (left down)</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_BASE.BoundingSquare).y2">ZONE_BASE.BoundingSquare.y2</a></td>
<td class="summary">
<p>The higher y coordinate (right up)</p>
</td>
</tr>
</table>
<h2><a id="#(ZONE_GROUP)">Type <code>ZONE_GROUP</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GROUP).GetRandomPointVec2">ZONE_GROUP:GetRandomPointVec2(inner, outer)</a></td>
<td class="summary">
<p>Returns a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object reflecting a random 2D location within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GROUP).GetRandomVec2">ZONE_GROUP:GetRandomVec2()</a></td>
<td class="summary">
<p>Returns a random location within the zone of the <a href="Group.html">Group</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GROUP).GetVec2">ZONE_GROUP:GetVec2()</a></td>
<td class="summary">
<p>Returns the current location of the <a href="Group.html">Group</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_GROUP).New">ZONE_GROUP:New(ZoneName, ZoneGROUP, Radius)</a></td>
<td class="summary">
<p>Constructor to create a ZONE_GROUP instance, taking the zone name, a zone <a href="Group.html##(GROUP)">Group#GROUP</a> and a radius.</p>
</td>
</tr>
</table>
<h2><a id="#(ZONE_POLYGON)">Type <code>ZONE_POLYGON</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON).New">ZONE_POLYGON:New(ZoneName, ZoneGroup)</a></td>
<td class="summary">
<p>Constructor to create a ZONE_POLYGON instance, taking the zone name and the <a href="Group.html##(GROUP)">Group#GROUP</a> defined within the Mission Editor.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON).NewFromGroupName">ZONE_POLYGON:NewFromGroupName(ZoneName, GroupName)</a></td>
<td class="summary">
<p>Constructor to create a ZONE_POLYGON instance, taking the zone name and the <strong>name</strong> of the <a href="Group.html##(GROUP)">Group#GROUP</a> defined within the Mission Editor.</p>
</td>
</tr>
</table>
<h2><a id="#(ZONE_POLYGON_BASE)">Type <code>ZONE_POLYGON_BASE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).BoundZone">ZONE_POLYGON_BASE:BoundZone(UnBound)</a></td>
<td class="summary">
<p>Smokes the zone boundaries in a color.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).Flush">ZONE_POLYGON_BASE:Flush()</a></td>
<td class="summary">
<p>Flush polygon coordinates as a table in DCS.log.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).GetBoundingSquare">ZONE_POLYGON_BASE:GetBoundingSquare()</a></td>
<td class="summary">
<p>Get the bounding square the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).GetRandomCoordinate">ZONE_POLYGON_BASE:GetRandomCoordinate()</a></td>
<td class="summary">
<p>Return a <a href="Point.html##(COORDINATE)">Point#COORDINATE</a> object representing a random 3D point at landheight within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).GetRandomPointVec2">ZONE_POLYGON_BASE:GetRandomPointVec2()</a></td>
<td class="summary">
<p>Return a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object representing a random 2D point at landheight within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).GetRandomPointVec3">ZONE_POLYGON_BASE:GetRandomPointVec3()</a></td>
<td class="summary">
<p>Return a <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> object representing a random 3D point at landheight within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).GetRandomVec2">ZONE_POLYGON_BASE:GetRandomVec2()</a></td>
<td class="summary">
<p>Define a random <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).GetVec2">ZONE_POLYGON_BASE:GetVec2()</a></td>
<td class="summary">
<p>Returns the center location of the polygon.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).IsVec2InZone">ZONE_POLYGON_BASE:IsVec2InZone(Vec2)</a></td>
<td class="summary">
<p>Returns if a location is within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).New">ZONE_POLYGON_BASE:New(ZoneName, PointsArray)</a></td>
<td class="summary">
<p>Constructor to create a ZONE<em>POLYGON</em>BASE instance, taking the zone name and an array of <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a>, forming a polygon.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_POLYGON_BASE).SmokeZone">ZONE_POLYGON_BASE:SmokeZone(SmokeColor)</a></td>
<td class="summary">
<p>Smokes the zone boundaries in a color.</p>
</td>
</tr>
</table>
<h2><a id="#(ZONE_RADIUS)">Type <code>ZONE_RADIUS</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).BoundZone">ZONE_RADIUS:BoundZone(Points, UnBound, CountryID)</a></td>
<td class="summary">
<p>Bounds the zone with tires.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).CountScannedCoalitions">ZONE_RADIUS:CountScannedCoalitions()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).FlareZone">ZONE_RADIUS:FlareZone(FlareColor, Points, Azimuth, AddHeight)</a></td>
<td class="summary">
<p>Flares the zone boundaries in a color.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).GetRadius">ZONE_RADIUS:GetRadius()</a></td>
<td class="summary">
<p>Returns the radius of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).GetRandomCoordinate">ZONE_RADIUS:GetRandomCoordinate(inner, outer)</a></td>
<td class="summary">
<p>Returns a <a href="Point.html##(COORDINATE)">Point#COORDINATE</a> object reflecting a random 3D location within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).GetRandomPointVec2">ZONE_RADIUS:GetRandomPointVec2(inner, outer)</a></td>
<td class="summary">
<p>Returns a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object reflecting a random 2D location within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).GetRandomPointVec3">ZONE_RADIUS:GetRandomPointVec3(inner, outer)</a></td>
<td class="summary">
<p>Returns a <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> object reflecting a random 3D location within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).GetRandomVec2">ZONE_RADIUS:GetRandomVec2(inner, outer)</a></td>
<td class="summary">
<p>Returns a random Vec2 location within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).GetScannedCoalition">ZONE_RADIUS:GetScannedCoalition(Coalition)</a></td>
<td class="summary">
<p>Get Coalitions of the units in the Zone, or Check if there are units of the given Coalition in the Zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).GetScannedScenery">ZONE_RADIUS:GetScannedScenery()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).GetScannedSceneryType">ZONE_RADIUS:GetScannedSceneryType(SceneryType)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).GetVec2">ZONE_RADIUS:GetVec2()</a></td>
<td class="summary">
<p>Returns the <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).GetVec3">ZONE_RADIUS:GetVec3(Height)</a></td>
<td class="summary">
<p>Returns the <a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a> of the ZONE_RADIUS.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).IsAllInZoneOfCoalition">ZONE_RADIUS:IsAllInZoneOfCoalition(Coalition)</a></td>
<td class="summary">
<p>Is All in Zone of Coalition?</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).IsAllInZoneOfOtherCoalition">ZONE_RADIUS:IsAllInZoneOfOtherCoalition(Coalition)</a></td>
<td class="summary">
<p>Is All in Zone of Other Coalition?</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).IsNoneInZone">ZONE_RADIUS:IsNoneInZone()</a></td>
<td class="summary">
<p>Is None in Zone?</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).IsNoneInZoneOfCoalition">ZONE_RADIUS:IsNoneInZoneOfCoalition(Coalition)</a></td>
<td class="summary">
<p>Is None in Zone of Coalition?</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).IsSomeInZoneOfCoalition">ZONE_RADIUS:IsSomeInZoneOfCoalition(Coalition)</a></td>
<td class="summary">
<p>Is Some in Zone of Coalition?</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).IsVec2InZone">ZONE_RADIUS:IsVec2InZone(Vec2)</a></td>
<td class="summary">
<p>Returns if a location is within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).IsVec3InZone">ZONE_RADIUS:IsVec3InZone(Vec3)</a></td>
<td class="summary">
<p>Returns if a point is within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).New">ZONE_RADIUS:New(ZoneName, Vec2, Radius)</a></td>
<td class="summary">
<p>Constructor of <a href="##(ZONE_RADIUS)">#ZONE_RADIUS</a>, taking the zone name, the zone location and a radius.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).Radius">ZONE_RADIUS.Radius</a></td>
<td class="summary">
<p>The radius of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).Scan">ZONE_RADIUS:Scan(ObjectCategories, Coalition)</a></td>
<td class="summary">
<p>Scan the zone</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).ScanData">ZONE_RADIUS.ScanData</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).SearchZone">ZONE_RADIUS:SearchZone(ObjectCategories, EvaluateFunction)</a></td>
<td class="summary">
<p>Searches the zone</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).SetRadius">ZONE_RADIUS:SetRadius(Radius)</a></td>
<td class="summary">
<p>Sets the radius of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).SetVec2">ZONE_RADIUS:SetVec2(Vec2)</a></td>
<td class="summary">
<p>Sets the <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> of the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).SmokeZone">ZONE_RADIUS:SmokeZone(SmokeColor, Points, AddHeight, AddOffSet, AngleOffset)</a></td>
<td class="summary">
<p>Smokes the zone boundaries in a color.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_RADIUS).Vec2">ZONE_RADIUS.Vec2</a></td>
<td class="summary">
<p>The current location of the zone.</p>
</td>
</tr>
</table>
<h2><a id="#(ZONE_UNIT)">Type <code>ZONE_UNIT</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_UNIT).GetRandomVec2">ZONE_UNIT:GetRandomVec2()</a></td>
<td class="summary">
<p>Returns a random location within the zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_UNIT).GetVec2">ZONE_UNIT:GetVec2()</a></td>
<td class="summary">
<p>Returns the current location of the <a href="Unit.html##(UNIT)">Unit#UNIT</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_UNIT).GetVec3">ZONE_UNIT:GetVec3(Height)</a></td>
<td class="summary">
<p>Returns the <a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a> of the ZONE_UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_UNIT).LastVec2">ZONE_UNIT.LastVec2</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_UNIT).New">ZONE_UNIT:New(ZoneName, ZoneUNIT, Radius)</a></td>
<td class="summary">
<p>Constructor to create a ZONE_UNIT instance, taking the zone name, a zone unit and a radius.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE_UNIT).ZoneUNIT">ZONE_UNIT.ZoneUNIT</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(ZONE)">#ZONE</a></em>
<a id="ZONE" >
<strong>ZONE</strong>
</a>
</dt>
<dd>
<h1>ZONE class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<p>The ZONE class, defined by the zone name as defined within the Mission Editor.</p>
<p>This class implements the inherited functions from <a href="##(ZONE_RADIUS)">#ZONE_RADIUS</a> taking into account the own zone format and properties.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(ZONE_BASE)">#ZONE_BASE</a></em>
<a id="ZONE_BASE" >
<strong>ZONE_BASE</strong>
</a>
</dt>
<dd>
<h1>ZONE_BASE class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>This class is an abstract BASE class for derived classes, and is not meant to be instantiated.</p>
<h2>Each zone has a name:</h2>
<ul>
<li><a href="##(ZONE_BASE).GetName">ZONE_BASE.GetName</a>(): Returns the name of the zone.</li>
<li><a href="##(ZONE_BASE).SetName">ZONE_BASE.SetName</a>(): Sets the name of the zone.</li>
</ul>
<h2>Each zone implements two polymorphic functions defined in <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a>:</h2>
<ul>
<li><a href="##(ZONE_BASE).IsVec2InZone">ZONE_BASE.IsVec2InZone</a>(): Returns if a 2D vector is within the zone.</li>
<li><a href="##(ZONE_BASE).IsVec3InZone">ZONE_BASE.IsVec3InZone</a>(): Returns if a 3D vector is within the zone.</li>
<li><a href="##(ZONE_BASE).IsPointVec2InZone">ZONE_BASE.IsPointVec2InZone</a>(): Returns if a 2D point vector is within the zone.</li>
<li><a href="##(ZONE_BASE).IsPointVec3InZone">ZONE_BASE.IsPointVec3InZone</a>(): Returns if a 3D point vector is within the zone.</li>
</ul>
<h2>A zone has a probability factor that can be set to randomize a selection between zones:</h2>
<ul>
<li><a href="##(ZONE_BASE).SetZoneProbability">ZONE_BASE.SetZoneProbability</a>(): Set the randomization probability of a zone to be selected, taking a value between 0 and 1 ( 0 = 0%, 1 = 100% )</li>
<li><a href="##(ZONE_BASE).GetZoneProbability">ZONE_BASE.GetZoneProbability</a>(): Get the randomization probability of a zone to be selected, passing a value between 0 and 1 ( 0 = 0%, 1 = 100% )</li>
<li><a href="##(ZONE_BASE).GetZoneMaybe">ZONE_BASE.GetZoneMaybe</a>(): Get the zone taking into account the randomization probability. nil is returned if this zone is not a candidate.</li>
</ul>
<h2>A zone manages vectors:</h2>
<ul>
<li><a href="##(ZONE_BASE).GetVec2">ZONE_BASE.GetVec2</a>(): Returns the 2D vector coordinate of the zone.</li>
<li><a href="##(ZONE_BASE).GetVec3">ZONE_BASE.GetVec3</a>(): Returns the 3D vector coordinate of the zone.</li>
<li><a href="##(ZONE_BASE).GetPointVec2">ZONE_BASE.GetPointVec2</a>(): Returns the 2D point vector coordinate of the zone.</li>
<li><a href="##(ZONE_BASE).GetPointVec3">ZONE_BASE.GetPointVec3</a>(): Returns the 3D point vector coordinate of the zone.</li>
<li><a href="##(ZONE_BASE).GetRandomVec2">ZONE_BASE.GetRandomVec2</a>(): Define a random 2D vector within the zone.</li>
<li><a href="##(ZONE_BASE).GetRandomPointVec2">ZONE_BASE.GetRandomPointVec2</a>(): Define a random 2D point vector within the zone.</li>
<li><a href="##(ZONE_BASE).GetRandomPointVec3">ZONE_BASE.GetRandomPointVec3</a>(): Define a random 3D point vector within the zone.</li>
</ul>
<h2>A zone has a bounding square:</h2>
<ul>
<li><a href="##(ZONE_BASE).GetBoundingSquare">ZONE_BASE.GetBoundingSquare</a>(): Get the outer most bounding square of the zone.</li>
</ul>
<h2>A zone can be marked:</h2>
<ul>
<li><a href="##(ZONE_BASE).SmokeZone">ZONE_BASE.SmokeZone</a>(): Smokes the zone boundaries in a color.</li>
<li><a href="##(ZONE_BASE).FlareZone">ZONE_BASE.FlareZone</a>(): Flares the zone boundaries in a color.</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(ZONE_GROUP)">#ZONE_GROUP</a></em>
<a id="ZONE_GROUP" >
<strong>ZONE_GROUP</strong>
</a>
</dt>
<dd>
<h1>ZONE_GROUP class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<p>The ZONE_GROUP class defines by a zone around a <a href="Group.html##(GROUP)">Group#GROUP</a> with a radius.</p>
<p>The current leader of the group defines the center of the zone.
This class implements the inherited functions from <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a> taking into account the own zone format and properties.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(ZONE_POLYGON)">#ZONE_POLYGON</a></em>
<a id="ZONE_POLYGON" >
<strong>ZONE_POLYGON</strong>
</a>
</dt>
<dd>
<h1>ZONE_POLYGON class, extends <a href="Zone.html##(ZONE_POLYGON_BASE)">Zone#ZONE<em>POLYGON</em>BASE</a></h1>
<p>The ZONE_POLYGON class defined by a sequence of <a href="Group.html##(GROUP)">Group#GROUP</a> waypoints within the Mission Editor, forming a polygon.</p>
<p>This class implements the inherited functions from <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a> taking into account the own zone format and properties.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(ZONE_POLYGON_BASE)">#ZONE_POLYGON_BASE</a></em>
<a id="ZONE_POLYGON_BASE" >
<strong>ZONE_POLYGON_BASE</strong>
</a>
</dt>
<dd>
<h1>ZONE<em>POLYGON</em>BASE class, extends <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></h1>
<p>The ZONE<em>POLYGON</em>BASE class defined by a sequence of <a href="Group.html##(GROUP)">Group#GROUP</a> waypoints within the Mission Editor, forming a polygon.</p>
<p>This class implements the inherited functions from <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a> taking into account the own zone format and properties.
This class is an abstract BASE class for derived classes, and is not meant to be instantiated.</p>
<h2>Zone point randomization</h2>
<p>Various functions exist to find random points within the zone.</p>
<ul>
<li><a href="##(ZONE_POLYGON_BASE).GetRandomVec2">ZONE<em>POLYGON</em>BASE.GetRandomVec2</a>(): Gets a random 2D point in the zone.</li>
<li><a href="##(ZONE_POLYGON_BASE).GetRandomPointVec2">ZONE<em>POLYGON</em>BASE.GetRandomPointVec2</a>(): Return a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object representing a random 2D point within the zone.</li>
<li><a href="##(ZONE_POLYGON_BASE).GetRandomPointVec3">ZONE<em>POLYGON</em>BASE.GetRandomPointVec3</a>(): Return a <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> object representing a random 3D point at landheight within the zone.</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(ZONE_RADIUS)">#ZONE_RADIUS</a></em>
<a id="ZONE_RADIUS" >
<strong>ZONE_RADIUS</strong>
</a>
</dt>
<dd>
<h1>ZONE_RADIUS class, extends <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></h1>
<p>The ZONE_RADIUS class defined by a zone name, a location and a radius.</p>
<p>This class implements the inherited functions from Core.Zone#ZONE_BASE taking into account the own zone format and properties.</p>
<h2>ZONE_RADIUS constructor</h2>
<ul>
<li><a href="##(ZONE_RADIUS).New">ZONE_RADIUS.New</a>(): Constructor.</li>
</ul>
<h2>Manage the radius of the zone</h2>
<ul>
<li><a href="##(ZONE_RADIUS).SetRadius">ZONE_RADIUS.SetRadius</a>(): Sets the radius of the zone.</li>
<li><a href="##(ZONE_RADIUS).GetRadius">ZONE_RADIUS.GetRadius</a>(): Returns the radius of the zone.</li>
</ul>
<h2>Manage the location of the zone</h2>
<ul>
<li><a href="##(ZONE_RADIUS).SetVec2">ZONE_RADIUS.SetVec2</a>(): Sets the <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> of the zone.</li>
<li><a href="##(ZONE_RADIUS).GetVec2">ZONE_RADIUS.GetVec2</a>(): Returns the <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> of the zone.</li>
<li><a href="##(ZONE_RADIUS).GetVec3">ZONE_RADIUS.GetVec3</a>(): Returns the <a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a> of the zone, taking an additional height parameter.</li>
</ul>
<h2>Zone point randomization</h2>
<p>Various functions exist to find random points within the zone.</p>
<ul>
<li><a href="##(ZONE_RADIUS).GetRandomVec2">ZONE_RADIUS.GetRandomVec2</a>(): Gets a random 2D point in the zone.</li>
<li><a href="##(ZONE_RADIUS).GetRandomPointVec2">ZONE_RADIUS.GetRandomPointVec2</a>(): Gets a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object representing a random 2D point in the zone.</li>
<li><a href="##(ZONE_RADIUS).GetRandomPointVec3">ZONE_RADIUS.GetRandomPointVec3</a>(): Gets a <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> object representing a random 3D point in the zone. Note that the height of the point is at landheight.</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(ZONE_UNIT)">#ZONE_UNIT</a></em>
<a id="ZONE_UNIT" >
<strong>ZONE_UNIT</strong>
</a>
</dt>
<dd>
<h1>ZONE_UNIT class, extends <a href="Zone.html##(ZONE_RADIUS)">Zone#ZONE_RADIUS</a></h1>
<p>The ZONE_UNIT class defined by a zone around a <a href="Unit.html##(UNIT)">Unit#UNIT</a> with a radius.</p>
<p>This class implements the inherited functions from <a href="##(ZONE_RADIUS)">#ZONE_RADIUS</a> taking into account the own zone format and properties.</p>
</dd>
</dl>
<h2><a id="#(Zone)" >Type <code>Zone</code></a></h2>
<h2><a id="#(ZONE)" >Type <code>ZONE</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(ZONE).New" >
<strong>ZONE:New(ZoneName)</strong>
</a>
</dt>
<dd>
<p>Constructor of ZONE, taking the zone name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string ZoneName </em></code>:
The name of the zone as defined within the mission editor.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE)">#ZONE</a>:</em></p>
</dd>
</dl>
<h2><a id="#(ZONE_BASE)" >Type <code>ZONE_BASE</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).BoundZone" >
<strong>ZONE_BASE:BoundZone()</strong>
</a>
</dt>
<dd>
<p>Bound the zone boundaries with a tires.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).GetBoundingSquare" >
<strong>ZONE_BASE:GetBoundingSquare()</strong>
</a>
</dt>
<dd>
<p>Get the bounding square the zone.</p>
<h3>Return value</h3>
<p><em>#nil:</em>
The bounding square.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).GetCoordinate" >
<strong>ZONE_BASE:GetCoordinate()</strong>
</a>
</dt>
<dd>
<p>Returns a <a href="Point.html##(COORDINATE)">Point#COORDINATE</a> of the zone.</p>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(COORDINATE)">Core.Point#COORDINATE</a>:</em>
The Coordinate of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).GetName" >
<strong>ZONE_BASE:GetName()</strong>
</a>
</dt>
<dd>
<p>Returns the name of the zone.</p>
<h3>Return value</h3>
<p><em>#string:</em>
The name of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).GetPointVec2" >
<strong>ZONE_BASE:GetPointVec2(Height)</strong>
</a>
</dt>
<dd>
<p>Returns a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> of the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> Height </em></code>:
The height to add to the land height where the center of the zone is located.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a>:</em>
The PointVec2 of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).GetPointVec3" >
<strong>ZONE_BASE:GetPointVec3(Height)</strong>
</a>
</dt>
<dd>
<p>Returns a <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> of the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> Height </em></code>:
The height to add to the land height where the center of the zone is located.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(POINT_VEC3)">Core.Point#POINT_VEC3</a>:</em>
The PointVec3 of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).GetRandomPointVec2" >
<strong>ZONE_BASE:GetRandomPointVec2()</strong>
</a>
</dt>
<dd>
<p>Define a random <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> within the zone.</p>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a>:</em>
The PointVec2 coordinates.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).GetRandomPointVec3" >
<strong>ZONE_BASE:GetRandomPointVec3()</strong>
</a>
</dt>
<dd>
<p>Define a random <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> within the zone.</p>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(POINT_VEC3)">Core.Point#POINT_VEC3</a>:</em>
The PointVec3 coordinates.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).GetRandomVec2" >
<strong>ZONE_BASE:GetRandomVec2()</strong>
</a>
</dt>
<dd>
<p>Define a random <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> within the zone.</p>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a>:</em>
The Vec2 coordinates.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).GetVec2" >
<strong>ZONE_BASE:GetVec2()</strong>
</a>
</dt>
<dd>
<p>Returns the <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> coordinate of the zone.</p>
<h3>Return value</h3>
<p><em>#nil:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).GetVec3" >
<strong>ZONE_BASE:GetVec3(Height)</strong>
</a>
</dt>
<dd>
<p>Returns the <a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a> of the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> Height </em></code>:
The height to add to the land height where the center of the zone is located.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec3)">Dcs.DCSTypes#Vec3</a>:</em>
The Vec3 of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).GetZoneMaybe" >
<strong>ZONE_BASE:GetZoneMaybe()</strong>
</a>
</dt>
<dd>
<p>Get the zone taking into account the randomization probability of a zone to be selected.</p>
<h3>Return values</h3>
<ol>
<li>
<p><em><a href="##(ZONE_BASE)">#ZONE_BASE</a>:</em>
The zone is selected taking into account the randomization probability factor.</p>
</li>
<li>
<p><em>#nil:</em>
The zone is not selected taking into account the randomization probability factor.</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).GetZoneProbability" >
<strong>ZONE_BASE:GetZoneProbability()</strong>
</a>
</dt>
<dd>
<p>Get the randomization probability of a zone to be selected.</p>
<h3>Return value</h3>
<p><em>#number:</em>
A value between 0 and 1. 0 = 0% and 1 = 100% probability.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).IsPointVec2InZone" >
<strong>ZONE_BASE:IsPointVec2InZone(PointVec2)</strong>
</a>
</dt>
<dd>
<p>Returns if a PointVec2 is within the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a> PointVec2 </em></code>:
The PointVec2 to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if the PointVec2 is within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).IsPointVec3InZone" >
<strong>ZONE_BASE:IsPointVec3InZone(PointVec3)</strong>
</a>
</dt>
<dd>
<p>Returns if a PointVec3 is within the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Point.html##(POINT_VEC3)">Core.Point#POINT_VEC3</a> PointVec3 </em></code>:
The PointVec3 to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if the PointVec3 is within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).IsVec2InZone" >
<strong>ZONE_BASE:IsVec2InZone(Vec2)</strong>
</a>
</dt>
<dd>
<p>Returns if a Vec2 is within the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a> Vec2 </em></code>:
The Vec2 to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if the Vec2 is within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).IsVec3InZone" >
<strong>ZONE_BASE:IsVec3InZone(Vec3)</strong>
</a>
</dt>
<dd>
<p>Returns if a Vec3 is within the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Vec3)">Dcs.DCSTypes#Vec3</a> Vec3 </em></code>:
The point to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if the Vec3 is within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).New" >
<strong>ZONE_BASE:New(ZoneName)</strong>
</a>
</dt>
<dd>
<p>ZONE_BASE constructor</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string ZoneName </em></code>:
Name of the zone.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_BASE)">#ZONE_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).SetName" >
<strong>ZONE_BASE:SetName(ZoneName)</strong>
</a>
</dt>
<dd>
<p>Sets the name of the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string ZoneName </em></code>:
The name of the zone.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_BASE)">#ZONE_BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).SetZoneProbability" >
<strong>ZONE_BASE:SetZoneProbability(ZoneProbability)</strong>
</a>
</dt>
<dd>
<p>Set the randomization probability of a zone to be selected.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> ZoneProbability </em></code>:
A value between 0 and 1. 0 = 0% and 1 = 100% probability.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_BASE).SmokeZone" >
<strong>ZONE_BASE:SmokeZone(SmokeColor)</strong>
</a>
</dt>
<dd>
<p>Smokes the zone boundaries in a color.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Utilities.Utils.html##(SMOKECOLOR)">Utilities.Utils#SMOKECOLOR</a> SmokeColor </em></code>:
The smoke color.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(ZONE_BASE).ZoneName" >
<strong>ZONE_BASE.ZoneName</strong>
</a>
</dt>
<dd>
<p>Name of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(ZONE_BASE).ZoneProbability" >
<strong>ZONE_BASE.ZoneProbability</strong>
</a>
</dt>
<dd>
<p>A value between 0 and 1. 0 = 0% and 1 = 100% probability.</p>
</dd>
</dl>
<h2><a id="#(ZONE_BASE.BoundingSquare)" >Type <code>ZONE_BASE.BoundingSquare</code></a></h2>
<p>The ZONE_BASE.BoundingSquare</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a></em>
<a id="#(ZONE_BASE.BoundingSquare).x1" >
<strong>ZONE_BASE.BoundingSquare.x1</strong>
</a>
</dt>
<dd>
<p>The lower x coordinate (left down)</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a></em>
<a id="#(ZONE_BASE.BoundingSquare).x2" >
<strong>ZONE_BASE.BoundingSquare.x2</strong>
</a>
</dt>
<dd>
<p>The higher x coordinate (right up)</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a></em>
<a id="#(ZONE_BASE.BoundingSquare).y1" >
<strong>ZONE_BASE.BoundingSquare.y1</strong>
</a>
</dt>
<dd>
<p>The lower y coordinate (left down)</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a></em>
<a id="#(ZONE_BASE.BoundingSquare).y2" >
<strong>ZONE_BASE.BoundingSquare.y2</strong>
</a>
</dt>
<dd>
<p>The higher y coordinate (right up)</p>
</dd>
</dl>
<h2><a id="#(ZONE_GROUP)" >Type <code>ZONE_GROUP</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(ZONE_GROUP).GetRandomPointVec2" >
<strong>ZONE_GROUP:GetRandomPointVec2(inner, outer)</strong>
</a>
</dt>
<dd>
<p>Returns a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object reflecting a random 2D location within the zone.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number inner </em></code>:
(optional) Minimal distance from the center of the zone. Default is 0.</p>
</li>
<li>
<p><code><em>#number outer </em></code>:
(optional) Maximal distance from the outer edge of the zone. Default is the radius of the zone.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a>:</em>
The <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object reflecting the random 3D location within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GROUP).GetRandomVec2" >
<strong>ZONE_GROUP:GetRandomVec2()</strong>
</a>
</dt>
<dd>
<p>Returns a random location within the zone of the <a href="Group.html">Group</a>.</p>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a>:</em>
The random location of the zone based on the <a href="Group.html">Group</a> location.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GROUP).GetVec2" >
<strong>ZONE_GROUP:GetVec2()</strong>
</a>
</dt>
<dd>
<p>Returns the current location of the <a href="Group.html">Group</a>.</p>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a>:</em>
The location of the zone based on the <a href="Group.html">Group</a> location.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_GROUP).New" >
<strong>ZONE_GROUP:New(ZoneName, ZoneGROUP, Radius)</strong>
</a>
</dt>
<dd>
<p>Constructor to create a ZONE_GROUP instance, taking the zone name, a zone <a href="Group.html##(GROUP)">Group#GROUP</a> and a radius.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string ZoneName </em></code>:
Name of the zone.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> ZoneGROUP </em></code>:
The <a href="Group.html">Group</a> as the center of the zone.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> Radius </em></code>:
The radius of the zone.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_GROUP)">#ZONE_GROUP</a>:</em>
self</p>
</dd>
</dl>
<h2><a id="#(ZONE_POLYGON)" >Type <code>ZONE_POLYGON</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON).New" >
<strong>ZONE_POLYGON:New(ZoneName, ZoneGroup)</strong>
</a>
</dt>
<dd>
<p>Constructor to create a ZONE_POLYGON instance, taking the zone name and the <a href="Group.html##(GROUP)">Group#GROUP</a> defined within the Mission Editor.</p>
<p>The <a href="Group.html##(GROUP)">Group#GROUP</a> waypoints define the polygon corners. The first and the last point are automatically connected by ZONE_POLYGON.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string ZoneName </em></code>:
Name of the zone.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> ZoneGroup </em></code>:
The GROUP waypoints as defined within the Mission Editor define the polygon shape.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_POLYGON)">#ZONE_POLYGON</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON).NewFromGroupName" >
<strong>ZONE_POLYGON:NewFromGroupName(ZoneName, GroupName)</strong>
</a>
</dt>
<dd>
<p>Constructor to create a ZONE_POLYGON instance, taking the zone name and the <strong>name</strong> of the <a href="Group.html##(GROUP)">Group#GROUP</a> defined within the Mission Editor.</p>
<p>The <a href="Group.html##(GROUP)">Group#GROUP</a> waypoints define the polygon corners. The first and the last point are automatically connected by ZONE_POLYGON.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string ZoneName </em></code>:
Name of the zone.</p>
</li>
<li>
<p><code><em>#string GroupName </em></code>:
The group name of the GROUP defining the waypoints within the Mission Editor to define the polygon shape.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_POLYGON)">#ZONE_POLYGON</a>:</em>
self</p>
</dd>
</dl>
<h2><a id="#(ZONE_POLYGON_BASE)" >Type <code>ZONE_POLYGON_BASE</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).BoundZone" >
<strong>ZONE_POLYGON_BASE:BoundZone(UnBound)</strong>
</a>
</dt>
<dd>
<p>Smokes the zone boundaries in a color.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#boolean UnBound </em></code>:
If true, the tyres will be destroyed.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_POLYGON_BASE)">#ZONE<em>POLYGON</em>BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).Flush" >
<strong>ZONE_POLYGON_BASE:Flush()</strong>
</a>
</dt>
<dd>
<p>Flush polygon coordinates as a table in DCS.log.</p>
<h3>Return value</h3>
<p><em><a href="##(ZONE_POLYGON_BASE)">#ZONE<em>POLYGON</em>BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).GetBoundingSquare" >
<strong>ZONE_POLYGON_BASE:GetBoundingSquare()</strong>
</a>
</dt>
<dd>
<p>Get the bounding square the zone.</p>
<h3>Return value</h3>
<p><em><a href="##(ZONE_POLYGON_BASE.BoundingSquare)">#ZONE<em>POLYGON</em>BASE.BoundingSquare</a>:</em>
The bounding square.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).GetRandomCoordinate" >
<strong>ZONE_POLYGON_BASE:GetRandomCoordinate()</strong>
</a>
</dt>
<dd>
<p>Return a <a href="Point.html##(COORDINATE)">Point#COORDINATE</a> object representing a random 3D point at landheight within the zone.</p>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(COORDINATE)">Core.Point#COORDINATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).GetRandomPointVec2" >
<strong>ZONE_POLYGON_BASE:GetRandomPointVec2()</strong>
</a>
</dt>
<dd>
<p>Return a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object representing a random 2D point at landheight within the zone.</p>
<h3>Return value</h3>
<p><a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).GetRandomPointVec3" >
<strong>ZONE_POLYGON_BASE:GetRandomPointVec3()</strong>
</a>
</dt>
<dd>
<p>Return a <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> object representing a random 3D point at landheight within the zone.</p>
<h3>Return value</h3>
<p><a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).GetRandomVec2" >
<strong>ZONE_POLYGON_BASE:GetRandomVec2()</strong>
</a>
</dt>
<dd>
<p>Define a random <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> within the zone.</p>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a>:</em>
The Vec2 coordinate.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).GetVec2" >
<strong>ZONE_POLYGON_BASE:GetVec2()</strong>
</a>
</dt>
<dd>
<p>Returns the center location of the polygon.</p>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a>:</em>
The location of the zone based on the <a href="Group.html">Group</a> location.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).IsVec2InZone" >
<strong>ZONE_POLYGON_BASE:IsVec2InZone(Vec2)</strong>
</a>
</dt>
<dd>
<p>Returns if a location is within the zone.</p>
<p>Source learned and taken from: https://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a> Vec2 </em></code>:
The location to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if the location is within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).New" >
<strong>ZONE_POLYGON_BASE:New(ZoneName, PointsArray)</strong>
</a>
</dt>
<dd>
<p>Constructor to create a ZONE<em>POLYGON</em>BASE instance, taking the zone name and an array of <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a>, forming a polygon.</p>
<p>The <a href="Group.html##(GROUP)">Group#GROUP</a> waypoints define the polygon corners. The first and the last point are automatically connected.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string ZoneName </em></code>:
Name of the zone.</p>
</li>
<li>
<p><code><em><a href="##(ZONE_POLYGON_BASE.ListVec2)">#ZONE<em>POLYGON</em>BASE.ListVec2</a> PointsArray </em></code>:
An array of <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a>, forming a polygon..</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_POLYGON_BASE)">#ZONE<em>POLYGON</em>BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_POLYGON_BASE).SmokeZone" >
<strong>ZONE_POLYGON_BASE:SmokeZone(SmokeColor)</strong>
</a>
</dt>
<dd>
<p>Smokes the zone boundaries in a color.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Utilities.Utils.html##(SMOKECOLOR)">Utilities.Utils#SMOKECOLOR</a> SmokeColor </em></code>:
The smoke color.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_POLYGON_BASE)">#ZONE<em>POLYGON</em>BASE</a>:</em>
self</p>
</dd>
</dl>
<h2><a id="#(ZONE_POLYGON_BASE.BoundingSquare)" >Type <code>ZONE_POLYGON_BASE.BoundingSquare</code></a></h2>
<h2><a id="#(ZONE_POLYGON_BASE.ListVec2)" >Type <code>ZONE_POLYGON_BASE.ListVec2</code></a></h2>
<p>A points array.</p>
<h2><a id="#(ZONE_RADIUS)" >Type <code>ZONE_RADIUS</code></a></h2>
<p>The ZONE_RADIUS class, defined by a zone name, a location and a radius.</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).BoundZone" >
<strong>ZONE_RADIUS:BoundZone(Points, UnBound, CountryID)</strong>
</a>
</dt>
<dd>
<p>Bounds the zone with tires.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number Points </em></code>:
(optional) The amount of points in the circle.</p>
</li>
<li>
<p><code><em>#boolean UnBound </em></code>:
If true the tyres will be destroyed.</p>
</li>
<li>
<p><code><em> CountryID </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_RADIUS)">#ZONE_RADIUS</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).CountScannedCoalitions" >
<strong>ZONE_RADIUS:CountScannedCoalitions()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).FlareZone" >
<strong>ZONE_RADIUS:FlareZone(FlareColor, Points, Azimuth, AddHeight)</strong>
</a>
</dt>
<dd>
<p>Flares the zone boundaries in a color.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Utilities.Utils.html##(FLARECOLOR)">Utilities.Utils#FLARECOLOR</a> FlareColor </em></code>:
The flare color.</p>
</li>
<li>
<p><code><em>#number Points </em></code>:
(optional) The amount of points in the circle.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Azimuth)">Dcs.DCSTypes#Azimuth</a> Azimuth </em></code>:
(optional) Azimuth The azimuth of the flare.</p>
</li>
<li>
<p><code><em>#number AddHeight </em></code>:
(optional) The height to be added for the smoke.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_RADIUS)">#ZONE_RADIUS</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).GetRadius" >
<strong>ZONE_RADIUS:GetRadius()</strong>
</a>
</dt>
<dd>
<p>Returns the radius of the zone.</p>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a>:</em>
The radius of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).GetRandomCoordinate" >
<strong>ZONE_RADIUS:GetRandomCoordinate(inner, outer)</strong>
</a>
</dt>
<dd>
<p>Returns a <a href="Point.html##(COORDINATE)">Point#COORDINATE</a> object reflecting a random 3D location within the zone.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number inner </em></code>:
(optional) Minimal distance from the center of the zone. Default is 0.</p>
</li>
<li>
<p><code><em>#number outer </em></code>:
(optional) Maximal distance from the outer edge of the zone. Default is the radius of the zone.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(COORDINATE)">Core.Point#COORDINATE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).GetRandomPointVec2" >
<strong>ZONE_RADIUS:GetRandomPointVec2(inner, outer)</strong>
</a>
</dt>
<dd>
<p>Returns a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object reflecting a random 2D location within the zone.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number inner </em></code>:
(optional) Minimal distance from the center of the zone. Default is 0.</p>
</li>
<li>
<p><code><em>#number outer </em></code>:
(optional) Maximal distance from the outer edge of the zone. Default is the radius of the zone.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(POINT_VEC2)">Core.Point#POINT_VEC2</a>:</em>
The <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object reflecting the random 3D location within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).GetRandomPointVec3" >
<strong>ZONE_RADIUS:GetRandomPointVec3(inner, outer)</strong>
</a>
</dt>
<dd>
<p>Returns a <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> object reflecting a random 3D location within the zone.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number inner </em></code>:
(optional) Minimal distance from the center of the zone. Default is 0.</p>
</li>
<li>
<p><code><em>#number outer </em></code>:
(optional) Maximal distance from the outer edge of the zone. Default is the radius of the zone.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Core.Point.html##(POINT_VEC3)">Core.Point#POINT_VEC3</a>:</em>
The <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> object reflecting the random 3D location within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).GetRandomVec2" >
<strong>ZONE_RADIUS:GetRandomVec2(inner, outer)</strong>
</a>
</dt>
<dd>
<p>Returns a random Vec2 location within the zone.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number inner </em></code>:
(optional) Minimal distance from the center of the zone. Default is 0.</p>
</li>
<li>
<p><code><em>#number outer </em></code>:
(optional) Maximal distance from the outer edge of the zone. Default is the radius of the zone.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a>:</em>
The random location within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).GetScannedCoalition" >
<strong>ZONE_RADIUS:GetScannedCoalition(Coalition)</strong>
</a>
</dt>
<dd>
<p>Get Coalitions of the units in the Zone, or Check if there are units of the given Coalition in the Zone.</p>
<p>Returns nil if there are none ot two Coalitions in the zone!
Returns one Coalition if there are only Units of one Coalition in the Zone.
Returns the Coalition for the given Coalition if there are units of the Coalition in the Zone</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Coalition </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#table:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).GetScannedScenery" >
<strong>ZONE_RADIUS:GetScannedScenery()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).GetScannedSceneryType" >
<strong>ZONE_RADIUS:GetScannedSceneryType(SceneryType)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> SceneryType </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).GetVec2" >
<strong>ZONE_RADIUS:GetVec2()</strong>
</a>
</dt>
<dd>
<p>Returns the <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> of the zone.</p>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a>:</em>
The location of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).GetVec3" >
<strong>ZONE_RADIUS:GetVec3(Height)</strong>
</a>
</dt>
<dd>
<p>Returns the <a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a> of the ZONE_RADIUS.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> Height </em></code>:
The height to add to the land height where the center of the zone is located.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec3)">Dcs.DCSTypes#Vec3</a>:</em>
The point of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).IsAllInZoneOfCoalition" >
<strong>ZONE_RADIUS:IsAllInZoneOfCoalition(Coalition)</strong>
</a>
</dt>
<dd>
<p>Is All in Zone of Coalition?</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Coalition </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).IsAllInZoneOfOtherCoalition" >
<strong>ZONE_RADIUS:IsAllInZoneOfOtherCoalition(Coalition)</strong>
</a>
</dt>
<dd>
<p>Is All in Zone of Other Coalition?</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Coalition </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).IsNoneInZone" >
<strong>ZONE_RADIUS:IsNoneInZone()</strong>
</a>
</dt>
<dd>
<p>Is None in Zone?</p>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).IsNoneInZoneOfCoalition" >
<strong>ZONE_RADIUS:IsNoneInZoneOfCoalition(Coalition)</strong>
</a>
</dt>
<dd>
<p>Is None in Zone of Coalition?</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Coalition </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).IsSomeInZoneOfCoalition" >
<strong>ZONE_RADIUS:IsSomeInZoneOfCoalition(Coalition)</strong>
</a>
</dt>
<dd>
<p>Is Some in Zone of Coalition?</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Coalition </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).IsVec2InZone" >
<strong>ZONE_RADIUS:IsVec2InZone(Vec2)</strong>
</a>
</dt>
<dd>
<p>Returns if a location is within the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a> Vec2 </em></code>:
The location to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if the location is within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).IsVec3InZone" >
<strong>ZONE_RADIUS:IsVec3InZone(Vec3)</strong>
</a>
</dt>
<dd>
<p>Returns if a point is within the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Vec3)">Dcs.DCSTypes#Vec3</a> Vec3 </em></code>:
The point to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if the point is within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).New" >
<strong>ZONE_RADIUS:New(ZoneName, Vec2, Radius)</strong>
</a>
</dt>
<dd>
<p>Constructor of <a href="##(ZONE_RADIUS)">#ZONE_RADIUS</a>, taking the zone name, the zone location and a radius.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string ZoneName </em></code>:
Name of the zone.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a> Vec2 </em></code>:
The location of the zone.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> Radius </em></code>:
The radius of the zone.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_RADIUS)">#ZONE_RADIUS</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a></em>
<a id="#(ZONE_RADIUS).Radius" >
<strong>ZONE_RADIUS.Radius</strong>
</a>
</dt>
<dd>
<p>The radius of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).Scan" >
<strong>ZONE_RADIUS:Scan(ObjectCategories, Coalition)</strong>
</a>
</dt>
<dd>
<p>Scan the zone</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> ObjectCategories </em></code>: </p>
</li>
<li>
<p><code><em> Coalition </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ZONE_RADIUS).ScanData" >
<strong>ZONE_RADIUS.ScanData</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).SearchZone" >
<strong>ZONE_RADIUS:SearchZone(ObjectCategories, EvaluateFunction)</strong>
</a>
</dt>
<dd>
<p>Searches the zone</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> ObjectCategories </em></code>:
A list of categories, which are members of Object.Category</p>
</li>
<li>
<p><code><em> EvaluateFunction </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).SetRadius" >
<strong>ZONE_RADIUS:SetRadius(Radius)</strong>
</a>
</dt>
<dd>
<p>Sets the radius of the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> Radius </em></code>:
The radius of the zone.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a>:</em>
The radius of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).SetVec2" >
<strong>ZONE_RADIUS:SetVec2(Vec2)</strong>
</a>
</dt>
<dd>
<p>Sets the <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> of the zone.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a> Vec2 </em></code>:
The new location of the zone.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a>:</em>
The new location of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_RADIUS).SmokeZone" >
<strong>ZONE_RADIUS:SmokeZone(SmokeColor, Points, AddHeight, AddOffSet, AngleOffset)</strong>
</a>
</dt>
<dd>
<p>Smokes the zone boundaries in a color.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Utilities.Utils.html##(SMOKECOLOR)">Utilities.Utils#SMOKECOLOR</a> SmokeColor </em></code>:
The smoke color.</p>
</li>
<li>
<p><code><em>#number Points </em></code>:
(optional) The amount of points in the circle.</p>
</li>
<li>
<p><code><em>#number AddHeight </em></code>:
(optional) The height to be added for the smoke.</p>
</li>
<li>
<p><code><em>#number AddOffSet </em></code>:
(optional) The angle to be added for the smoking start position.</p>
</li>
<li>
<p><code><em> AngleOffset </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_RADIUS)">#ZONE_RADIUS</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a></em>
<a id="#(ZONE_RADIUS).Vec2" >
<strong>ZONE_RADIUS.Vec2</strong>
</a>
</dt>
<dd>
<p>The current location of the zone.</p>
</dd>
</dl>
<h2><a id="#(ZONE_UNIT)" >Type <code>ZONE_UNIT</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(ZONE_UNIT).GetRandomVec2" >
<strong>ZONE_UNIT:GetRandomVec2()</strong>
</a>
</dt>
<dd>
<p>Returns a random location within the zone.</p>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a>:</em>
The random location within the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_UNIT).GetVec2" >
<strong>ZONE_UNIT:GetVec2()</strong>
</a>
</dt>
<dd>
<p>Returns the current location of the <a href="Unit.html##(UNIT)">Unit#UNIT</a>.</p>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec2)">Dcs.DCSTypes#Vec2</a>:</em>
The location of the zone based on the <a href="Unit.html##(UNIT)">Unit#UNIT</a>location.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_UNIT).GetVec3" >
<strong>ZONE_UNIT:GetVec3(Height)</strong>
</a>
</dt>
<dd>
<p>Returns the <a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a> of the ZONE_UNIT.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> Height </em></code>:
The height to add to the land height where the center of the zone is located.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Dcs.DCSTypes.html##(Vec3)">Dcs.DCSTypes#Vec3</a>:</em>
The point of the zone.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ZONE_UNIT).LastVec2" >
<strong>ZONE_UNIT.LastVec2</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ZONE_UNIT).New" >
<strong>ZONE_UNIT:New(ZoneName, ZoneUNIT, Radius)</strong>
</a>
</dt>
<dd>
<p>Constructor to create a ZONE_UNIT instance, taking the zone name, a zone unit and a radius.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string ZoneName </em></code>:
Name of the zone.</p>
</li>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> ZoneUNIT </em></code>:
The unit as the center of the zone.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> Radius </em></code>:
The radius of the zone.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ZONE_UNIT)">#ZONE_UNIT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a></em>
<a id="#(ZONE_UNIT).ZoneUNIT" >
<strong>ZONE_UNIT.ZoneUNIT</strong>
</a>
</dt>
<dd>
</dd>
</dl>
</div>
</div>
</body>
</html>