Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions src/main/java/armyc2/c5isr/JavaLineArray/TacticalLines.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@ public final class TacticalLines {
@Deprecated
public static final int BS_BBOX=15000004;

public static final int BS_ORBIT = 16000001;
public static final int BS_ROUTE = 16000002;
public static final int BS_RADARC = 16000003;
public static final int BS_POLYARC = 16000004;
public static final int BS_CAKE = 16000005;
public static final int BS_TRACK = 16000006;

public static final int PZ = 22138000;
public static final int LZ = 22137000;
public static final int DZ = 22135000;
Expand Down Expand Up @@ -155,8 +162,8 @@ public final class TacticalLines {
public static final int ASR_ONEWAY = 25330401;
public static final int ASR_ALT = 25330403;
public static final int ASR_TWOWAY = 25330402;
public static final int ROUTE_ONEWAY = 25330501;
public static final int ROUTE_ALT = 25330502;
public static final int TRAFFIC_ROUTE_ONEWAY = 25330501;
public static final int TRAFFIC_ROUTE_ALT = 25330502;
public static final int BEARING = 26400000;
public static final int BEARING_EW = 220101;
public static final int BEARING_J = 220107;
Expand Down Expand Up @@ -496,7 +503,7 @@ public final class TacticalLines {
public static final int GENERIC_AREA = 25120700;
public static final int HOL = 25141800;
public static final int BHL = 2514190;
public static final int ROUTE = 25330500;
public static final int TRAFFIC_ROUTE = 25330500;
public static final int FPOL = 25344100;
public static final int RPOL = 25344200;

Expand Down
6 changes: 3 additions & 3 deletions src/main/java/armyc2/c5isr/JavaLineArray/arraysupport.java
Original file line number Diff line number Diff line change
Expand Up @@ -2929,8 +2929,8 @@ private static ArrayList<POINT2> GetLineArray2Double(TGLight tg,
case TacticalLines.ASR_ONEWAY:
case TacticalLines.ASR_TWOWAY:
case TacticalLines.ASR_ALT:
case TacticalLines.ROUTE_ONEWAY:
case TacticalLines.ROUTE_ALT:
case TacticalLines.TRAFFIC_ROUTE_ONEWAY:
case TacticalLines.TRAFFIC_ROUTE_ALT:
nCounter = (int) vblSaveCounter;
pLinePoints[vblSaveCounter - 1].style = 5;
for (j = 0; j < vblSaveCounter - 1; j++) {
Expand Down Expand Up @@ -2965,7 +2965,7 @@ private static ArrayList<POINT2> GetLineArray2Double(TGLight tg,
nCounter++;
}

if (lineType == TacticalLines.MSR_ALT || lineType == TacticalLines.ASR_ALT || lineType == TacticalLines.ROUTE_ALT) {
if (lineType == TacticalLines.MSR_ALT || lineType == TacticalLines.ASR_ALT || lineType == TacticalLines.TRAFFIC_ROUTE_ALT) {
lineutility.GetArrowHead4Double(pt3, pt2, (int) d, (int) d,
pArrowPoints, 0);

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/armyc2/c5isr/JavaLineArray/countsupport.java
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ protected static int GetCountersDouble(TGLight tg,
break;
case TacticalLines.MSR_ALT:
case TacticalLines.ASR_ALT:
case TacticalLines.ROUTE_ALT:
case TacticalLines.TRAFFIC_ROUTE_ALT:
count = vblCounter * 9;
break;
case TacticalLines.MSR_TWOWAY:
Expand All @@ -332,7 +332,7 @@ protected static int GetCountersDouble(TGLight tg,
break;
case TacticalLines.MSR_ONEWAY:
case TacticalLines.ASR_ONEWAY:
case TacticalLines.ROUTE_ONEWAY:
case TacticalLines.TRAFFIC_ROUTE_ONEWAY:
count = vblCounter * 6;
break;
case TacticalLines.WF:
Expand Down
20 changes: 10 additions & 10 deletions src/main/java/armyc2/c5isr/JavaTacticalRenderer/Modifier2.java
Original file line number Diff line number Diff line change
Expand Up @@ -513,9 +513,9 @@ private static String GetCenterLabel(TGLight tg) {
case TacticalLines.ASR_ALT:
label = "ASR";
break;
case TacticalLines.ROUTE:
case TacticalLines.ROUTE_ONEWAY:
case TacticalLines.ROUTE_ALT:
case TacticalLines.TRAFFIC_ROUTE:
case TacticalLines.TRAFFIC_ROUTE_ONEWAY:
case TacticalLines.TRAFFIC_ROUTE_ALT:
label = "ROUTE";
break;
case TacticalLines.LDLC:
Expand Down Expand Up @@ -1980,9 +1980,9 @@ public static void AddModifiersGeo(TGLight tg,
case TacticalLines.ASR_ONEWAY:
case TacticalLines.ASR_TWOWAY:
case TacticalLines.ASR_ALT:
case TacticalLines.ROUTE:
case TacticalLines.ROUTE_ONEWAY:
case TacticalLines.ROUTE_ALT:
case TacticalLines.TRAFFIC_ROUTE:
case TacticalLines.TRAFFIC_ROUTE_ONEWAY:
case TacticalLines.TRAFFIC_ROUTE_ALT:
case TacticalLines.DHA_REVD:
case TacticalLines.DHA:
case TacticalLines.KILL_ZONE:
Expand Down Expand Up @@ -2738,17 +2738,17 @@ public static void AddModifiersGeo(TGLight tg,
break;
case TacticalLines.MSR_ONEWAY:
case TacticalLines.ASR_ONEWAY:
case TacticalLines.ROUTE_ONEWAY:
case TacticalLines.TRAFFIC_ROUTE_ONEWAY:
case TacticalLines.MSR_TWOWAY:
case TacticalLines.ASR_TWOWAY:
case TacticalLines.MSR_ALT:
case TacticalLines.ASR_ALT:
case TacticalLines.ROUTE_ALT:
case TacticalLines.TRAFFIC_ROUTE_ALT:
stringWidth = (int) (1.5 * (double) metrics.stringWidth(label + TSpace + tg.get_Name()));
double arrowOffset = 10 * DPIScaleFactor;
if (linetype == TacticalLines.MSR_TWOWAY || linetype == TacticalLines.ASR_TWOWAY)
arrowOffset = 25 * DPIScaleFactor;
boolean isAlt = linetype == TacticalLines.MSR_ALT || linetype == TacticalLines.ASR_ALT || linetype == TacticalLines.ROUTE_ALT;
boolean isAlt = linetype == TacticalLines.MSR_ALT || linetype == TacticalLines.ASR_ALT || linetype == TacticalLines.TRAFFIC_ROUTE_ALT;
if (isAlt) {
stringWidth2 = (int) (1.5 * (double) metrics.stringWidth("ALT"));
if (stringWidth2 > stringWidth) {
Expand Down Expand Up @@ -2874,7 +2874,7 @@ public static void AddModifiersGeo(TGLight tg,
break;
case TacticalLines.MSR:
case TacticalLines.ASR:
case TacticalLines.ROUTE:
case TacticalLines.TRAFFIC_ROUTE:
//AddIntegralModifier(tg, label + tg.get_Name(), aboveMiddle, -1*csFactor, middleSegment, middleSegment + 1,false);
foundSegment = false;
//acevedo - 11/30/2017 - adding option to render only 2 labels.
Expand Down
22 changes: 14 additions & 8 deletions src/main/java/armyc2/c5isr/JavaTacticalRenderer/clsUtility.java
Original file line number Diff line number Diff line change
Expand Up @@ -885,9 +885,9 @@ public static boolean LinesWithFill(int linetype)
case TacticalLines.ASR_ONEWAY:
case TacticalLines.ASR_TWOWAY:
case TacticalLines.ASR_ALT:
case TacticalLines.ROUTE:
case TacticalLines.ROUTE_ONEWAY:
case TacticalLines.ROUTE_ALT:
case TacticalLines.TRAFFIC_ROUTE:
case TacticalLines.TRAFFIC_ROUTE_ONEWAY:
case TacticalLines.TRAFFIC_ROUTE_ALT:
result = true;
break;
default:
Expand Down Expand Up @@ -1196,11 +1196,15 @@ public static boolean IsChange1Area(int lineType) {
case TacticalLines.RANGE_FAN_FILL:
case TacticalLines.RANGE_FAN_SECTOR:
case TacticalLines.RADAR_SEARCH:
case TacticalLines.BS_RADARC:
case TacticalLines.BS_CAKE:
case TacticalLines.PAA_RECTANGULAR:
case TacticalLines.RECTANGULAR_TARGET:
case TacticalLines.FSA_RECTANGULAR:
case TacticalLines.SHIP_AOI_RECTANGULAR:
case TacticalLines.DEFENDED_AREA_RECTANGULAR:
case TacticalLines.BS_ROUTE:
case TacticalLines.BS_TRACK:
case TacticalLines.FFA_RECTANGULAR:
case TacticalLines.RFA_RECTANGULAR:
case TacticalLines.NFA_RECTANGULAR:
Expand All @@ -1216,6 +1220,8 @@ public static boolean IsChange1Area(int lineType) {
case TacticalLines.TVAR_RECTANGULAR:
case TacticalLines.KILLBOXBLUE_RECTANGULAR:
case TacticalLines.KILLBOXPURPLE_RECTANGULAR:
case TacticalLines.BS_ORBIT:
case TacticalLines.BS_POLYARC:
return true;
default:
return false;
Expand Down Expand Up @@ -1533,8 +1539,8 @@ public static void FilterVerticalSegments(TGLight tg)
case TacticalLines.ASR_ONEWAY:
case TacticalLines.ASR_TWOWAY:
case TacticalLines.ASR_ALT:
case TacticalLines.ROUTE_ONEWAY:
case TacticalLines.ROUTE_ALT:
case TacticalLines.TRAFFIC_ROUTE_ONEWAY:
case TacticalLines.TRAFFIC_ROUTE_ALT:
case TacticalLines.ATWALL:
break;
default:
Expand Down Expand Up @@ -1937,7 +1943,7 @@ public static HashMap<Integer,Color> getMSRSegmentColors(TGLight tg)
{
case TacticalLines.MSR:
case TacticalLines.ASR:
case TacticalLines.ROUTE:
case TacticalLines.TRAFFIC_ROUTE:
case TacticalLines.BOUNDARY:
if(tg.get_H()==null || tg.get_H().isEmpty())
return null;
Expand Down Expand Up @@ -1979,7 +1985,7 @@ public static HashMap<Integer, String> getMSRSegmentColorStrings(TGLight tg)
switch (linetype) {
case TacticalLines.MSR:
case TacticalLines.ASR:
case TacticalLines.ROUTE:
case TacticalLines.TRAFFIC_ROUTE:
case TacticalLines.BOUNDARY:
if (tg.get_H() == null || tg.get_H().isEmpty())
return null;
Expand Down Expand Up @@ -2033,7 +2039,7 @@ public static void reviseHModifier(ArrayList<POINT2>originalPixels,
{
case TacticalLines.ASR:
case TacticalLines.MSR:
case TacticalLines.ROUTE:
case TacticalLines.TRAFFIC_ROUTE:
case TacticalLines.BOUNDARY:
break;
default:
Expand Down
129 changes: 125 additions & 4 deletions src/main/java/armyc2/c5isr/RenderMultipoints/clsRenderer.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import armyc2.c5isr.JavaLineArray.POINT2;

import java.awt.*;
import java.awt.geom.PathIterator;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
Expand Down Expand Up @@ -323,6 +322,112 @@ else if(AM.size()==2)
tg.set_AN(strAN);
}
}
if (lineType == TacticalLines.BS_CAKE) {
ArrayList<Double> AM = milStd.getModifiers_AM_AN_X(Modifiers.AM_DISTANCE);
ArrayList<Double> AN = milStd.getModifiers_AM_AN_X(Modifiers.AN_AZIMUTH);
if (AM != null) {
StringBuilder strAM = new StringBuilder();
for (j = 0; j < AM.size(); j++) {
strAM.append(AM.get(j).toString());
if (j < AM.size() - 1) {
strAM.append(",");
}
}
tg.set_AM(strAM.toString());
}
if (AN != null) {
StringBuilder strAN = new StringBuilder();
for (j = 0; j < AN.size(); j++) {
strAN.append(AN.get(j));
if (j < AN.size() - 1) {
strAN.append(",");
}
}
tg.set_AN(strAN.toString());
}
if (AM != null && AN != null) {
int numSectors = AN.size() / 2;
double left = 0;
double right = 0;
double min = 0;
double max = 0;
//construct left,right,min,max from the arraylists
StringBuilder strLeftRightMinMax = new StringBuilder();
for (j = 0; j < numSectors; j++) {
left = AN.get(2 * j);
right = AN.get(2 * j + 1);
min = AM.get(2 * j);
max = AM.get(2 * j + 1);
strLeftRightMinMax.append(left).append(",").append(right).append(",").append(min).append(",").append(max);
if (j < numSectors - 1) {
strLeftRightMinMax.append(",");
}

}
int len = strLeftRightMinMax.length();
String c = strLeftRightMinMax.substring(len - 1, len);
if (c.equals(",")) {
strLeftRightMinMax = new StringBuilder(strLeftRightMinMax.substring(0, len - 1));
}
tg.set_LRMM(strLeftRightMinMax.toString());
}
}
if (lineType == TacticalLines.BS_RADARC) {
ArrayList<Double> AM = milStd.getModifiers_AM_AN_X(Modifiers.AM_DISTANCE);
ArrayList<Double> AN = milStd.getModifiers_AM_AN_X(Modifiers.AN_AZIMUTH);
if (AM != null) {
StringBuilder strAM = new StringBuilder();
for (j = 0; j < AM.size() && j < 2; j++) {
strAM.append(AM.get(j).toString());
if (j < AM.size() - 1) {
strAM.append(",");
}
}
tg.set_AM(strAM.toString());
}
if (AN != null) {
StringBuilder strAN = new StringBuilder();
for (j = 0; j < AN.size() && j < 2; j++) {
strAN.append(AN.get(j));
if (j < AN.size() - 1) {
strAN.append(",");
}
}
tg.set_AN(strAN.toString());
}
if (AM != null && AN != null) {
double left = 0;
double right = 0;
double min = 0;
double max = 0;
//construct left,right,min,max from the arraylists
String strLeftRightMinMax = "";
left = AN.get(0);
right = AN.get(1);
min = AM.get(0);
max = AM.get(1);
strLeftRightMinMax += left + "," + right + "," + min + "," + max;
tg.set_LRMM(strLeftRightMinMax);
}
}
if (lineType == TacticalLines.BS_POLYARC) {
ArrayList<Double> AM = milStd.getModifiers_AM_AN_X(Modifiers.AM_DISTANCE);
ArrayList<Double> AN = milStd.getModifiers_AM_AN_X(Modifiers.AN_AZIMUTH);
if (AM != null && AM.size() > 0) {
String strAM = AM.get(0).toString();
tg.set_AM(strAM);
}
if (AN != null) {
StringBuilder strAN = new StringBuilder();
for (j = 0; j < AN.size() && j < 2; j++) {
strAN.append(AN.get(j));
if (j < AN.size() - 1) {
strAN.append(",");
}
}
tg.set_AN(strAN.toString());
}
}
switch (lineType) {
case TacticalLines.BBS_AREA:
case TacticalLines.BBS_LINE:
Expand All @@ -338,6 +443,9 @@ else if(AM.size()==2)
switch (lineType) {
case TacticalLines.PBS_CIRCLE:
case TacticalLines.BBS_POINT:
case TacticalLines.BS_ROUTE:
case TacticalLines.BS_TRACK:
case TacticalLines.BS_ORBIT:
ArrayList<Double> AM = milStd.getModifiers_AM_AN_X(Modifiers.AM_DISTANCE);
if (AM != null && AM.size() > 0) {
String strAM = Double.toString(AM.get(0));
Expand All @@ -352,6 +460,19 @@ else if(AM.size()==2)
default:
break;
}
if (lineType == TacticalLines.BS_TRACK) {
ArrayList<Double> AM = milStd.getModifiers_AM_AN_X(Modifiers.AM_DISTANCE);
if (AM != null) {
StringBuilder strAM = new StringBuilder();
for (j = 0; j < AM.size(); j++) {
strAM.append(AM.get(j).toString());
if (j < AM.size() - 1) {
strAM.append(",");
}
}
tg.set_AM(strAM.toString());
}
}
if (lineType == TacticalLines.PBS_RECTANGLE || lineType == TacticalLines.PBS_SQUARE) {
ArrayList<Double> AM = milStd.getModifiers_AM_AN_X(Modifiers.AM_DISTANCE);
ArrayList<Double> AN = milStd.getModifiers_AM_AN_X(Modifiers.AN_AZIMUTH);
Expand Down Expand Up @@ -2068,11 +2189,11 @@ public static int getCMLineType(int version, int entityCode) {
case 310800:
return TacticalLines.CSA;
case 330500:
return TacticalLines.ROUTE;
return TacticalLines.TRAFFIC_ROUTE;
case 330501:
return TacticalLines.ROUTE_ONEWAY;
return TacticalLines.TRAFFIC_ROUTE_ONEWAY;
case 330502:
return TacticalLines.ROUTE_ALT;
return TacticalLines.TRAFFIC_ROUTE_ALT;
case 344100:
return TacticalLines.FPOL;
case 344200:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ private static void getMSRShapes(TGLight tg,
try
{
int linetype=tg.get_LineType();
if(linetype != TacticalLines.MSR && linetype != TacticalLines.ASR && linetype != TacticalLines.ROUTE)
if(linetype != TacticalLines.MSR && linetype != TacticalLines.ASR && linetype != TacticalLines.TRAFFIC_ROUTE)
return;

HashMap<Integer, Color> hmap= clsUtility.getMSRSegmentColors(tg);
Expand Down Expand Up @@ -297,7 +297,7 @@ else if(bolMeTOC>0)

if (CELineArray.CIsChannel(lineType) == 0)
{
if(lineType==TacticalLines.ASR || lineType==TacticalLines.MSR || lineType==TacticalLines.ROUTE)
if(lineType==TacticalLines.ASR || lineType==TacticalLines.MSR || lineType==TacticalLines.TRAFFIC_ROUTE)
{
getMSRShapes(tg,shapes);
}
Expand All @@ -314,7 +314,7 @@ else if(bolMeTOC>0)
//set CELineArray.shapes properties
if(bolMeTOC<=0)
{
if(lineType!=TacticalLines.ASR && lineType!=TacticalLines.MSR && lineType!=TacticalLines.ROUTE)
if(lineType!=TacticalLines.ASR && lineType!=TacticalLines.MSR && lineType!=TacticalLines.TRAFFIC_ROUTE)
clsUtility.SetShapeProperties(tg,shapes,bi);
}

Expand Down
Loading