diff --git a/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/InfoLayer.java b/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/InfoLayer.java index ac972ef6b..1a07a69a2 100755 --- a/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/InfoLayer.java +++ b/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/InfoLayer.java @@ -347,7 +347,9 @@ public void paint(Graphics2D g2) { } } setPosition( - Position.TopRight, bound.width - border, drawY - fontHeight + GuiUtils.getScaleLength(5)); + Position.TopRight, + (double) bound.width - border, + drawY - fontHeight + GuiUtils.getScaleLength(5)); drawY = bound.height - border - GuiUtils.getScaleLength(1.5f); // -1.5 for outline if (hideMin) { corner = modality.getCornerInfo(CornerDisplay.BOTTOM_RIGHT); @@ -377,7 +379,8 @@ public void paint(Graphics2D g2) { drawY -= 5; drawSeriesInMemoryState(g2, view2DPane.getSeries(), bound.width - border, (int) (drawY)); } - setPosition(Position.BottomRight, bound.width - border, drawY - GuiUtils.getScaleLength(5)); + setPosition( + Position.BottomRight, (double) bound.width - border, drawY - GuiUtils.getScaleLength(5)); // Boolean synchLink = (Boolean) view2DPane.getActionValue(ActionW.SYNCH_LINK); // String str = synchLink != null && synchLink ? "linked" : "unlinked"; // NON-NLS @@ -518,8 +521,9 @@ public void paint(Graphics2D g2) { } } else { setPosition(Position.TopLeft, border, border); - setPosition(Position.TopRight, bound.width - border, border); - setPosition(Position.BottomRight, bound.width - border, bound.height - border); + setPosition(Position.TopRight, (double) bound.width - border, border); + setPosition( + Position.BottomRight, (double) bound.width - border, (double) bound.height - border); } drawExtendedActions(g2); diff --git a/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/ArcBallController.java b/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/ArcBallController.java index e75c80b6f..438ffed74 100644 --- a/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/ArcBallController.java +++ b/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/ArcBallController.java @@ -27,7 +27,7 @@ public abstract class ArcBallController extends SliderChangeListener implements private MouseActionAdapter window = null; private MouseActionAdapter level = null; - public ArcBallController(MprController controller) { + protected ArcBallController(MprController controller) { super(ActionW.ROTATION, 0, 360, 0, true, 0.25); this.controller = controller; this.lastMousePosition = new Vector2d(); @@ -125,18 +125,20 @@ public void mousePressed(MouseEvent e) { // if (view3d != null && !e.isConsumed() && (modifier & buttonMask) != 0) { int mask = InputEvent.CTRL_DOWN_MASK; if ((modifier & mask) == mask) { - view3d.setCursor(ActionW.WINLEVEL.getCursor()); - window = view3d.getAction(ActionW.WINDOW); - if (window != null) { - window.setButtonMaskEx(window.getButtonMaskEx() | buttonMask); - window.setMoveOnX(true); - window.mousePressed(e); - } - level = view3d.getAction(ActionW.LEVEL); - if (level != null) { - level.setButtonMaskEx(level.getButtonMaskEx() | buttonMask); - level.setInverse(true); - level.mousePressed(e); + if (view3d != null) { + view3d.setCursor(ActionW.WINLEVEL.getCursor()); + window = view3d.getAction(ActionW.WINDOW); + if (window != null) { + window.setButtonMaskEx(window.getButtonMaskEx() | buttonMask); + window.setMoveOnX(true); + window.mousePressed(e); + } + level = view3d.getAction(ActionW.LEVEL); + if (level != null) { + level.setButtonMaskEx(level.getButtonMaskEx() | buttonMask); + level.setInverse(true); + level.mousePressed(e); + } } } else { releaseWinLevelAdapter(); diff --git a/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/AxisDirection.java b/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/AxisDirection.java index c937f3955..1324f2c3e 100644 --- a/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/AxisDirection.java +++ b/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/AxisDirection.java @@ -24,8 +24,12 @@ public class AxisDirection { private final Color color; private final String name; - private final Vector3d axisX, axisY, axisZ; - private final Color xColor, yColor, zColor; + private final Vector3d axisX; + private final Vector3d axisY; + private final Vector3d axisZ; + private final Color xColor; + private final Color yColor; + private final Color zColor; private final boolean invertedDirection; public AxisDirection(SliceOrientation viewOrientation) { @@ -132,10 +136,10 @@ public void drawAxes(Graphics2D g2d, MprView mprView) { Vector3d arrow3 = getArrowDirection(axis, dirZ, axisLength); Vector3d[] arrows = {arrow1, arrow2, arrow3}; - double minX = Double.MAX_VALUE, - minY = Double.MAX_VALUE, - maxX = Double.MIN_VALUE, - maxY = Double.MIN_VALUE; + double minX = Double.MAX_VALUE; + double minY = Double.MAX_VALUE; + double maxX = Double.MIN_VALUE; + double maxY = Double.MIN_VALUE; for (Vector3d arrow : arrows) { if (arrow.x < minX) minX = arrow.x; if (arrow.y < minY) minY = arrow.y; @@ -144,7 +148,7 @@ public void drawAxes(Graphics2D g2d, MprView mprView) { } Point2D pt = mprView.getInfoLayer().getPosition(Position.TopLeft); - double dimX = Math.sqrt(axisLength * axisLength) * 2.0; + double dimX = Math.sqrt((double) axisLength * axisLength) * 2.0; double dimY = dimX; if (pt != null) { @@ -180,7 +184,7 @@ private void drawAxisLine(Graphics2D g2d, Vector3d arrow, Point offset) { private void drawArrowHead(Graphics2D g2d, int xTip, int yTip, int xBase, int yBase) { final int arrowHeadSize = 10; - double angle = Math.atan2(yTip - yBase, xTip - xBase); + double angle = Math.atan2((double) yTip - yBase, (double) xTip - xBase); int x1 = xTip - (int) (arrowHeadSize * Math.cos(angle - Math.PI / 6)); int y1 = yTip - (int) (arrowHeadSize * Math.sin(angle - Math.PI / 6)); diff --git a/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/VolParams.java b/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/VolParams.java deleted file mode 100644 index 5277659c8..000000000 --- a/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/VolParams.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2024 Weasis Team and other contributors. - * - * This program and the accompanying materials are made available under the terms of the Eclipse - * Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0, or the Apache - * License, Version 2.0 which is available at https://www.apache.org/licenses/LICENSE-2.0. - * - * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 - */ -package org.weasis.dicom.viewer2d.mpr; - -import org.weasis.dicom.viewer2d.mpr.MprView.SliceOrientation; - -/** The VolParams record represents volume parameters in a 3D space. */ -public record VolParams( - int width, - int height, - int depth, - SliceOrientation orientation, - double[] pixelSpacing, - double[] imageOrientation, - Object[] imagePosition) {} diff --git a/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/VolumeShort.java b/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/VolumeShort.java index 06827b452..0691658f7 100644 --- a/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/VolumeShort.java +++ b/weasis-dicom/weasis-dicom-viewer2d/src/main/java/org/weasis/dicom/viewer2d/mpr/VolumeShort.java @@ -25,10 +25,13 @@ import org.joml.Quaterniond; import org.joml.Vector3d; import org.joml.Vector3i; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.weasis.opencv.data.ImageCV; import org.weasis.opencv.data.PlanarImage; public class VolumeShort extends Volume { + private static final Logger LOGGER = LoggerFactory.getLogger(VolumeShort.class); private short[][][] data; @@ -189,7 +192,7 @@ public void saveVolumeInFile(File file) { } } } catch (IOException e) { - e.printStackTrace(); + LOGGER.error("Cannot save volume in file", e); } } @@ -215,7 +218,7 @@ public static Volume readVolumeFromFile(File file) { } } } catch (IOException e) { - e.printStackTrace(); + LOGGER.error("Cannot read volume from file", e); } return volume; }