mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
#GROUP
* Added function to obtain *average* Vec3 of the GROUP * Added function to obtain *average* Coordinate of the GROUP #TARGET * Make use of new coordinate function in GROUP
This commit is contained in:
commit
cefb5d98f0
@ -1141,7 +1141,7 @@ function TARGET:GetTargetVec3(Target)
|
|||||||
local object=Target.Object --Wrapper.Group#GROUP
|
local object=Target.Object --Wrapper.Group#GROUP
|
||||||
|
|
||||||
if object and object:IsAlive() then
|
if object and object:IsAlive() then
|
||||||
local vec3=object:GetVec3()
|
local vec3=object:GetAverageVec3()
|
||||||
|
|
||||||
if vec3 then
|
if vec3 then
|
||||||
return vec3
|
return vec3
|
||||||
|
|||||||
@ -1019,9 +1019,9 @@ function GROUP:GetVec2()
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Returns the current Vec3 vector of the first DCS Unit in the GROUP.
|
--- Returns the current Vec3 vector of the first Unit in the GROUP.
|
||||||
-- @param #GROUP self
|
-- @param #GROUP self
|
||||||
-- @return DCS#Vec3 Current Vec3 of the first DCS Unit of the GROUP.
|
-- @return DCS#Vec3 Current Vec3 of the first Unit of the GROUP or nil if cannot be found.
|
||||||
function GROUP:GetVec3()
|
function GROUP:GetVec3()
|
||||||
|
|
||||||
-- Get first unit.
|
-- Get first unit.
|
||||||
@ -1036,6 +1036,37 @@ function GROUP:GetVec3()
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Returns the average Vec3 vector of the Units in the GROUP.
|
||||||
|
-- @param #GROUP self
|
||||||
|
-- @return DCS#Vec3 Current Vec3 of the GROUP or nil if cannot be found.
|
||||||
|
function GROUP:GetAverageVec3()
|
||||||
|
local units = self:GetUnits() or {}
|
||||||
|
-- Init.
|
||||||
|
local x=0 ; local y=0 ; local z=0 ; local n=0
|
||||||
|
-- Loop over all units.
|
||||||
|
for _,unit in pairs(units) do
|
||||||
|
local vec3=nil --DCS#Vec3
|
||||||
|
if unit and unit:IsAlive() then
|
||||||
|
vec3 = unit:GetVec3()
|
||||||
|
end
|
||||||
|
if vec3 then
|
||||||
|
-- Sum up posits.
|
||||||
|
x=x+vec3.x
|
||||||
|
y=y+vec3.y
|
||||||
|
z=z+vec3.z
|
||||||
|
-- Increase counter.
|
||||||
|
n=n+1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if n>0 then
|
||||||
|
-- Average.
|
||||||
|
local Vec3={x=x/n, y=y/n, z=z/n} --DCS#Vec3
|
||||||
|
return Vec3
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
--- Returns a POINT_VEC2 object indicating the point in 2D of the first UNIT of the GROUP within the mission.
|
--- Returns a POINT_VEC2 object indicating the point in 2D of the first UNIT of the GROUP within the mission.
|
||||||
-- @param #GROUP self
|
-- @param #GROUP self
|
||||||
-- @return Core.Point#POINT_VEC2 The 2D point vector of the first DCS Unit of the GROUP.
|
-- @return Core.Point#POINT_VEC2 The 2D point vector of the first DCS Unit of the GROUP.
|
||||||
@ -1056,6 +1087,21 @@ function GROUP:GetPointVec2()
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Returns a COORDINATE object indicating the average position of the GROUP within the mission.
|
||||||
|
-- @param Wrapper.Group#GROUP self
|
||||||
|
-- @return Core.Point#COORDINATE The COORDINATE of the GROUP.
|
||||||
|
function GROUP:GetAverageCoordinate()
|
||||||
|
local vec3 = self:GetAverageVec3()
|
||||||
|
if vec3 then
|
||||||
|
local coord = COORDINATE:NewFromVec3(vec3)
|
||||||
|
local Heading = self:GetHeading()
|
||||||
|
coord.Heading = Heading
|
||||||
|
else
|
||||||
|
BASE:E( { "Cannot GetAverageCoordinate", Group = self, Alive = self:IsAlive() } )
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
--- Returns a COORDINATE object indicating the point of the first UNIT of the GROUP within the mission.
|
--- Returns a COORDINATE object indicating the point of the first UNIT of the GROUP within the mission.
|
||||||
-- @param Wrapper.Group#GROUP self
|
-- @param Wrapper.Group#GROUP self
|
||||||
-- @return Core.Point#COORDINATE The COORDINATE of the GROUP.
|
-- @return Core.Point#COORDINATE The COORDINATE of the GROUP.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user