From ad3c8c75ee0f87fad13ccca54f24a9eeff854af4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Harry=20WIPPERF=C3=9CRTH?= Date: Mon, 31 Jan 2022 09:08:46 +0100 Subject: [PATCH 1/2] new planning tools circle with arrow --- .../components/feature-descriptors.json | 42 +++++++++++++++++++ src/renderer/map/style/multipoint-style.js | 41 ++++++++++++++---- 2 files changed, 74 insertions(+), 9 deletions(-) diff --git a/src/renderer/components/feature-descriptors.json b/src/renderer/components/feature-descriptors.json index 0fa5816e..1ac59579 100644 --- a/src/renderer/components/feature-descriptors.json +++ b/src/renderer/components/feature-descriptors.json @@ -22281,5 +22281,47 @@ "maxPoints": 2, "minPoints": 2 } + }, + { + "sidc": "P*-*CAP---*****", + "scope": "CONTROL", + "geometry": "MultiPoint", + "dimension": "TASK", + "hierarchy": [ + "TACTICAL PLANNING TOOL", + "CAPTURE" + ], + "parameters": { + "arc": "90", + "layout": "seize" + } + }, + { + "sidc": "P*-*RCV---*****", + "scope": "CONTROL", + "geometry": "MultiPoint", + "dimension": "TASK", + "hierarchy": [ + "TACTICAL PLANNING TOOL", + "RECOVER" + ], + "parameters": { + "arc": "90", + "layout": "seize" + } + }, + { + "sidc": "P*-*EVA---*****", + "scope": "CONTROL", + "geometry": "MultiPoint", + "dimension": "TASK", + "hierarchy": [ + "TACTICAL PLANNING TOOL", + "EVACUATE" + ], + "parameters": { + "arc": "90", + "layout": "seize" + } } ] \ No newline at end of file diff --git a/src/renderer/map/style/multipoint-style.js b/src/renderer/map/style/multipoint-style.js index 1fe63e2e..9e3e3f44 100644 --- a/src/renderer/map/style/multipoint-style.js +++ b/src/renderer/map/style/multipoint-style.js @@ -385,11 +385,8 @@ geometries['G*M*NM----'] = ({ feature, styles, points }) => { ] } -/** - * TACGRP.TSK.SZE - * TASKS / SEIZE - */ -geometries['G*T*Z-----'] = ({ styles, points, resolution }) => { +const seizelike = label => options => { + const { styles, points, resolution } = options const [C, O, S] = TS.coordinates(points) const segmentO = TS.segment([C, O]) const segmentS = TS.segment([C, S]) @@ -408,6 +405,11 @@ geometries['G*T*Z-----'] = ({ styles, points, resolution }) => { [0.1, -0.1], [0, 0], [0.1, 0.1] ]) + const text = segment => styles.text(TS.point(arcCoords[Math.floor(arcCoords.length / 2)]), { + text: label, + flip: true + }) + return [ styles.solidLine(TS.collect([ arc, @@ -418,13 +420,34 @@ geometries['G*T*Z-----'] = ({ styles, points, resolution }) => { TS.lineString(segmentO), TS.lineString(segmentS) ])), - styles.text(textAnchor, { - text: 'S', - flip: false - }) + ...(label ? [TS.point(arcCoords[Math.floor(arcCoords.length / 2)])].map(text) : []) ] } +/** + * TACGRP.TSK.SZE + * TASKS / SEIZE + */ +geometries['G*T*Z-----'] = seizelike('S') + +/** + * TACTICAL PLANNING TOOL + * CAPTURE + */ +geometries['P*-*CAP---'] = seizelike('C') + +/** + * TACTICAL PLANNING TOOL + * CAPTURE + */ +geometries['P*-*RCV---'] = seizelike('R') + +/** + * TACTICAL PLANNING TOOL + * CAPTURE + */ +geometries['P*-*EVA---'] = seizelike('E') + /** * TACGRP.MOBSU.OBST.OBSEFT.TUR * OBSTACLE EFFECT / TURN From eb80c36401c20e35e04ecfaca22b08cdf1edccae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Harry=20WIPPERF=C3=9CRTH?= Date: Mon, 7 Feb 2022 15:55:11 +0100 Subject: [PATCH 2/2] new tasks capture - recover - evacuate --- .../components/feature-descriptors.json | 18 ++++++--- .../components/milsymbol/symbols.json | 39 +++++++++++++++++++ src/renderer/map/style/multipoint-style.js | 18 ++++----- 3 files changed, 60 insertions(+), 15 deletions(-) diff --git a/src/renderer/components/feature-descriptors.json b/src/renderer/components/feature-descriptors.json index 1ac59579..4015abed 100644 --- a/src/renderer/components/feature-descriptors.json +++ b/src/renderer/components/feature-descriptors.json @@ -22283,12 +22283,14 @@ } }, { - "sidc": "P*-*CAP---*****", + "standard": "NATO ATP-112", + "sidc": "G*T*ZC----*****", "scope": "CONTROL", "geometry": "MultiPoint", "dimension": "TASK", "hierarchy": [ - "TACTICAL PLANNING TOOL", + "TACTICAL GRAPHICS", + "TASKS", "CAPTURE" ], "parameters": { @@ -22297,12 +22299,14 @@ } }, { - "sidc": "P*-*RCV---*****", + "standard": "NATO ATP-112", + "sidc": "G*T*ZR----*****", "scope": "CONTROL", "geometry": "MultiPoint", "dimension": "TASK", "hierarchy": [ - "TACTICAL PLANNING TOOL", + "TACTICAL GRAPHICS", + "TASKS", "RECOVER" ], "parameters": { @@ -22311,12 +22315,14 @@ } }, { - "sidc": "P*-*EVA---*****", + "standard": "NATO ATP-112", + "sidc": "G*T*ZE----*****", "scope": "CONTROL", "geometry": "MultiPoint", "dimension": "TASK", "hierarchy": [ - "TACTICAL PLANNING TOOL", + "TACTICAL GRAPHICS", + "TASKS", "EVACUATE" ], "parameters": { diff --git a/src/renderer/components/milsymbol/symbols.json b/src/renderer/components/milsymbol/symbols.json index 96fc9f49..8de55b11 100644 --- a/src/renderer/components/milsymbol/symbols.json +++ b/src/renderer/components/milsymbol/symbols.json @@ -2955,6 +2955,33 @@ } ] }, + "EXT_TASKS_CAPTURE_TEXT": { + "texts": [ + { + "text": "C", + "x": 120, + "y": 90 + } + ] + }, + "EXT_TASKS_RECOVER_TEXT": { + "texts": [ + { + "text": "R", + "x": 120, + "y": 90 + } + ] + }, + "EXT_TASKS_EVACUATE_TEXT": { + "texts": [ + { + "text": "E", + "x": 120, + "y": 90 + } + ] + }, "EXT_TASKS_DELAY_TEXT": { "texts": [ { @@ -3845,6 +3872,18 @@ "EXT_TASKS_SEIZE", "EXT_TASKS_SEIZE_TEXT" ], + "G-T-ZC----": [ + "EXT_TASKS_SEIZE", + "EXT_TASKS_CAPTURE_TEXT" + ], + "G-T-ZR----": [ + "EXT_TASKS_SEIZE", + "EXT_TASKS_RECOVER_TEXT" + ], + "G-T-ZE----": [ + "EXT_TASKS_SEIZE", + "EXT_TASKS_EVACUATE_TEXT" + ], "G-T-L-----": [ "EXT_TASKS_CURVED_ARROW", "EXT_TASKS_DELAY_TEXT" diff --git a/src/renderer/map/style/multipoint-style.js b/src/renderer/map/style/multipoint-style.js index 9e3e3f44..3f2a57b0 100644 --- a/src/renderer/map/style/multipoint-style.js +++ b/src/renderer/map/style/multipoint-style.js @@ -431,22 +431,22 @@ const seizelike = label => options => { geometries['G*T*Z-----'] = seizelike('S') /** - * TACTICAL PLANNING TOOL - * CAPTURE + * TACGRP.TSK.CAP + * TASKS / CAPTURE */ -geometries['P*-*CAP---'] = seizelike('C') +geometries['G*T*ZC----'] = seizelike('C') /** - * TACTICAL PLANNING TOOL - * CAPTURE + * TACGRP.TSK.RCV + * TASKS / RECOVER */ -geometries['P*-*RCV---'] = seizelike('R') +geometries['G*T*ZR----'] = seizelike('R') /** - * TACTICAL PLANNING TOOL - * CAPTURE + * TACGRP.TSK.EVA + * TASKS / EVACUATE */ -geometries['P*-*EVA---'] = seizelike('E') +geometries['G*T*ZE----'] = seizelike('E') /** * TACGRP.MOBSU.OBST.OBSEFT.TUR