Skip to content

Commit

Permalink
Renderer: Fix bubble chart error type handling
Browse files Browse the repository at this point in the history
As reported by @protogenes, there was a misstake in the handling of the
Error type for BubbleCharts in the ErrorDataSetRender.

fixes #558
  • Loading branch information
wirew0rm committed Aug 9, 2023
1 parent 7d41fec commit 88ac0ed
Showing 1 changed file with 6 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -348,35 +348,29 @@ protected void drawBubbles(final GraphicsContext gc, final CachedDataPoints loca
}

final double minSize = getMarkerSize();
if (localCachedPoints.errorType[DataSet.DIM_X] != ErrorType.NO_ERROR
|| localCachedPoints.errorType[DataSet.DIM_Y] == ErrorType.NO_ERROR) {
if (localCachedPoints.errorType[DataSet.DIM_X] != ErrorType.NO_ERROR && localCachedPoints.errorType[DataSet.DIM_Y] == ErrorType.NO_ERROR) {
// X, X_ASYMMETRIC
for (int i = 0; i < localCachedPoints.actualDataCount; i++) {
final double radius = Math.max(minSize,
localCachedPoints.errorXPos[i] - localCachedPoints.errorXNeg[i]);
final double radius = Math.max(minSize, localCachedPoints.errorXPos[i] - localCachedPoints.errorXNeg[i]);

Check warning on line 354 in chartfx-chart/src/main/java/io/fair_acc/chartfx/renderer/spi/ErrorDataSetRenderer.java

View check run for this annotation

Codecov / codecov/patch

chartfx-chart/src/main/java/io/fair_acc/chartfx/renderer/spi/ErrorDataSetRenderer.java#L354

Added line #L354 was not covered by tests
final double x = localCachedPoints.xValues[i] - radius;
final double y = localCachedPoints.yValues[i] - radius;

gc.fillOval(x, y, 2 * radius, 2 * radius);
}
} else if (localCachedPoints.errorType[DataSet.DIM_X] == ErrorType.NO_ERROR
|| localCachedPoints.errorType[DataSet.DIM_Y] != ErrorType.NO_ERROR) {
} else if (localCachedPoints.errorType[DataSet.DIM_X] == ErrorType.NO_ERROR && localCachedPoints.errorType[DataSet.DIM_Y] != ErrorType.NO_ERROR) {
// Y, Y_ASYMMETRIC
for (int i = 0; i < localCachedPoints.actualDataCount; i++) {
final double radius = Math.max(minSize,
localCachedPoints.errorYNeg[i] - localCachedPoints.errorYPos[i]);
final double radius = Math.max(minSize, localCachedPoints.errorYNeg[i] - localCachedPoints.errorYPos[i]);
final double x = localCachedPoints.xValues[i] - radius;
final double y = localCachedPoints.yValues[i] - radius;

gc.fillOval(x, y, 2 * radius, 2 * radius);
}
} else if (localCachedPoints.errorType[DataSet.DIM_X] != ErrorType.NO_ERROR
|| localCachedPoints.errorType[DataSet.DIM_Y] != ErrorType.NO_ERROR) {
} else if (localCachedPoints.errorType[DataSet.DIM_X] != ErrorType.NO_ERROR && localCachedPoints.errorType[DataSet.DIM_Y] != ErrorType.NO_ERROR) {
// XY, XY_ASYMMETRIC
for (int i = 0; i < localCachedPoints.actualDataCount; i++) {
final double width = Math.max(minSize, localCachedPoints.errorXPos[i] - localCachedPoints.errorXNeg[i]);
final double height = Math.max(minSize,
localCachedPoints.errorYNeg[i] - localCachedPoints.errorYPos[i]);
final double height = Math.max(minSize, localCachedPoints.errorYNeg[i] - localCachedPoints.errorYPos[i]);

Check warning on line 373 in chartfx-chart/src/main/java/io/fair_acc/chartfx/renderer/spi/ErrorDataSetRenderer.java

View check run for this annotation

Codecov / codecov/patch

chartfx-chart/src/main/java/io/fair_acc/chartfx/renderer/spi/ErrorDataSetRenderer.java#L373

Added line #L373 was not covered by tests
final double x = localCachedPoints.xValues[i] - width;
final double y = localCachedPoints.yValues[i] - height;

Expand Down

0 comments on commit 88ac0ed

Please sign in to comment.