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
1,072 changes: 632 additions & 440 deletions src/main/java/armyc2/c5isr/renderer/ModifierRenderer.java

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions src/main/java/armyc2/c5isr/renderer/SinglePointSVGRenderer.java
Original file line number Diff line number Diff line change
Expand Up @@ -659,6 +659,16 @@ public SVGSymbolInfo RenderSP(String symbolID, Map<String, String> modifiers, Ma
if (outlineSymbol) {
borderPadding = RendererUtilities.findWidestStrokeWidth(siIcon.getSVG());
}

//Oceanographic / Bottom Feature - essentially italic serif fonts need more vertical space
//pixel sizes above 150 it's fine, which is weird
if(SymbolUtilities.getBasicSymbolID(symbolID).startsWith("461206"))
{
double va = siIcon.getBbox().getHeight() * 0.025;
double ha = siIcon.getBbox().getWidth() * 0.025;//some also need to be slightly wider
siIcon.getBbox().setRect(siIcon.getBbox().getX(),siIcon.getBbox().getY() - va,siIcon.getBbox().getWidth() + ha,siIcon.getBbox().getHeight() + va);
}

top = (int)Math.floor(siIcon.getBbox().getY());
left = (int)Math.floor(siIcon.getBbox().getX());
width = (int)Math.ceil(siIcon.getBbox().getWidth() + (siIcon.getBbox().getX() - left));
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/armyc2/c5isr/renderer/tester/Tester.java
Original file line number Diff line number Diff line change
Expand Up @@ -614,6 +614,13 @@ private Map<String,String> populateDefaultAttributes()
Map<String,String> attributes = new HashMap<>();
attributes.put(MilStdAttributes.PixelSize, "50");
//attributes.put(MilStdAttributes.FillColor, "#00FF00");

//font override check
/*
attributes.put(MilStdAttributes.FontFamily,"sans-serif");
attributes.put(MilStdAttributes.FontStyle,String.valueOf(Font.BOLD));
attributes.put(MilStdAttributes.FontSize,"12");//*/

return attributes;
}

Expand Down Expand Up @@ -1352,6 +1359,12 @@ private void btnSpeedTestActionPerformed(java.awt.event.ActionEvent evt) {//GEN-

attributes.put(MilStdAttributes.PixelSize, pixelSize);

//font override check
/*attributes.put(MilStdAttributes.FontFamily,"arial");
attributes.put(MilStdAttributes.FontStyle,String.valueOf(Font.BOLD));
attributes.put(MilStdAttributes.FontSize,"12");//*/


ErrorLogger.setLevel(Level.WARNING,true);

Graphics2D g2d;
Expand Down Expand Up @@ -1384,6 +1397,7 @@ private void btnSpeedTestActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
JOptionPane.showMessageDialog(null,message ,"Speed Test SVG",1);

//SVG to Image Speed Test
/*
svg = null;
com.github.weisj.jsvg.parser.SVGLoader loader = new com.github.weisj.jsvg.parser.SVGLoader();
com.github.weisj.jsvg.SVGDocument svgDocument = null;
Expand Down Expand Up @@ -1413,6 +1427,7 @@ private void btnSpeedTestActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
JOptionPane.showMessageDialog(null,message ,"Speed Test SVG to Image",1);
ImageInfo converted = new ImageInfo(bmp, svg.getSymbolCenterPoint(),svg.getSymbolBounds());
//converted.SaveImageToFile("C:\\temp\\converted.png","png");
//*/

}
catch (Exception exc) {
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/armyc2/c5isr/renderer/utilities/MSLookup.java
Original file line number Diff line number Diff line change
Expand Up @@ -520,6 +520,7 @@ else if (ec.equals("140200"))
modifiers.add(Modifiers.X_ALTITUDE_DEPTH);
modifiers.add(Modifiers.Z_SPEED);
modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR);
modifiers.add(Modifiers.AJ_SPEED_LEADER);
modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION);
modifiers.add(Modifiers.AO_ENGAGEMENT_BAR);
modifiers.add(Modifiers.AS_COUNTRY);
Expand All @@ -537,6 +538,7 @@ else if (ec.equals("140200"))
modifiers.add(Modifiers.X_ALTITUDE_DEPTH);
modifiers.add(Modifiers.Z_SPEED);
modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR);
modifiers.add(Modifiers.AJ_SPEED_LEADER);
modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION);
modifiers.add(Modifiers.AO_ENGAGEMENT_BAR);
modifiers.add(Modifiers.AS_COUNTRY);
Expand All @@ -553,6 +555,7 @@ else if (ec.equals("140200"))
modifiers.add(Modifiers.Y_LOCATION);
modifiers.add(Modifiers.Z_SPEED);
modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR);
modifiers.add(Modifiers.AJ_SPEED_LEADER);
modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION);
modifiers.add(Modifiers.AO_ENGAGEMENT_BAR);
modifiers.add(Modifiers.AQ_GUARDED_UNIT);
Expand All @@ -573,6 +576,7 @@ else if (ec.equals("140200"))
modifiers.add(Modifiers.V_EQUIP_TYPE);
modifiers.add(Modifiers.X_ALTITUDE_DEPTH);
modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR);
modifiers.add(Modifiers.AJ_SPEED_LEADER);
modifiers.add(Modifiers.AS_COUNTRY);
break;
case SymbolID.SymbolSet_Activities:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,17 @@ public class MilStdAttributes {
*/
public static final String PatternScale = "PATTERNSCALE";

/**
* like "arial"
*/
public static final String FontFamily = "FONTFAMILY";
/**
* Like Font.BOLD
*/
public static final String FontStyle = "FONTSTYLE";

public static final String FontSize = "FONTSIZE";

/**
* No Longer relevant
* @return {@link ArrayList}
Expand Down Expand Up @@ -187,13 +198,16 @@ public static ArrayList<String> GetAttributesList(String symbolID)
//list.add(IconColor);
list.add(PixelSize);

if(SymbolUtilities.isMultiPoint(symbolID)==false) {
if(!SymbolUtilities.isMultiPoint(symbolID)) {
list.add(KeepUnitRatio);
list.add(OutlineSymbol);
list.add(OutlineColor);
list.add(DrawAsIcon);
if(SymbolUtilities.hasModifier(symbolID,Modifiers.AO_ENGAGEMENT_BAR))
list.add(EngagementBarColor);
list.add(FontFamily);
list.add(FontStyle);
list.add(FontStyle);
}
else
{
Expand Down Expand Up @@ -249,6 +263,12 @@ public static String getAttributeName(String attribute) {
return "Distance Units";
case AltitudeUnits:
return "Altitude Units";
case FontFamily:
return "Font Family";
case FontStyle:
return "Font Style";
case FontSize:
return "Font Size";
default:
return "unrecognized attribute";
}
Expand Down Expand Up @@ -297,6 +317,12 @@ public static String getAttributeKey(String attribute) {
return DistanceUnits;
case "ALTITUDEUNITS":
return AltitudeUnits;
case "FONTFAMILY":
return FontFamily;
case "FONTSTYLE":
return FontStyle;
case "FONTSIZE":
return FontSize;
default:
return null;
}
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/armyc2/c5isr/renderer/utilities/Shape2SVG.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ public static String Convert(TextInfo textInfo, String stroke, String fill, Stri
if(textInfo != null)
{
String style = null;
String name = RendererSettings.getInstance().getLabelFont().getFamily() + ", sans-serif";//"SansSerif";
String size = String.valueOf(RendererSettings.getInstance().getLabelFont().getSize());
String name = textInfo.getFontName() + ", sans-serif";//"SansSerif";
String size = String.valueOf(textInfo.getFontSize());
String weight = null;
String anchor = null;//"start";
String text = textInfo.getText();
Expand All @@ -73,7 +73,7 @@ public static String Convert(TextInfo textInfo, String stroke, String fill, Stri
}
}

if(RendererSettings.getInstance().getLabelFont().isBold())
if(textInfo.getFontStyle() == Font.BOLD)
weight = "bold";

sb.append("<text x=\"" + location.getX() + "\" y=\"" + location.getY() + "\"");
Expand Down
30 changes: 30 additions & 0 deletions src/main/java/armyc2/c5isr/renderer/utilities/TextInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
*
*/
public class TextInfo {
String _fontName = "arial";
int _fontSize = 12;
int _fontStyle = Font.BOLD;
String _text = "";
Point2D _location = null;
Rectangle2D _bounds = null;
Expand All @@ -29,6 +32,18 @@ public TextInfo(String text, int x, int y, Font font, FontRenderContext frc)
_descent = _bounds.getHeight() + _bounds.getY();
_aboveBaseHeight = _bounds.getY() * -1;

if(font != null) {
_fontName = font.getFamily();//Output: "Helvetica"
//_fontName = font.getFontName();//Output: "Helvetica Bold"
_fontSize = font.getSize();
if(font.isBold())
_fontStyle = Font.BOLD;
if(font.isItalic())
_fontStyle = Font.ITALIC;
if(font.isPlain())
_fontStyle = Font.PLAIN;
}

}

public void setLocation(int x, int y)
Expand Down Expand Up @@ -81,4 +96,19 @@ public double getDescent()
{
return _descent;
}

public String getFontName()
{
return _fontName;
}

public int getFontSize()
{
return _fontSize;
}

public int getFontStyle()
{
return _fontStyle;
}
}