mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
COORDINATES and ZONES
- Quad zones defined in the ME are now registered as ZONE_POLYGON_BASE - Added draw functions to COORDINATE (line, circle, arrow, rectangle, text)
This commit is contained in:
parent
20fe2ee505
commit
59e4f48726
@ -298,24 +298,81 @@ do -- Zones
|
|||||||
-- @return #DATABASE self
|
-- @return #DATABASE self
|
||||||
function DATABASE:_RegisterZones()
|
function DATABASE:_RegisterZones()
|
||||||
|
|
||||||
for ZoneID, ZoneData in pairs( env.mission.triggers.zones ) do
|
for ZoneID, ZoneData in pairs(env.mission.triggers.zones) do
|
||||||
local ZoneName = ZoneData.name
|
local ZoneName = ZoneData.name
|
||||||
|
|
||||||
self:I( { "Register ZONE:", Name = ZoneName } )
|
-- Color
|
||||||
local Zone = ZONE:New( ZoneName )
|
local color=ZoneData.color or {1, 0, 0, 0.15}
|
||||||
self.ZONENAMES[ZoneName] = ZoneName
|
|
||||||
self:AddZone( ZoneName, Zone )
|
-- Create new Zone
|
||||||
|
local Zone=nil --Core.Zone#ZONE_BASE
|
||||||
|
|
||||||
|
if ZoneData.type==0 then
|
||||||
|
|
||||||
|
---
|
||||||
|
-- Circular zone
|
||||||
|
---
|
||||||
|
|
||||||
|
self:I(string.format("Register ZONE: %s (Circular)", ZoneName))
|
||||||
|
|
||||||
|
Zone=ZONE:New(ZoneName)
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
---
|
||||||
|
-- Quad-point zone
|
||||||
|
---
|
||||||
|
|
||||||
|
self:I(string.format("Register ZONE: %s (Polygon, Quad)", ZoneName))
|
||||||
|
|
||||||
|
Zone=ZONE_POLYGON_BASE:New(ZoneName, ZoneData.verticies)
|
||||||
|
|
||||||
|
for i,vec2 in pairs(ZoneData.verticies) do
|
||||||
|
local coord=COORDINATE:NewFromVec2(vec2)
|
||||||
|
coord:MarkToAll(string.format("%s Point %d", ZoneName, i))
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
if Zone then
|
||||||
|
|
||||||
|
-- Debug output.
|
||||||
|
--self:I({"Register ZONE: %s (", Name = ZoneName})
|
||||||
|
|
||||||
|
Zone.Color=color
|
||||||
|
|
||||||
|
|
||||||
|
-- Store in DB.
|
||||||
|
self.ZONENAMES[ZoneName] = ZoneName
|
||||||
|
|
||||||
|
-- Add zone.
|
||||||
|
self:AddZone(ZoneName, Zone)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Polygon zones defined by late activated groups.
|
||||||
for ZoneGroupName, ZoneGroup in pairs( self.GROUPS ) do
|
for ZoneGroupName, ZoneGroup in pairs( self.GROUPS ) do
|
||||||
if ZoneGroupName:match("#ZONE_POLYGON") then
|
if ZoneGroupName:match("#ZONE_POLYGON") then
|
||||||
|
|
||||||
local ZoneName1 = ZoneGroupName:match("(.*)#ZONE_POLYGON")
|
local ZoneName1 = ZoneGroupName:match("(.*)#ZONE_POLYGON")
|
||||||
local ZoneName2 = ZoneGroupName:match(".*#ZONE_POLYGON(.*)")
|
local ZoneName2 = ZoneGroupName:match(".*#ZONE_POLYGON(.*)")
|
||||||
local ZoneName = ZoneName1 .. ( ZoneName2 or "" )
|
local ZoneName = ZoneName1 .. ( ZoneName2 or "" )
|
||||||
|
|
||||||
self:I( { "Register ZONE_POLYGON:", Name = ZoneName } )
|
-- Debug output
|
||||||
|
self:I(string.format("Register ZONE: %s (Polygon)", ZoneName))
|
||||||
|
|
||||||
|
-- Create a new polygon zone.
|
||||||
local Zone_Polygon = ZONE_POLYGON:New( ZoneName, ZoneGroup )
|
local Zone_Polygon = ZONE_POLYGON:New( ZoneName, ZoneGroup )
|
||||||
|
|
||||||
|
-- Set color.
|
||||||
|
Zone_Polygon:SetColor({1, 0, 0}, 0.15)
|
||||||
|
|
||||||
|
-- Store name in DB.
|
||||||
self.ZONENAMES[ZoneName] = ZoneName
|
self.ZONENAMES[ZoneName] = ZoneName
|
||||||
|
|
||||||
|
-- Add zone to DB.
|
||||||
self:AddZone( ZoneName, Zone_Polygon )
|
self:AddZone( ZoneName, Zone_Polygon )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -592,9 +592,7 @@ end
|
|||||||
-- @param Core.Base#BASE EventClass The class object for which events are handled.
|
-- @param Core.Base#BASE EventClass The class object for which events are handled.
|
||||||
-- @return #EVENT.Events
|
-- @return #EVENT.Events
|
||||||
function EVENT:Init( EventID, EventClass )
|
function EVENT:Init( EventID, EventClass )
|
||||||
self:I( { _EVENTMETA[EventID].Text, EventClass } )
|
self:F( { _EVENTMETA[EventID].Text, EventClass } )
|
||||||
|
|
||||||
env.info("FF EVENT.Init ID="..EventID)
|
|
||||||
|
|
||||||
if not self.Events[EventID] then
|
if not self.Events[EventID] then
|
||||||
-- Create a WEAK table to ensure that the garbage collector is cleaning the event links when the object usage is cleaned.
|
-- Create a WEAK table to ensure that the garbage collector is cleaning the event links when the object usage is cleaned.
|
||||||
@ -989,8 +987,6 @@ end
|
|||||||
-- @param #EVENTDATA Event Event data table.
|
-- @param #EVENTDATA Event Event data table.
|
||||||
function EVENT:onEvent( Event )
|
function EVENT:onEvent( Event )
|
||||||
|
|
||||||
env.info("FF some event")
|
|
||||||
|
|
||||||
local ErrorHandler = function( errmsg )
|
local ErrorHandler = function( errmsg )
|
||||||
|
|
||||||
env.info( "Error in SCHEDULER function:" .. errmsg )
|
env.info( "Error in SCHEDULER function:" .. errmsg )
|
||||||
|
|||||||
@ -540,7 +540,7 @@ do -- FSM
|
|||||||
|
|
||||||
--- Returns a table with the scores defined.
|
--- Returns a table with the scores defined.
|
||||||
-- @param #FSM self
|
-- @param #FSM self
|
||||||
-- @param #table Scores.
|
-- @return #table Scores.
|
||||||
function FSM:GetScores()
|
function FSM:GetScores()
|
||||||
return self._Scores or {}
|
return self._Scores or {}
|
||||||
end
|
end
|
||||||
|
|||||||
@ -164,6 +164,7 @@ do -- COORDINATE
|
|||||||
--
|
--
|
||||||
-- * @{#COORDINATE.WaypointAir}(): Build an air route point.
|
-- * @{#COORDINATE.WaypointAir}(): Build an air route point.
|
||||||
-- * @{#COORDINATE.WaypointGround}(): Build a ground route point.
|
-- * @{#COORDINATE.WaypointGround}(): Build a ground route point.
|
||||||
|
-- * @{#COORDINATE.WaypointNaval}(): Build a naval route point.
|
||||||
--
|
--
|
||||||
-- Route points can be used in the Route methods of the @{Wrapper.Group#GROUP} class.
|
-- Route points can be used in the Route methods of the @{Wrapper.Group#GROUP} class.
|
||||||
--
|
--
|
||||||
@ -183,10 +184,18 @@ do -- COORDINATE
|
|||||||
--
|
--
|
||||||
-- ## 9) Coordinate text generation
|
-- ## 9) Coordinate text generation
|
||||||
--
|
--
|
||||||
--
|
|
||||||
-- * @{#COORDINATE.ToStringBR}(): Generates a Bearing & Range text in the format of DDD for DI where DDD is degrees and DI is distance.
|
-- * @{#COORDINATE.ToStringBR}(): Generates a Bearing & Range text in the format of DDD for DI where DDD is degrees and DI is distance.
|
||||||
-- * @{#COORDINATE.ToStringLL}(): Generates a Latutude & Longutude text.
|
-- * @{#COORDINATE.ToStringLL}(): Generates a Latutude & Longutude text.
|
||||||
--
|
--
|
||||||
|
-- ## 10) Drawings on F10 map
|
||||||
|
--
|
||||||
|
-- * @{#COORDINATE.CircleToAll}(): Draw a circle on the F10 map.
|
||||||
|
-- * @{#COORDINATE.LineToAll}(): Draw a line on the F10 map.
|
||||||
|
-- * @{#COORDINATE.RectToAll}(): Draw a rectangle on the F10 map.
|
||||||
|
-- * @{#COORDINATE.QuadToAll}(): Draw a shape with four points on the F10 map.
|
||||||
|
-- * @{#COORDINATE.TextToAll}(): Write some text on the F10 map.
|
||||||
|
-- * @{#COORDINATE.ArrowToAll}(): Draw an arrow on the F10 map.
|
||||||
|
--
|
||||||
-- @field #COORDINATE
|
-- @field #COORDINATE
|
||||||
COORDINATE = {
|
COORDINATE = {
|
||||||
ClassName = "COORDINATE",
|
ClassName = "COORDINATE",
|
||||||
@ -1984,13 +1993,13 @@ do -- COORDINATE
|
|||||||
-- @param #COORDINATE self
|
-- @param #COORDINATE self
|
||||||
-- @param #COORDINATE Endpoint COORDIANTE to where the line is drawn.
|
-- @param #COORDINATE Endpoint COORDIANTE to where the line is drawn.
|
||||||
-- @param #number Coalition Coalition: All=-1, Neutral=0, Red=1, Blue=2. Default -1=All.
|
-- @param #number Coalition Coalition: All=-1, Neutral=0, Red=1, Blue=2. Default -1=All.
|
||||||
-- @param #number LineType Line type: 0=No line, 1=Solid, 2=Dashed, 3=Dotted, 4=Dot dash, 5=Long dash, 6=Two dash. Default 1=Solid.
|
|
||||||
-- @param #table Color RGB color table {r, g, b}, e.g. {1,0,0} for red (default).
|
-- @param #table Color RGB color table {r, g, b}, e.g. {1,0,0} for red (default).
|
||||||
-- @param #number Alpha Transparency [0,1]. Default 1.
|
-- @param #number Alpha Transparency [0,1]. Default 1.
|
||||||
|
-- @param #number LineType 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 (Optional) Mark is readonly and cannot be removed by users. Default false.
|
-- @param #boolean ReadOnly (Optional) Mark is readonly and cannot be removed by users. Default false.
|
||||||
-- @param #string Text (Optional) Text displayed when mark is added. Default none.
|
-- @param #string Text (Optional) Text displayed when mark is added. Default none.
|
||||||
-- @return #number The resulting Mark ID which is a number.
|
-- @return #number The resulting Mark ID, which is a number. Can be used to remove the object again.
|
||||||
function COORDINATE:LineToAll(Endpoint, Coalition, LineType, Color, Alpha, ReadOnly, Text)
|
function COORDINATE:LineToAll(Endpoint, Coalition, Color, Alpha, LineType, ReadOnly, Text)
|
||||||
local MarkID = UTILS.GetMarkID()
|
local MarkID = UTILS.GetMarkID()
|
||||||
if ReadOnly==nil then
|
if ReadOnly==nil then
|
||||||
ReadOnly=false
|
ReadOnly=false
|
||||||
@ -2007,18 +2016,17 @@ do -- COORDINATE
|
|||||||
--- Circle to all.
|
--- Circle to all.
|
||||||
-- Creates a circle on the map with a given radius, color, fill color, and outline.
|
-- Creates a circle on the map with a given radius, color, fill color, and outline.
|
||||||
-- @param #COORDINATE self
|
-- @param #COORDINATE self
|
||||||
-- @param #COORDINATE Center COORDIANTE of the center of the circle.
|
|
||||||
-- @param #numberr Radius Radius in meters. Default 1000 m.
|
-- @param #numberr Radius Radius in meters. Default 1000 m.
|
||||||
-- @param #number Coalition Coalition: All=-1, Neutral=0, Red=1, Blue=2. Default -1=All.
|
-- @param #number Coalition Coalition: All=-1, Neutral=0, Red=1, Blue=2. Default -1=All.
|
||||||
-- @param #number LineType Line type: 0=No line, 1=Solid, 2=Dashed, 3=Dotted, 4=Dot dash, 5=Long dash, 6=Two dash. Default 1=Solid.
|
|
||||||
-- @param #table Color RGB color table {r, g, b}, e.g. {1,0,0} for red (default).
|
-- @param #table Color RGB color table {r, g, b}, e.g. {1,0,0} for red (default).
|
||||||
-- @param #number Alpha Transparency [0,1]. Default 1.
|
-- @param #number Alpha Transparency [0,1]. Default 1.
|
||||||
-- @param #table FillColor RGB color table {r, g, b}, e.g. {1,0,0} for red (default).
|
-- @param #table FillColor RGB color table {r, g, b}, e.g. {1,0,0} for red. Default is same as `Color` value.
|
||||||
-- @param #number FillAlpha Transparency [0,1]. Default 0.5.
|
-- @param #number FillAlpha Transparency [0,1]. Default 0.15.
|
||||||
|
-- @param #number LineType 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 (Optional) Mark is readonly and cannot be removed by users. Default false.
|
-- @param #boolean ReadOnly (Optional) Mark is readonly and cannot be removed by users. Default false.
|
||||||
-- @param #string Text (Optional) Text displayed when mark is added. Default none.
|
-- @param #string Text (Optional) Text displayed when mark is added. Default none.
|
||||||
-- @return #number The resulting Mark ID which is a number.
|
-- @return #number The resulting Mark ID, which is a number. Can be used to remove the object again.
|
||||||
function COORDINATE:CircleToAll(Radius, Coalition, LineType, Color, Alpha, FillColor, FillAlpha, ReadOnly, Text)
|
function COORDINATE:CircleToAll(Radius, Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly, Text)
|
||||||
local MarkID = UTILS.GetMarkID()
|
local MarkID = UTILS.GetMarkID()
|
||||||
if ReadOnly==nil then
|
if ReadOnly==nil then
|
||||||
ReadOnly=false
|
ReadOnly=false
|
||||||
@ -2029,14 +2037,188 @@ do -- COORDINATE
|
|||||||
Color=Color or {1,0,0}
|
Color=Color or {1,0,0}
|
||||||
Color[4]=Alpha or 1.0
|
Color[4]=Alpha or 1.0
|
||||||
LineType=LineType or 1
|
LineType=LineType or 1
|
||||||
FillColor=FillColor or {1,0,0}
|
FillColor=FillColor or Color
|
||||||
FillColor[4]=FillAlpha or 0.5
|
FillColor[4]=FillAlpha or 0.15
|
||||||
trigger.action.circleToAll(Coalition, MarkID, vec3, Radius, Color, FillColor, LineType, ReadOnly, Text or "")
|
trigger.action.circleToAll(Coalition, MarkID, vec3, Radius, Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
return MarkID
|
return MarkID
|
||||||
end
|
end
|
||||||
|
|
||||||
end -- Markings
|
end -- Markings
|
||||||
|
|
||||||
|
--- Rectangle to all. Creates a rectangle on the map from the COORDINATE in one corner to the end COORDINATE in the opposite corner.
|
||||||
|
-- Creates a line on the F10 map from one point to another.
|
||||||
|
-- @param #COORDINATE self
|
||||||
|
-- @param #COORDINATE Endpoint COORDIANTE in the opposite corner.
|
||||||
|
-- @param #number Coalition Coalition: All=-1, Neutral=0, Red=1, Blue=2. Default -1=All.
|
||||||
|
-- @param #table Color RGB color table {r, g, b}, e.g. {1,0,0} for red (default).
|
||||||
|
-- @param #number Alpha Transparency [0,1]. Default 1.
|
||||||
|
-- @param #table FillColor RGB color table {r, g, b}, e.g. {1,0,0} for red. Default is same as `Color` value.
|
||||||
|
-- @param #number FillAlpha Transparency [0,1]. Default 0.15.
|
||||||
|
-- @param #number LineType 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 (Optional) Mark is readonly and cannot be removed by users. Default false.
|
||||||
|
-- @param #string Text (Optional) Text displayed when mark is added. Default none.
|
||||||
|
-- @return #number The resulting Mark ID, which is a number. Can be used to remove the object again.
|
||||||
|
function COORDINATE:RectToAll(Endpoint, Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly, Text)
|
||||||
|
local MarkID = UTILS.GetMarkID()
|
||||||
|
if ReadOnly==nil then
|
||||||
|
ReadOnly=false
|
||||||
|
end
|
||||||
|
local vec3=Endpoint:GetVec3()
|
||||||
|
Coalition=Coalition or -1
|
||||||
|
Color=Color or {1,0,0}
|
||||||
|
Color[4]=Alpha or 1.0
|
||||||
|
LineType=LineType or 1
|
||||||
|
FillColor=FillColor or Color
|
||||||
|
FillColor[4]=FillAlpha or 0.15
|
||||||
|
trigger.action.rectToAll(Coalition, MarkID, self:GetVec3(), vec3, Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
|
return MarkID
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Creates a shape defined by 4 points on the F10 map. The first point is the current COORDINATE. The remaining three points need to be specified.
|
||||||
|
-- @param #COORDINATE self
|
||||||
|
-- @param #COORDINATE Coord2 Second COORDIANTE of the quad shape.
|
||||||
|
-- @param #COORDINATE Coord3 Third COORDIANTE of the quad shape.
|
||||||
|
-- @param #COORDINATE Coord4 Fourth COORDIANTE of the quad shape.
|
||||||
|
-- @param #number Coalition Coalition: All=-1, Neutral=0, Red=1, Blue=2. Default -1=All.
|
||||||
|
-- @param #table Color RGB color table {r, g, b}, e.g. {1,0,0} for red (default).
|
||||||
|
-- @param #number Alpha Transparency [0,1]. Default 1.
|
||||||
|
-- @param #table FillColor RGB color table {r, g, b}, e.g. {1,0,0} for red. Default is same as `Color` value.
|
||||||
|
-- @param #number FillAlpha Transparency [0,1]. Default 0.15.
|
||||||
|
-- @param #number LineType 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 (Optional) Mark is readonly and cannot be removed by users. Default false.
|
||||||
|
-- @param #string Text (Optional) Text displayed when mark is added. Default none.
|
||||||
|
-- @return #number The resulting Mark ID, which is a number. Can be used to remove the object again.
|
||||||
|
function COORDINATE:QuadToAll(Coord2, Coord3, Coord4, Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly, Text)
|
||||||
|
local MarkID = UTILS.GetMarkID()
|
||||||
|
if ReadOnly==nil then
|
||||||
|
ReadOnly=false
|
||||||
|
end
|
||||||
|
local point1=self:GetVec3()
|
||||||
|
local point2=Coord2:GetVec3()
|
||||||
|
local point3=Coord3:GetVec3()
|
||||||
|
local point4=Coord4:GetVec3()
|
||||||
|
Coalition=Coalition or -1
|
||||||
|
Color=Color or {1,0,0}
|
||||||
|
Color[4]=Alpha or 1.0
|
||||||
|
LineType=LineType or 1
|
||||||
|
FillColor=FillColor or Color
|
||||||
|
FillColor[4]=FillAlpha or 0.15
|
||||||
|
trigger.action.quadToAll(Coalition, MarkID, self:GetVec3(), point2, point3, point4, Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
|
return MarkID
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Creates a free form shape on the F10 map. The first point is the current COORDINATE. The remaining points need to be specified.
|
||||||
|
-- **NOTE**: A free form polygon must have **at least three points** in total and currently only **up to 10 points** in total are supported.
|
||||||
|
-- @param #COORDINATE self
|
||||||
|
-- @param #table Coordinates Table of coordinates of the remaining points of the shape.
|
||||||
|
-- @param #number Coalition Coalition: All=-1, Neutral=0, Red=1, Blue=2. Default -1=All.
|
||||||
|
-- @param #table Color RGB color table {r, g, b}, e.g. {1,0,0} for red (default).
|
||||||
|
-- @param #number Alpha Transparency [0,1]. Default 1.
|
||||||
|
-- @param #table FillColor RGB color table {r, g, b}, e.g. {1,0,0} for red. Default is same as `Color` value.
|
||||||
|
-- @param #number FillAlpha Transparency [0,1]. Default 0.15.
|
||||||
|
-- @param #number LineType 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 (Optional) Mark is readonly and cannot be removed by users. Default false.
|
||||||
|
-- @param #string Text (Optional) Text displayed when mark is added. Default none.
|
||||||
|
-- @return #number The resulting Mark ID, which is a number. Can be used to remove the object again.
|
||||||
|
function COORDINATE:MarkupToAllFreeForm(Coordinates, Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly, Text)
|
||||||
|
local MarkID = UTILS.GetMarkID()
|
||||||
|
if ReadOnly==nil then
|
||||||
|
ReadOnly=false
|
||||||
|
end
|
||||||
|
Coalition=Coalition or -1
|
||||||
|
Color=Color or {1,0,0}
|
||||||
|
Color[4]=Alpha or 1.0
|
||||||
|
LineType=LineType or 1
|
||||||
|
FillColor=FillColor or Color
|
||||||
|
FillColor[4]=FillAlpha or 0.15
|
||||||
|
|
||||||
|
local vecs={}
|
||||||
|
table.insert(vecs, self:GetVec3())
|
||||||
|
for _,coord in ipairs(Coordinates) do
|
||||||
|
table.insert(vecs, coord:GetVec3())
|
||||||
|
end
|
||||||
|
|
||||||
|
if #vecs<3 then
|
||||||
|
self:E("ERROR: A free form polygon needs at least three points!")
|
||||||
|
elseif #vecs==3 then
|
||||||
|
trigger.action.markupToAll(7, Coalition, MarkID, vecs[1], vecs[2], vecs[3], Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
|
elseif #vecs==4 then
|
||||||
|
trigger.action.markupToAll(7, Coalition, MarkID, vecs[1], vecs[2], vecs[3], vecs[4], Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
|
elseif #vecs==5 then
|
||||||
|
trigger.action.markupToAll(7, Coalition, MarkID, vecs[1], vecs[2], vecs[3], vecs[4], vecs[5], Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
|
elseif #vecs==6 then
|
||||||
|
trigger.action.markupToAll(7, Coalition, MarkID, vecs[1], vecs[2], vecs[3], vecs[4], vecs[5], vecs[6], Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
|
elseif #vecs==7 then
|
||||||
|
trigger.action.markupToAll(7, Coalition, MarkID, vecs[1], vecs[2], vecs[3], vecs[4], vecs[5], vecs[6], vecs[7], Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
|
elseif #vecs==8 then
|
||||||
|
trigger.action.markupToAll(7, Coalition, MarkID, vecs[1], vecs[2], vecs[3], vecs[4], vecs[5], vecs[6], vecs[7], vecs[8], Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
|
elseif #vecs==9 then
|
||||||
|
trigger.action.markupToAll(7, Coalition, MarkID, vecs[1], vecs[2], vecs[3], vecs[4], vecs[5], vecs[6], vecs[7], vecs[8], vecs[9], Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
|
elseif #vecs==10 then
|
||||||
|
trigger.action.markupToAll(7, Coalition, MarkID, vecs[1], vecs[2], vecs[3], vecs[4], vecs[5], vecs[6], vecs[7], vecs[8], vecs[9], vecs[10], Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
|
else
|
||||||
|
self:E("ERROR: Currently a free form polygon can only have 10 points in total!")
|
||||||
|
-- Unfortunately, unpack(vecs) does not work! So no idea how to generalize this :(
|
||||||
|
trigger.action.markupToAll(7, Coalition, MarkID, unpack(vecs), Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
|
end
|
||||||
|
|
||||||
|
return MarkID
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Text to all. Creates a text imposed on the map at the COORDINATE. Text scales with the map.
|
||||||
|
-- @param #COORDINATE self
|
||||||
|
-- @param #string Text Text displayed on the F10 map.
|
||||||
|
-- @param #number Coalition Coalition: All=-1, Neutral=0, Red=1, Blue=2. Default -1=All.
|
||||||
|
-- @param #table Color RGB color table {r, g, b}, e.g. {1,0,0} for red (default).
|
||||||
|
-- @param #number Alpha Transparency [0,1]. Default 1.
|
||||||
|
-- @param #table FillColor RGB color table {r, g, b}, e.g. {1,0,0} for red. Default is same as `Color` value.
|
||||||
|
-- @param #number FillAlpha Transparency [0,1]. Default 0.15.
|
||||||
|
-- @param #number FontSize Font size.
|
||||||
|
-- @param #boolean ReadOnly (Optional) Mark is readonly and cannot be removed by users. Default false.
|
||||||
|
-- @return #number The resulting Mark ID, which is a number. Can be used to remove the object again.
|
||||||
|
function COORDINATE:TextToAll(Text, Coalition, Color, Alpha, FillColor, FillAlpha, FontSize, ReadOnly)
|
||||||
|
local MarkID = UTILS.GetMarkID()
|
||||||
|
if ReadOnly==nil then
|
||||||
|
ReadOnly=false
|
||||||
|
end
|
||||||
|
Coalition=Coalition or -1
|
||||||
|
Color=Color or {1,0,0}
|
||||||
|
Color[4]=Alpha or 1.0
|
||||||
|
FillColor=FillColor or Color
|
||||||
|
FillColor[4]=FillAlpha or 0.15
|
||||||
|
FontSize=FontSize or 12
|
||||||
|
trigger.action.textToAll(Coalition, MarkID, self:GetVec3(), Color, FillColor, FontSize, ReadOnly, Text or "Hello World")
|
||||||
|
return MarkID
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Arrow to all. Creates an arrow from the COORDINATE to the endpoint COORDINATE on the F10 map. There is no control over other dimensions of the arrow.
|
||||||
|
-- @param #COORDINATE self
|
||||||
|
-- @param #COORDINATE Endpoint COORDINATE where the tip of the arrow is pointing at.
|
||||||
|
-- @param #number Coalition Coalition: All=-1, Neutral=0, Red=1, Blue=2. Default -1=All.
|
||||||
|
-- @param #table Color RGB color table {r, g, b}, e.g. {1,0,0} for red (default).
|
||||||
|
-- @param #number Alpha Transparency [0,1]. Default 1.
|
||||||
|
-- @param #table FillColor RGB color table {r, g, b}, e.g. {1,0,0} for red. Default is same as `Color` value.
|
||||||
|
-- @param #number FillAlpha Transparency [0,1]. Default 0.15.
|
||||||
|
-- @param #number LineType 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 (Optional) Mark is readonly and cannot be removed by users. Default false.
|
||||||
|
-- @param #string Text (Optional) Text displayed when mark is added. Default none.
|
||||||
|
-- @return #number The resulting Mark ID, which is a number. Can be used to remove the object again.
|
||||||
|
function COORDINATE:ArrowToAll(Endpoint, Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly, Text)
|
||||||
|
local MarkID = UTILS.GetMarkID()
|
||||||
|
if ReadOnly==nil then
|
||||||
|
ReadOnly=false
|
||||||
|
end
|
||||||
|
local vec3=Endpoint:GetVec3()
|
||||||
|
Coalition=Coalition or -1
|
||||||
|
Color=Color or {1,0,0}
|
||||||
|
Color[4]=Alpha or 1.0
|
||||||
|
LineType=LineType or 1
|
||||||
|
FillColor=FillColor or Color
|
||||||
|
FillColor[4]=FillAlpha or 0.15
|
||||||
|
--trigger.action.textToAll(Coalition, MarkID, self:GetVec3(), Color, FillColor, FontSize, ReadOnly, Text or "Hello World")
|
||||||
|
trigger.action.arrowToAll(Coalition, MarkID, vec3, self:GetVec3(), Color, FillColor, LineType, ReadOnly, Text or "")
|
||||||
|
return MarkID
|
||||||
|
end
|
||||||
|
|
||||||
--- Returns if a Coordinate has Line of Sight (LOS) with the ToCoordinate.
|
--- Returns if a Coordinate has Line of Sight (LOS) with the ToCoordinate.
|
||||||
-- @param #COORDINATE self
|
-- @param #COORDINATE self
|
||||||
|
|||||||
@ -56,6 +56,8 @@
|
|||||||
--- @type ZONE_BASE
|
--- @type ZONE_BASE
|
||||||
-- @field #string ZoneName Name of the zone.
|
-- @field #string ZoneName Name of the zone.
|
||||||
-- @field #number ZoneProbability A value between 0 and 1. 0 = 0% and 1 = 100% probability.
|
-- @field #number ZoneProbability A value between 0 and 1. 0 = 0% and 1 = 100% probability.
|
||||||
|
-- @field #number DrawID Unique ID of the drawn zone on the F10 map.
|
||||||
|
-- @field #table Color Table with four entries, e.g. {1, 0, 0, 0.15}. First three are RGB color code. Fourth is the transparency Alpha value.
|
||||||
-- @extends Core.Fsm#FSM
|
-- @extends Core.Fsm#FSM
|
||||||
|
|
||||||
|
|
||||||
@ -104,7 +106,9 @@ ZONE_BASE = {
|
|||||||
ClassName = "ZONE_BASE",
|
ClassName = "ZONE_BASE",
|
||||||
ZoneName = "",
|
ZoneName = "",
|
||||||
ZoneProbability = 1,
|
ZoneProbability = 1,
|
||||||
}
|
DrawID=nil,
|
||||||
|
Color={}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
--- The ZONE_BASE.BoundingSquare
|
--- The ZONE_BASE.BoundingSquare
|
||||||
@ -324,6 +328,76 @@ function ZONE_BASE:BoundZone()
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Set color of zone.
|
||||||
|
-- @param #ZONE_BASE self
|
||||||
|
-- @param #table RGBcolor RGB color table. Default `{1, 0, 0}`.
|
||||||
|
-- @param #number Alpha Transparacy between 0 and 1. Default 0.15.
|
||||||
|
-- @return #ZONE_BASE self
|
||||||
|
function ZONE_BASE:SetColor(RGBcolor, Alpha)
|
||||||
|
|
||||||
|
RGBcolor=RGBcolor or {1, 0, 0}
|
||||||
|
Alpha=Alpha or 0.15
|
||||||
|
|
||||||
|
self.Color={}
|
||||||
|
self.Color[1]=RGBcolor[1]
|
||||||
|
self.Color[2]=RGBcolor[2]
|
||||||
|
self.Color[3]=RGBcolor[3]
|
||||||
|
self.Color[4]=Alpha
|
||||||
|
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Get color table of the zone.
|
||||||
|
-- @param #ZONE_BASE self
|
||||||
|
-- @return #table Table with four entries, e.g. {1, 0, 0, 0.15}. First three are RGB color code. Fourth is the transparency Alpha value.
|
||||||
|
function ZONE_BASE:GetColor()
|
||||||
|
return self.Color
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Get RGB color of zone.
|
||||||
|
-- @param #ZONE_BASE self
|
||||||
|
-- @return #table Table with three entries, e.g. {1, 0, 0}, which is the RGB color code.
|
||||||
|
function ZONE_BASE:GetColorRGB()
|
||||||
|
local rgb={}
|
||||||
|
rgb[1]=self.Color[1]
|
||||||
|
rgb[2]=self.Color[2]
|
||||||
|
rgb[3]=self.Color[3]
|
||||||
|
return rgb
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Get transperency Alpha value of zone.
|
||||||
|
-- @param #ZONE_BASE self
|
||||||
|
-- @return #number Alpha value.
|
||||||
|
function ZONE_BASE:GetColorAlpha()
|
||||||
|
local alpha=self.Color[4]
|
||||||
|
return alpha
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Remove the drawing of the zone from the F10 map.
|
||||||
|
-- @param #ZONE_BASE self
|
||||||
|
-- @param #number Delay (Optional) Delay before the drawing is removed.
|
||||||
|
-- @return #ZONE_BASE self
|
||||||
|
function ZONE_BASE:UndrawZone(Delay)
|
||||||
|
if Delay and Delay>0 then
|
||||||
|
self:ScheduleOnce(Delay, ZONE_BASE.UndrawZone, self)
|
||||||
|
else
|
||||||
|
if self.DrawID then
|
||||||
|
UTILS.RemoveMark(self.DrawID)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Get ID of the zone object drawn on the F10 map.
|
||||||
|
-- The ID can be used to remove the drawn object from the F10 map view via `UTILS.RemoveMark(MarkID)`.
|
||||||
|
-- @param #ZONE_BASE self
|
||||||
|
-- @return #number Unique ID of the
|
||||||
|
function ZONE_BASE:GetDrawID()
|
||||||
|
return self.DrawID
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Smokes the zone boundaries in a color.
|
--- Smokes the zone boundaries in a color.
|
||||||
-- @param #ZONE_BASE self
|
-- @param #ZONE_BASE self
|
||||||
-- @param Utilities.Utils#SMOKECOLOR SmokeColor The smoke color.
|
-- @param Utilities.Utils#SMOKECOLOR SmokeColor The smoke color.
|
||||||
@ -469,6 +543,32 @@ function ZONE_RADIUS:MarkZone(Points)
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Draw the zone circle on the F10 map.
|
||||||
|
-- @param #ZONE_RADIUS self
|
||||||
|
-- @param #number Coalition Coalition: All=-1, Neutral=0, Red=1, Blue=2. Default -1=All.
|
||||||
|
-- @param #table Color RGB color table {r, g, b}, e.g. {1,0,0} for red.
|
||||||
|
-- @param #number Alpha Transparency [0,1]. Default 1.
|
||||||
|
-- @param #table FillColor RGB color table {r, g, b}, e.g. {1,0,0} for red. Default is same as `Color` value.
|
||||||
|
-- @param #number FillAlpha Transparency [0,1]. Default 0.15.
|
||||||
|
-- @param #number LineType 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 (Optional) Mark is readonly and cannot be removed by users. Default false.
|
||||||
|
-- @return #ZONE_RADIUS self
|
||||||
|
function ZONE_RADIUS:DrawZone(Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly)
|
||||||
|
|
||||||
|
local coordinate=self:GetCoordinate()
|
||||||
|
|
||||||
|
local Radius=self:GetRadius()
|
||||||
|
|
||||||
|
Color=Color or self:GetColorRGB()
|
||||||
|
Alpha=Alpha or 1
|
||||||
|
FillColor=FillColor or Color
|
||||||
|
FillAlpha=FillAlpha or self:GetColorAlpha()
|
||||||
|
|
||||||
|
self.DrawID=coordinate:CircleToAll(Radius, Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly)
|
||||||
|
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
--- Bounds the zone with tires.
|
--- Bounds the zone with tires.
|
||||||
-- @param #ZONE_RADIUS self
|
-- @param #ZONE_RADIUS self
|
||||||
-- @param #number Points (optional) The amount of points in the circle. Default 360.
|
-- @param #number Points (optional) The amount of points in the circle. Default 360.
|
||||||
@ -1116,22 +1216,37 @@ ZONE = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
--- Constructor of ZONE, taking the zone name.
|
--- Constructor of ZONE taking the zone name.
|
||||||
-- @param #ZONE self
|
-- @param #ZONE self
|
||||||
-- @param #string ZoneName The name of the zone as defined within the mission editor.
|
-- @param #string ZoneName The name of the zone as defined within the mission editor.
|
||||||
-- @return #ZONE
|
-- @return #ZONE self
|
||||||
function ZONE:New( ZoneName )
|
function ZONE:New( ZoneName )
|
||||||
|
|
||||||
|
-- First try to find the zone in the DB.
|
||||||
|
local zone=_DATABASE:FindZone(ZoneName)
|
||||||
|
|
||||||
|
if zone then
|
||||||
|
--env.info("FF found zone in DB")
|
||||||
|
return zone
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Get zone from DCS trigger function.
|
||||||
local Zone = trigger.misc.getZone( ZoneName )
|
local Zone = trigger.misc.getZone( ZoneName )
|
||||||
|
|
||||||
|
-- Error!
|
||||||
if not Zone then
|
if not Zone then
|
||||||
error( "Zone " .. ZoneName .. " does not exist." )
|
error( "Zone " .. ZoneName .. " does not exist." )
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
local self = BASE:Inherit( self, ZONE_RADIUS:New( ZoneName, { x = Zone.point.x, y = Zone.point.z }, Zone.radius ) )
|
-- Create a new ZONE_RADIUS.
|
||||||
self:F( ZoneName )
|
local self=BASE:Inherit( self, ZONE_RADIUS:New(ZoneName, {x=Zone.point.x, y=Zone.point.z}, Zone.radius))
|
||||||
|
self:F(ZoneName)
|
||||||
|
|
||||||
|
-- Color of zone.
|
||||||
|
self.Color={1, 0, 0, 0.15}
|
||||||
|
|
||||||
|
-- DCS zone.
|
||||||
self.Zone = Zone
|
self.Zone = Zone
|
||||||
|
|
||||||
return self
|
return self
|
||||||
@ -1425,7 +1540,7 @@ function ZONE_POLYGON_BASE:New( ZoneName, PointsArray )
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- Returns the center location of the polygon.
|
--- Returns the center location of the polygon.
|
||||||
-- @param #ZONE_GROUP self
|
-- @param #ZONE_POLYGON_BASE self
|
||||||
-- @return DCS#Vec2 The location of the zone based on the @{Wrapper.Group} location.
|
-- @return DCS#Vec2 The location of the zone based on the @{Wrapper.Group} location.
|
||||||
function ZONE_POLYGON_BASE:GetVec2()
|
function ZONE_POLYGON_BASE:GetVec2()
|
||||||
self:F( self.ZoneName )
|
self:F( self.ZoneName )
|
||||||
@ -1435,6 +1550,78 @@ function ZONE_POLYGON_BASE:GetVec2()
|
|||||||
return { x = ( Bounds.x2 + Bounds.x1 ) / 2, y = ( Bounds.y2 + Bounds.y1 ) / 2 }
|
return { x = ( Bounds.x2 + Bounds.x1 ) / 2, y = ( Bounds.y2 + Bounds.y1 ) / 2 }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Get a vertex of the polygon.
|
||||||
|
-- @param #ZONE_POLYGON_BASE self
|
||||||
|
-- @param #number Index Index of the vertex. Default 1.
|
||||||
|
-- @return DCS#Vec2 Vertex of the polygon.
|
||||||
|
function ZONE_POLYGON_BASE:GetVertexVec2(Index)
|
||||||
|
return self._.Polygon[Index or 1]
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Get a vertex of the polygon.
|
||||||
|
-- @param #ZONE_POLYGON_BASE self
|
||||||
|
-- @param #number Index Index of the vertex. Default 1.
|
||||||
|
-- @return DCS#Vec3 Vertex of the polygon.
|
||||||
|
function ZONE_POLYGON_BASE:GetVertexVec3(Index)
|
||||||
|
local vec2=self:GetVertexVec2(Index)
|
||||||
|
if vec2 then
|
||||||
|
local vec3={x=vec2.x, y=land.getHeight(vec2), z=vec2.y}
|
||||||
|
return vec3
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Get a vertex of the polygon.
|
||||||
|
-- @param #ZONE_POLYGON_BASE self
|
||||||
|
-- @param #number Index Index of the vertex. Default 1.
|
||||||
|
-- @return Core.Point#COORDINATE Vertex of the polygon.
|
||||||
|
function ZONE_POLYGON_BASE:GetVertexCoordinate(Index)
|
||||||
|
local vec2=self:GetVertexVec2(Index)
|
||||||
|
if vec2 then
|
||||||
|
local coord=COORDINATE:NewFromVec2(vec2)
|
||||||
|
return coord
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Get a list of verticies of the polygon.
|
||||||
|
-- @param #ZONE_POLYGON_BASE self
|
||||||
|
-- @return <DCS#Vec2> List of DCS#Vec2 verticies defining the edges of the polygon.
|
||||||
|
function ZONE_POLYGON_BASE:GetVerticiesVec2()
|
||||||
|
return self._.Polygon
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Get a list of verticies of the polygon.
|
||||||
|
-- @param #ZONE_POLYGON_BASE self
|
||||||
|
-- @return #table List of DCS#Vec3 verticies defining the edges of the polygon.
|
||||||
|
function ZONE_POLYGON_BASE:GetVerticiesVec3()
|
||||||
|
|
||||||
|
local coords={}
|
||||||
|
|
||||||
|
for i,vec2 in ipairs(self._.Polygon) do
|
||||||
|
local vec3={x=vec2.x, y=land.getHeight(vec2), z=vec2.y}
|
||||||
|
table.insert(coords, vec3)
|
||||||
|
end
|
||||||
|
|
||||||
|
return coords
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Get a list of verticies of the polygon.
|
||||||
|
-- @param #ZONE_POLYGON_BASE self
|
||||||
|
-- @return #table List of COORDINATES verticies defining the edges of the polygon.
|
||||||
|
function ZONE_POLYGON_BASE:GetVerticiesCoordinates()
|
||||||
|
|
||||||
|
local coords={}
|
||||||
|
|
||||||
|
for i,vec2 in ipairs(self._.Polygon) do
|
||||||
|
local coord=COORDINATE:NewFromVec2(vec2)
|
||||||
|
table.insert(coords, coord)
|
||||||
|
end
|
||||||
|
|
||||||
|
return coords
|
||||||
|
end
|
||||||
|
|
||||||
--- Flush polygon coordinates as a table in DCS.log.
|
--- Flush polygon coordinates as a table in DCS.log.
|
||||||
-- @param #ZONE_POLYGON_BASE self
|
-- @param #ZONE_POLYGON_BASE self
|
||||||
-- @return #ZONE_POLYGON_BASE self
|
-- @return #ZONE_POLYGON_BASE self
|
||||||
@ -1494,6 +1681,46 @@ function ZONE_POLYGON_BASE:BoundZone( UnBound )
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Draw the zone on the F10 map. **NOTE** Currently, only polygons with **exactly four points** are supported!
|
||||||
|
-- @param #ZONE_POLYGON_BASE self
|
||||||
|
-- @param #number Coalition Coalition: All=-1, Neutral=0, Red=1, Blue=2. Default -1=All.
|
||||||
|
-- @param #table Color RGB color table {r, g, b}, e.g. {1,0,0} for red.
|
||||||
|
-- @param #number Alpha Transparency [0,1]. Default 1.
|
||||||
|
-- @param #table FillColor RGB color table {r, g, b}, e.g. {1,0,0} for red. Default is same as `Color` value.
|
||||||
|
-- @param #number FillAlpha Transparency [0,1]. Default 0.15.
|
||||||
|
-- @param #number LineType 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 (Optional) Mark is readonly and cannot be removed by users. Default false.
|
||||||
|
-- @return #ZONE_POLYGON_BASE self
|
||||||
|
function ZONE_POLYGON_BASE:DrawZone(Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly)
|
||||||
|
|
||||||
|
local coordinate=COORDINATE:NewFromVec2(self._.Polygon[1])
|
||||||
|
|
||||||
|
Color=Color or self:GetColorRGB()
|
||||||
|
Alpha=Alpha or 1
|
||||||
|
FillColor=FillColor or Color
|
||||||
|
FillAlpha=FillAlpha or self:GetColorAlpha()
|
||||||
|
|
||||||
|
|
||||||
|
if #self._.Polygon==4 then
|
||||||
|
|
||||||
|
local Coord2=COORDINATE:NewFromVec2(self._.Polygon[2])
|
||||||
|
local Coord3=COORDINATE:NewFromVec2(self._.Polygon[3])
|
||||||
|
local Coord4=COORDINATE:NewFromVec2(self._.Polygon[4])
|
||||||
|
|
||||||
|
self.DrawID=coordinate:QuadToAll(Coord2, Coord3, Coord4, Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly)
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
local Coordinates=self:GetVerticiesCoordinates()
|
||||||
|
table.remove(Coordinates, 1)
|
||||||
|
|
||||||
|
self.DrawID=coordinate:MarkupToAllFreeForm(Coordinates, Coalition, Color, Alpha, FillColor, FillAlpha, LineType, ReadOnly)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
--- Smokes the zone boundaries in a color.
|
--- Smokes the zone boundaries in a color.
|
||||||
-- @param #ZONE_POLYGON_BASE self
|
-- @param #ZONE_POLYGON_BASE self
|
||||||
|
|||||||
@ -652,6 +652,17 @@ function UTILS.GetMarkID()
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Remove an object (marker, circle, arrow, text, quad, ...) on the F10 map.
|
||||||
|
-- @param #number MarkID Unique ID of the object.
|
||||||
|
-- @param #number Delay (Optional) Delay in seconds before the mark is removed.
|
||||||
|
function UTILS.RemoveMark(MarkID, Delay)
|
||||||
|
if Delay and Delay>0 then
|
||||||
|
TIMER:New(UTILS.RemoveMark, MarkID):Start(Delay)
|
||||||
|
else
|
||||||
|
trigger.action.removeMark(MarkID)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Test if a Vec2 is in a radius of another Vec2
|
-- Test if a Vec2 is in a radius of another Vec2
|
||||||
function UTILS.IsInRadius( InVec2, Vec2, Radius )
|
function UTILS.IsInRadius( InVec2, Vec2, Radius )
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user