mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
#GROUP
* Fix for GetMaxHeight()
This commit is contained in:
parent
ae6716ac01
commit
c9a91d0683
@ -667,7 +667,10 @@ function UTILS.Round( num, idp )
|
||||
return math.floor( num * mult + 0.5 ) / mult
|
||||
end
|
||||
|
||||
-- porting in Slmod's dostring
|
||||
--- Porting in Slmod's dostring - execute a string as LUA code with error handling.
|
||||
-- @param #string s The code as string to be executed
|
||||
-- @return #boolean success If true, code was successfully executed, else false
|
||||
-- @return #string Outcome Code outcome if successful or error string if not successful
|
||||
function UTILS.DoString( s )
|
||||
local f, err = loadstring( s )
|
||||
if f then
|
||||
@ -677,7 +680,15 @@ function UTILS.DoString( s )
|
||||
end
|
||||
end
|
||||
|
||||
-- Here is a customized version of pairs, which I called spairs because it iterates over the table in a sorted order.
|
||||
--- Here is a customized version of pairs, which I called spairs because it iterates over the table in a sorted order.
|
||||
-- @param #table t The table
|
||||
-- @param #string order (Optional) The sorting function
|
||||
-- @return #string key The index key
|
||||
-- @return #string value The value at the indexed key
|
||||
-- @usage
|
||||
-- for key,value in UTILS.spairs(mytable) do
|
||||
-- -- your code here
|
||||
-- end
|
||||
function UTILS.spairs( t, order )
|
||||
-- collect the keys
|
||||
local keys = {}
|
||||
@ -702,7 +713,16 @@ function UTILS.spairs( t, order )
|
||||
end
|
||||
|
||||
|
||||
-- Here is a customized version of pairs, which I called kpairs because it iterates over the table in a sorted order, based on a function that will determine the keys as reference first.
|
||||
--- Here is a customized version of pairs, which I called kpairs because it iterates over the table in a sorted order, based on a function that will determine the keys as reference first.
|
||||
-- @param #table t The table
|
||||
-- @param #string getkey The function to determine the keys for sorting
|
||||
-- @param #string order (Optional) The sorting function itself
|
||||
-- @return #string key The index key
|
||||
-- @return #string value The value at the indexed key
|
||||
-- @usage
|
||||
-- for key,value in UTILS.kpairs(mytable, getkeyfunc) do
|
||||
-- -- your code here
|
||||
-- end
|
||||
function UTILS.kpairs( t, getkey, order )
|
||||
-- collect the keys
|
||||
local keys = {}
|
||||
@ -727,7 +747,14 @@ function UTILS.kpairs( t, getkey, order )
|
||||
end
|
||||
end
|
||||
|
||||
-- Here is a customized version of pairs, which I called rpairs because it iterates over the table in a random order.
|
||||
--- Here is a customized version of pairs, which I called rpairs because it iterates over the table in a random order.
|
||||
-- @param #table t The table
|
||||
-- @return #string key The index key
|
||||
-- @return #string value The value at the indexed key
|
||||
-- @usage
|
||||
-- for key,value in UTILS.rpairs(mytable) do
|
||||
-- -- your code here
|
||||
-- end
|
||||
function UTILS.rpairs( t )
|
||||
-- collect the keys
|
||||
|
||||
@ -2846,3 +2873,45 @@ function UTILS.IsAnyInTable(Table, Objects, Key)
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
--- Helper function to plot a racetrack on the F10 Map - curtesy of Buur.
|
||||
-- @param Core.Point#COORDINATE Coordinate
|
||||
-- @param #number Altitude Altitude in feet
|
||||
-- @param #number Speed Speed in knots
|
||||
-- @param #number Heading Heading in degrees
|
||||
-- @param #number Leg Leg in NM
|
||||
-- @param #number Coalition Coalition side, e.g. coaltion.side.RED or coaltion.side.BLUE
|
||||
-- @param #table Color Color of the line in RGB, e.g. {1,0,0} for red
|
||||
-- @param #number Alpha Transparency factor, between 0.1 and 1
|
||||
-- @param #number LineType Line type to be used, line type: 0=No line, 1=Solid, 2=Dashed, 3=Dotted, 4=Dot dash, 5=Long dash, 6=Two dash. Default 1=Solid.
|
||||
-- @param #boolean ReadOnly
|
||||
function UTILS.PlotRacetrack(Coordinate, Altitude, Speed, Heading, Leg, Coalition, Color, Alpha, LineType, ReadOnly)
|
||||
local fix_coordinate = Coordinate
|
||||
local altitude = Altitude
|
||||
local speed = Speed or 350
|
||||
local heading = Heading or 270
|
||||
local leg_distance = Leg or 10
|
||||
|
||||
local coalition = Coalition or -1
|
||||
local color = Color or {1,0,0}
|
||||
local alpha = Alpha or 1
|
||||
local lineType = LineType or 1
|
||||
|
||||
|
||||
speed = UTILS.IasToTas(speed, UTILS.FeetToMeters(altitude), oatcorr)
|
||||
|
||||
local turn_radius = 0.0211 * speed -3.01
|
||||
|
||||
local point_two = fix_coordinate:Translate(UTILS.NMToMeters(leg_distance), heading, true, false)
|
||||
local point_three = point_two:Translate(UTILS.NMToMeters(turn_radius)*2, heading - 90, true, false)
|
||||
local point_four = fix_coordinate:Translate(UTILS.NMToMeters(turn_radius)*2, heading - 90, true, false)
|
||||
local circle_center_fix_four = point_two:Translate(UTILS.NMToMeters(turn_radius), heading - 90, true, false)
|
||||
local circle_center_two_three = fix_coordinate:Translate(UTILS.NMToMeters(turn_radius), heading - 90, true, false)
|
||||
|
||||
|
||||
fix_coordinate:LineToAll(point_two, coalition, color, alpha, lineType)
|
||||
point_four:LineToAll(point_three, coalition, color, alpha, lineType)
|
||||
circle_center_fix_four:CircleToAll(UTILS.NMToMeters(turn_radius), coalition, color, alpha, nil, 0, lineType)--, ReadOnly, Text)
|
||||
circle_center_two_three:CircleToAll(UTILS.NMToMeters(turn_radius), coalition, color, alpha, nil, 0, lineType)--, ReadOnly, Text)
|
||||
|
||||
end
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
----- **Wrapper** - GROUP wraps the DCS Class Group objects.
|
||||
--- **Wrapper** - GROUP wraps the DCS Class Group objects.
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
@ -1653,7 +1653,7 @@ function GROUP:GetMinHeight()
|
||||
return nil
|
||||
end
|
||||
|
||||
--- Returns the current maximum height of the group.
|
||||
--- Returns the current maximum height of the group, i.e. the highest unit height of that group.
|
||||
-- Each unit within the group gets evaluated, and the maximum height (= the unit which is the highest elevated) is returned.
|
||||
-- @param #GROUP self
|
||||
-- @return #number Maximum height found.
|
||||
@ -1668,7 +1668,7 @@ function GROUP:GetMaxHeight()
|
||||
for Index, UnitData in pairs( DCSGroup:getUnits() ) do
|
||||
local UnitData = UnitData -- DCS#Unit
|
||||
|
||||
local UnitHeight = UnitData:getPoint()
|
||||
local UnitHeight = UnitData:getPoint().p.y -- Height -- found by @Heavydrinker
|
||||
|
||||
if UnitHeight > GroupHeightMax then
|
||||
GroupHeightMax = UnitHeight
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user