From 43598314239aa0ec159f0e22111d2eff70816733 Mon Sep 17 00:00:00 2001
From: FlightControl
Date: Sat, 13 May 2017 06:36:13 +0200
Subject: [PATCH] Updates in POSITIONABLE
-- Added :GetBoundingBox()
-- Added :GetHeight()
-- Updated documentation
---
.../Moose/Wrapper/Positionable.lua | 96 ++++++++---
.../bin/TreeHierarchy.csv | 26 +--
docs/Documentation/AI_Patrol.html | 3 +
docs/Documentation/Cargo.html | 2 +-
docs/Documentation/Designate.html | 1 -
docs/Documentation/Detection.html | 2 -
docs/Documentation/Fsm.html | 3 +-
docs/Documentation/Movement.html | 4 +
docs/Documentation/Positionable.html | 151 ++++++++++++------
docs/Documentation/Spawn.html | 2 +-
docs/Documentation/Spot.html | 4 -
docs/Documentation/Task_Cargo.html | 3 +-
docs/Documentation/Zone.html | 8 +-
docs/Documentation/index.html | 12 +-
14 files changed, 218 insertions(+), 99 deletions(-)
diff --git a/Moose Development/Moose/Wrapper/Positionable.lua b/Moose Development/Moose/Wrapper/Positionable.lua
index c815b7bfb..fa554dad9 100644
--- a/Moose Development/Moose/Wrapper/Positionable.lua
+++ b/Moose Development/Moose/Wrapper/Positionable.lua
@@ -1,25 +1,4 @@
---- This module contains the POSITIONABLE class.
---
--- 1) @{Positionable#POSITIONABLE} class, extends @{Identifiable#IDENTIFIABLE}
--- ===========================================================
--- The @{Positionable#POSITIONABLE} class is a wrapper class to handle the POSITIONABLE objects:
---
--- * Support all DCS APIs.
--- * Enhance with POSITIONABLE specific APIs not in the DCS API set.
--- * Manage the "state" of the POSITIONABLE.
---
--- 1.1) POSITIONABLE constructor:
--- ------------------------------
--- The POSITIONABLE class provides the following functions to construct a POSITIONABLE instance:
---
--- * @{Positionable#POSITIONABLE.New}(): Create a POSITIONABLE instance.
---
--- 1.2) POSITIONABLE methods:
--- --------------------------
--- The following methods can be used to identify an measurable object:
---
--- * @{Positionable#POSITIONABLE.GetID}(): Returns the ID of the measurable object.
--- * @{Positionable#POSITIONABLE.GetName}(): Returns the name of the measurable object.
+--- **Wrapper** -- This module contains the POSITIONABLE class.
--
-- ===
--
@@ -31,11 +10,34 @@
-- @field #string PositionableName The name of the measurable.
-- @field Core.Spot#SPOT Spot The laser Spot.
-- @field #number LaserCode The last assigned laser code.
+
+--- # POSITIONABLE class, extends @{Identifiable#IDENTIFIABLE}
+--
+-- The POSITIONABLE class is a wrapper class to handle the POSITIONABLE objects:
+--
+-- * Support all DCS APIs.
+-- * Enhance with POSITIONABLE specific APIs not in the DCS API set.
+-- * Manage the "state" of the POSITIONABLE.
+--
+-- ## POSITIONABLE constructor
+--
+-- The POSITIONABLE class provides the following functions to construct a POSITIONABLE instance:
+--
+-- * @{Positionable#POSITIONABLE.New}(): Create a POSITIONABLE instance.
+--
+-- ## POSITIONABLE methods
+--
+-- The following methods can be used to identify an measurable object:
+--
+-- * @{Positionable#POSITIONABLE.GetID}(): Returns the ID of the measurable object.
+-- * @{Positionable#POSITIONABLE.GetName}(): Returns the name of the measurable object.
+--
+--
+-- @field #POSITIONABLE
POSITIONABLE = {
ClassName = "POSITIONABLE",
PositionableName = "",
}
-
--- A DCSPositionable
-- @type DCSPositionable
-- @field id_ The ID of the controllable in DCS
@@ -207,6 +209,28 @@ function POSITIONABLE:GetVec3()
return nil
end
+
+--- Get the bounding box of the underlying POSITIONABLE DCS Object.
+-- @param #POSITIONABLE self
+-- @return Dcs.DCSTypes#Distance The bounding box of the POSITIONABLE.
+-- @return #nil The POSITIONABLE is not existing or alive.
+function POSITIONABLE:GetBoundingBox() --R2.1
+ self:F2()
+
+ local DCSPositionable = self:GetDCSObject()
+
+ if DCSPositionable then
+ local PositionableDesc = DCSPositionable:getDesc() --Dcs.DCSTypes#Desc
+ if PositionableDesc then
+ local PositionableBox = PositionableDesc.box
+ return PositionableBox
+ end
+ end
+
+ return nil
+end
+
+
--- Returns the altitude of the POSITIONABLE.
-- @param Wrapper.Positionable#POSITIONABLE self
-- @return Dcs.DCSTypes#Distance The altitude of the POSITIONABLE.
@@ -303,6 +327,29 @@ function POSITIONABLE:GetVelocity()
return nil
end
+
+--- Returns the POSITIONABLE height in meters.
+-- @param Wrapper.Positionable#POSITIONABLE self
+-- @return Dcs.DCSTypes#Vec3 The height of the positionable.
+-- @return #nil The POSITIONABLE is not existing or alive.
+function POSITIONABLE:GetHeight() --R2.1
+ self:F2( self.PositionableName )
+
+ local DCSPositionable = self:GetDCSObject()
+
+ if DCSPositionable then
+ local PositionablePosition = DCSPositionable:getPosition()
+ if PositionablePosition then
+ local PositionableHeight = PositionablePosition.p.y
+ self:T2( PositionableHeight )
+ return PositionableHeight
+ end
+ end
+
+ return nil
+end
+
+
--- Returns the POSITIONABLE velocity in km/h.
-- @param Wrapper.Positionable#POSITIONABLE self
-- @return #number The velocity in km/h
@@ -600,3 +647,6 @@ function POSITIONABLE:GetLaserCode() --R2.1
return self.LaserCode
end
+
+
+
diff --git a/Utils/Slate Documentation Generator/bin/TreeHierarchy.csv b/Utils/Slate Documentation Generator/bin/TreeHierarchy.csv
index 11299e7e5..94fc57631 100644
--- a/Utils/Slate Documentation Generator/bin/TreeHierarchy.csv
+++ b/Utils/Slate Documentation Generator/bin/TreeHierarchy.csv
@@ -4,19 +4,19 @@
@K=function, @M=Task_A2G, @N=onafterRouteToTarget, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2G.lua, @C=6536,
@K=function, @M=Task_A2G, @N=onafterRouteToTargets, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_A2G.lua, @C=7408,
@K=function, @M=Task_Cargo, @N=onafterSelectAction, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=10439,
-@K=function, @M=Task_Cargo, @N=OnLeaveWaitingForCommand, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=13082,
-@K=function, @M=Task_Cargo, @N=onafterRouteToPickup, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=13858,
-@K=function, @M=Task_Cargo, @N=onafterArriveAtPickup, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=14477,
-@K=function, @M=Task_Cargo, @N=onafterRouteToDeploy, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=15018,
-@K=function, @M=Task_Cargo, @N=onafterArriveAtDeploy, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=15465,
-@K=function, @M=Task_Cargo, @N=onafterLand, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=15895,
-@K=function, @M=Task_Cargo, @N=onafterLanded, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=16854,
-@K=function, @M=Task_Cargo, @N=onafterPrepareBoarding, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=17620,
-@K=function, @M=Task_Cargo, @N=onafterBoard, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=18080,
-@K=function, @M=Task_Cargo, @N=onafterBoarded, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=19021,
-@K=function, @M=Task_Cargo, @N=onafterPrepareUnBoarding, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=19704,
-@K=function, @M=Task_Cargo, @N=onafterUnBoard, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=20664,
-@K=function, @M=Task_Cargo, @N=onafterUnBoarded, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=21539,
+@K=function, @M=Task_Cargo, @N=OnLeaveWaitingForCommand, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=13084,
+@K=function, @M=Task_Cargo, @N=onafterRouteToPickup, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=13860,
+@K=function, @M=Task_Cargo, @N=onafterArriveAtPickup, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=14479,
+@K=function, @M=Task_Cargo, @N=onafterRouteToDeploy, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=15020,
+@K=function, @M=Task_Cargo, @N=onafterArriveAtDeploy, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=15467,
+@K=function, @M=Task_Cargo, @N=onafterLand, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=15897,
+@K=function, @M=Task_Cargo, @N=onafterLanded, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=16856,
+@K=function, @M=Task_Cargo, @N=onafterPrepareBoarding, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=17622,
+@K=function, @M=Task_Cargo, @N=onafterBoard, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=18082,
+@K=function, @M=Task_Cargo, @N=onafterBoarded, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=19023,
+@K=function, @M=Task_Cargo, @N=onafterPrepareUnBoarding, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=19706,
+@K=function, @M=Task_Cargo, @N=onafterUnBoard, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=20666,
+@K=function, @M=Task_Cargo, @N=onafterUnBoarded, @P=Fsm, @F=../../../MOOSE/Moose Development/Moose\Tasking\Task_CARGO.lua, @C=21541,
@K=function, @M=Designate, @N=OnBeforeLaseOn, @P=DESIGNATE , @F=../../../MOOSE/Moose Development/Moose\Functional\Designate.lua, @C=12232,
@K=function, @M=Designate, @N=OnAfterLaseOn, @P=DESIGNATE , @F=../../../MOOSE/Moose Development/Moose\Functional\Designate.lua, @C=12480,
@K=function, @M=Designate, @N=LaseOn, @P=DESIGNATE , @F=../../../MOOSE/Moose Development/Moose\Functional\Designate.lua, @C=12701,
diff --git a/docs/Documentation/AI_Patrol.html b/docs/Documentation/AI_Patrol.html
index a349f1b11..af53dd252 100644
--- a/docs/Documentation/AI_Patrol.html
+++ b/docs/Documentation/AI_Patrol.html
@@ -953,6 +953,9 @@ Use the method AIPATROLZONE.M
+
+ This table contains the targets detected during patrol.
+
diff --git a/docs/Documentation/Cargo.html b/docs/Documentation/Cargo.html
index 8b2fbef53..849e4255a 100644
--- a/docs/Documentation/Cargo.html
+++ b/docs/Documentation/Cargo.html
@@ -2921,6 +2921,7 @@ The range till cargo will board.
-
+
CARGO_UNIT.CargoCarrier
@@ -3046,7 +3047,6 @@ The range till cargo will board.
-
- #number
CARGO_UNIT.RunCount
diff --git a/docs/Documentation/Designate.html b/docs/Documentation/Designate.html
index d8950ff85..9133c530d 100644
--- a/docs/Documentation/Designate.html
+++ b/docs/Documentation/Designate.html
@@ -892,7 +892,6 @@ function below will use the range 1-7 just in case
-
-
DESIGNATE.LaserCodes
diff --git a/docs/Documentation/Detection.html b/docs/Documentation/Detection.html
index 6770c840c..b60e01592 100644
--- a/docs/Documentation/Detection.html
+++ b/docs/Documentation/Detection.html
@@ -2324,7 +2324,6 @@ The index of the DetectedItem.
-
- #number
DETECTION_BASE.DetectedItemCount
@@ -2338,7 +2337,6 @@ The index of the DetectedItem.
-
- #number
DETECTION_BASE.DetectedItemMax
diff --git a/docs/Documentation/Fsm.html b/docs/Documentation/Fsm.html
index c8c189c3e..9f6365bca 100644
--- a/docs/Documentation/Fsm.html
+++ b/docs/Documentation/Fsm.html
@@ -1624,7 +1624,7 @@ A string defining the start state.
-
- #string
+
FSM._StartState
@@ -1923,6 +1923,7 @@ A string defining the start state.
-
+
FSM.current
diff --git a/docs/Documentation/Movement.html b/docs/Documentation/Movement.html
index 45c002a4d..ab459b6d5 100644
--- a/docs/Documentation/Movement.html
+++ b/docs/Documentation/Movement.html
@@ -215,6 +215,7 @@ on defined intervals (currently every minute).
-
+ #number
MOVEMENT.AliveUnits
@@ -223,6 +224,9 @@ on defined intervals (currently every minute).
+
+
Contains the counter how many units are currently alive
+
diff --git a/docs/Documentation/Positionable.html b/docs/Documentation/Positionable.html
index 196457991..e9d8defe0 100644
--- a/docs/Documentation/Positionable.html
+++ b/docs/Documentation/Positionable.html
@@ -97,34 +97,10 @@
Module Positionable
-
This module contains the POSITIONABLE class.
+
Wrapper -- This module contains the POSITIONABLE class.
-
-
The Positionable#POSITIONABLE class is a wrapper class to handle the POSITIONABLE objects:
-
-
- - Support all DCS APIs.
- - Enhance with POSITIONABLE specific APIs not in the DCS API set.
- - Manage the "state" of the POSITIONABLE.
-
-
-
1.1) POSITIONABLE constructor:
-
The POSITIONABLE class provides the following functions to construct a POSITIONABLE instance:
-
-
-
-
1.2) POSITIONABLE methods:
-
The following methods can be used to identify an measurable object:
-
-
-
@@ -133,7 +109,13 @@
| POSITIONABLE |
+
+ The POSITIONABLE class is a wrapper class to handle the POSITIONABLE objects:
+
+
+ - Support all DCS APIs.
+
|
@@ -150,12 +132,6 @@
- | POSITIONABLE.ClassName |
-
-
- |
-
-
| POSITIONABLE:GetAltitude() |
Returns the altitude of the POSITIONABLE.
@@ -165,6 +141,12 @@
| POSITIONABLE:GetBeacon() |
Create a Radio#BEACON, to allow this POSITIONABLE to broadcast beacon signals
+ |
+
+
+ | POSITIONABLE:GetBoundingBox() |
+
+ Get the bounding box of the underlying POSITIONABLE DCS Object.
|
@@ -177,6 +159,12 @@
| POSITIONABLE:GetHeading() |
Returns the POSITIONABLE heading in degrees.
+ |
+
+
+ | POSITIONABLE:GetHeight() |
+
+ Returns the POSITIONABLE height in meters.
|
@@ -372,6 +360,37 @@
-
+
+
+
The POSITIONABLE class is a wrapper class to handle the POSITIONABLE objects:
+
+
+ - Support all DCS APIs.
+
+
+
+
+ - Enhance with POSITIONABLE specific APIs not in the DCS API set.
+ - Manage the "state" of the POSITIONABLE.
+
+
+POSITIONABLE constructor
+
+The POSITIONABLE class provides the following functions to construct a POSITIONABLE instance:
+
+
+
+POSITIONABLE methods
+
+The following methods can be used to identify an measurable object:
+
+
+
@@ -405,20 +424,6 @@
-
- #string
-
-POSITIONABLE.ClassName
-
-
--
-
-
-
-
-
-
--
-
POSITIONABLE:GetAltitude()
@@ -465,6 +470,34 @@ Radio
-
+
+POSITIONABLE:GetBoundingBox()
+
+
+-
+
+
Get the bounding box of the underlying POSITIONABLE DCS Object.
+
+ Return values
+
+ -
+
+
Dcs.DCSTypes#Distance:
+The bounding box of the POSITIONABLE.
+
+
+ -
+
+
#nil:
+The POSITIONABLE is not existing or alive.
+
+
+
+
+
+
+-
+
POSITIONABLE:GetCoordinate()
@@ -521,6 +554,34 @@ The POSITIONABLE is not existing or alive.
-
+
+POSITIONABLE:GetHeight()
+
+
+-
+
+
Returns the POSITIONABLE height in meters.
+
+ Return values
+
+ -
+
+
Dcs.DCSTypes#Vec3:
+The height of the positionable.
+
+
+ -
+
+
#nil:
+The POSITIONABLE is not existing or alive.
+
+
+
+
+
+
+-
+
POSITIONABLE:GetLaserCode()
diff --git a/docs/Documentation/Spawn.html b/docs/Documentation/Spawn.html
index 81de94c32..5c66f6f52 100644
--- a/docs/Documentation/Spawn.html
+++ b/docs/Documentation/Spawn.html
@@ -2944,7 +2944,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
-
When the first Spawn executes, all the Groups need to be made visible before start.
+ Flag that indicates if all the Groups of the SpawnGroup need to be visible when Spawned.
diff --git a/docs/Documentation/Spot.html b/docs/Documentation/Spot.html
index 3ba35dc6d..5befab5b3 100644
--- a/docs/Documentation/Spot.html
+++ b/docs/Documentation/Spot.html
@@ -763,7 +763,6 @@ true if it is lasing
-
-
SPOT.ScheduleID
@@ -777,7 +776,6 @@ true if it is lasing
-
-
SPOT.SpotIR
@@ -791,7 +789,6 @@ true if it is lasing
-
-
SPOT.SpotLaser
@@ -805,7 +802,6 @@ true if it is lasing
-
-
SPOT.Target
diff --git a/docs/Documentation/Task_Cargo.html b/docs/Documentation/Task_Cargo.html
index 3895f8162..deba519e2 100644
--- a/docs/Documentation/Task_Cargo.html
+++ b/docs/Documentation/Task_Cargo.html
@@ -503,7 +503,7 @@ based on the tasking capabilities defined in Task#TA
-
- Core.Cargo#CARGO_GROUP
+
FSM_PROCESS.Cargo
@@ -517,7 +517,6 @@ based on the tasking capabilities defined in Task#TA
-
-
FSM_PROCESS.DeployZone
diff --git a/docs/Documentation/Zone.html b/docs/Documentation/Zone.html
index f18faf4f3..38eeb7d9b 100644
--- a/docs/Documentation/Zone.html
+++ b/docs/Documentation/Zone.html
@@ -97,10 +97,6 @@
Module Zone
-
Core - ZONE classes define zones within your mission of various forms, with various capabilities.
-
-
-

@@ -109,6 +105,10 @@
- Test if an object is within the zone boundaries.
+
+
+
+
- Provide the zone behaviour. Some zones are static, while others are moveable.
diff --git a/docs/Documentation/index.html b/docs/Documentation/index.html
index a5fc2bf03..ec204dbb4 100644
--- a/docs/Documentation/index.html
+++ b/docs/Documentation/index.html
@@ -433,7 +433,7 @@ are design patterns allowing efficient (long-lasting) processes and workflows.
| Positionable |
- This module contains the POSITIONABLE class.
+Wrapper -- This module contains the POSITIONABLE class.
|
@@ -586,7 +586,15 @@ which are excellent tools to be reused in an OO environment!.
| Zone |
- Core - ZONE classes define zones within your mission of various forms, with various capabilities.
+
+
+
+
+There are essentially two core functions that zones accomodate:
+
+
+ - Test if an object is within the zone boundaries.
+
|