Commit 925ca60a authored by Nico Mack's avatar Nico Mack

Minor performance improvements by removing unnecessary shape operations.

parent 8ec3cf4e
...@@ -93,7 +93,6 @@ public class CoxcombSlice extends ValueCorona implements InformationProvider<Obj ...@@ -93,7 +93,6 @@ public class CoxcombSlice extends ValueCorona implements InformationProvider<Obj
private double normalizedValue; private double normalizedValue;
private double correctedAngle; private double correctedAngle;
private Area outer;
private Area inner; private Area inner;
private Area slice; private Area slice;
private Area face; private Area face;
...@@ -267,7 +266,6 @@ public class CoxcombSlice extends ValueCorona implements InformationProvider<Obj ...@@ -267,7 +266,6 @@ public class CoxcombSlice extends ValueCorona implements InformationProvider<Obj
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
private void buildFromProperties() { private void buildFromProperties() {
// double diameter;
FontRenderContext renderingContext = new FontRenderContext(null, true, true); FontRenderContext renderingContext = new FontRenderContext(null, true, true);
metrics = textFont.getLineMetrics(label, renderingContext); metrics = textFont.getLineMetrics(label, renderingContext);
...@@ -279,60 +277,23 @@ public class CoxcombSlice extends ValueCorona implements InformationProvider<Obj ...@@ -279,60 +277,23 @@ public class CoxcombSlice extends ValueCorona implements InformationProvider<Obj
this.updateSlice(); this.updateSlice();
// correctedAngle = AngleUtils.moduloThreeSixty(AngleUtils.THREE_SIXTY - startAngle -
// arcSpan);
//
// diameter = 2 * innerRadius;
// inner = new Area(new Ellipse2D.Double(-innerRadius, -innerRadius, diameter, diameter));
//
// diameter = 2 * lowerBoundRadius;
// outer = new Area(new Ellipse2D.Double(-lowerBoundRadius, -lowerBoundRadius, diameter,
// diameter));
//
// Shape sector = new Arc2D.Double(-lowerBoundRadius, -lowerBoundRadius, diameter, diameter,
// correctedAngle, arcSpan, Arc2D.PIE);
// Area initial = new Area(sector);
// initial.subtract(inner);
// outer.subtract(inner);
// shape = initial;
//
// diameter = 2 * upperBoundRadius;
// sector = new Arc2D.Double(-upperBoundRadius, -upperBoundRadius, diameter, diameter,
// correctedAngle, arcSpan, Arc2D.PIE);
// face = new Area(sector);
// face.subtract(inner);
// outer.subtract(inner);
borderStroke = (strokeWidth > 0) ? new BasicStroke(strokeWidth) : null; borderStroke = (strokeWidth > 0) ? new BasicStroke(strokeWidth) : null;
// int availableWidth;
//
// if (wrapToFit) {
// if (!radialLayout) {
// double arcLength = Math.PI * ((upperBoundRadius + lowerBoundRadius) / 2) * (arcSpan /
// AngleUtils.ONE_EIGHTY);
// availableWidth = (int) arcLength - 2 * insetBorder;
// } else {
// availableWidth = (int) (upperBoundRadius - lowerBoundRadius - 2 * insetBorder);
// }
// lines = StringUtils.wrapToFit(label, availableWidth, textFont);
// } else {
// lines = new ArrayList<>();
// lines.add(label);
// }
//
// if (!radialLayout) {
// labelShape = this.buildCircularText(lines, metrics);
// } else {
// labelShape = this.buildRadialText(lines, metrics, correctedAngle);
// }
this.setInformation(this.variable.getValue()); this.setInformation(this.variable.getValue());
this.setSelected(this.isSelected); this.setSelected(this.isSelected);
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
private Shape buildSector(double radius, double diameter) {
Shape sector = (arcSpan < AngleUtils.THREE_SIXTY)
? new Arc2D.Double(-radius, -radius, diameter, diameter, correctedAngle, arcSpan, Arc2D.PIE)
: new Ellipse2D.Double(-radius, -radius, diameter, diameter);
return sector;
}
// ---------------------------------------------------------------------------
private void updateSlice() { private void updateSlice() {
double diameter; double diameter;
List<String> lines; List<String> lines;
...@@ -342,20 +303,22 @@ public class CoxcombSlice extends ValueCorona implements InformationProvider<Obj ...@@ -342,20 +303,22 @@ public class CoxcombSlice extends ValueCorona implements InformationProvider<Obj
diameter = 2 * innerRadius; diameter = 2 * innerRadius;
inner = new Area(new Ellipse2D.Double(-innerRadius, -innerRadius, diameter, diameter)); inner = new Area(new Ellipse2D.Double(-innerRadius, -innerRadius, diameter, diameter));
diameter = 2 * lowerBoundRadius; Shape sector = buildSector(lowerBoundRadius, diameter);
outer = new Area(new Ellipse2D.Double(-lowerBoundRadius, -lowerBoundRadius, diameter, diameter));
// Shape sector = (arcSpan < AngleUtils.THREE_SIXTY) ? new Arc2D.Double(-lowerBoundRadius,
// -lowerBoundRadius, diameter, diameter, correctedAngle, arcSpan, Arc2D.PIE);
// : new Ellipse2D.Double(-lowerBoundRadius, -lowerBoundRadius, diameter, diameter);
Shape sector = new Arc2D.Double(-lowerBoundRadius, -lowerBoundRadius, diameter, diameter, correctedAngle, arcSpan, Arc2D.PIE);
Area initial = new Area(sector); Area initial = new Area(sector);
initial.subtract(inner); initial.subtract(inner);
outer.subtract(inner);
shape = initial; shape = initial;
diameter = 2 * upperBoundRadius; diameter = 2 * upperBoundRadius;
sector = new Arc2D.Double(-upperBoundRadius, -upperBoundRadius, diameter, diameter, correctedAngle, arcSpan, Arc2D.PIE); // sector = new Arc2D.Double(-upperBoundRadius, -upperBoundRadius, diameter, diameter,
// correctedAngle, arcSpan, Arc2D.PIE);
sector = buildSector(upperBoundRadius, diameter);
face = new Area(sector); face = new Area(sector);
face.subtract(inner); face.subtract(inner);
outer.subtract(inner);
int availableWidth; int availableWidth;
...@@ -462,10 +425,11 @@ public class CoxcombSlice extends ValueCorona implements InformationProvider<Obj ...@@ -462,10 +425,11 @@ public class CoxcombSlice extends ValueCorona implements InformationProvider<Obj
} }
double diameter = 2 * radius; double diameter = 2 * radius;
Shape sector = new Arc2D.Double(-radius, -radius, diameter, diameter, correctedAngle, arcSpan, Arc2D.PIE); // Shape sector = new Arc2D.Double(-radius, -radius, diameter, diameter, correctedAngle,
// arcSpan, Arc2D.PIE);
Shape sector = buildSector(radius, diameter);
slice = new Area(sector); slice = new Area(sector);
slice.subtract(inner); slice.subtract(inner);
outer.subtract(inner);
shape = slice; shape = slice;
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment