From 7223cd2a80ae71478cc82e6da56b84044935bf6a Mon Sep 17 00:00:00 2001 From: Kimberly Meechan <24316371+K-Meech@users.noreply.github.com> Date: Thu, 2 Oct 2025 19:57:02 +0100 Subject: [PATCH] avoid negative array size in makeLine --- src/main/java/ij3d/shapes/BoundingBox.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/ij3d/shapes/BoundingBox.java b/src/main/java/ij3d/shapes/BoundingBox.java index b9be432..e9174c9 100644 --- a/src/main/java/ij3d/shapes/BoundingBox.java +++ b/src/main/java/ij3d/shapes/BoundingBox.java @@ -198,12 +198,18 @@ private Appearance createAppearance(final Color3f color) { private Geometry makeLine(final Point3f start, final Point3f end, final Color3f color, final float tickDistance, final float first, - final float tickSize, final boolean noTicks) + final float tickSize, boolean noTicks) { final float lineLength = start.distance(end); final int nTicks = (int) Math.floor((lineLength - first) / tickDistance) + 1; + // Avoid negative array size. This occurs when the (lineLength - first) + // is negative. + if (nTicks < 1) { + noTicks = true; + } + final int n = noTicks ? 2 : nTicks * 6 + 2; final Point3f[] coords = new Point3f[n];