diff --git a/.gitignore b/.gitignore index b2f15ce895696fd311b35bd9ebb831c094d75ac0..57f16fb67c1b1589981416b323d7a9debc728665 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,41 @@ -.idea/ -.settings/ -build/ +/build* +/workspace +setting.xml +release/ target/ -bin/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ +icy.log + +### IntelliJ IDEA ### +.idea/ +*.iws *.iml -*.jar +*.ipr + +### Eclipse ### +.apt_generated .classpath +.factorypath .project -export.jardesc -**/.DS_Store \ No newline at end of file +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +**/.DS_Store +Icon? \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3c8ae15a3d8fd31a78ccd09ee0ab247463756965..6f8278b2a8af96065eb39a9c6a539e93e4785086 100644 --- a/pom.xml +++ b/pom.xml @@ -7,13 +7,11 @@ <parent> <groupId>org.bioimageanalysis.icy</groupId> <artifactId>pom-icy</artifactId> - <version>2.2.0</version> + <version>3.0.0-a.1</version> </parent> <artifactId>convexify</artifactId> - <version>3.0.0</version> - - <packaging>jar</packaging> + <version>3.0.0-a.1</version> <name>Convexify</name> <description> @@ -21,6 +19,14 @@ </description> <dependencies> + <dependency> + <groupId>org.bioimageanalysis.icy</groupId> + <artifactId>kernel-extensions</artifactId> + </dependency> + <dependency> + <groupId>org.bioimageanalysis.icy</groupId> + <artifactId>ezplug</artifactId> + </dependency> <dependency> <groupId>org.bioimageanalysis.icy</groupId> <artifactId>protocols</artifactId> @@ -33,12 +39,16 @@ <groupId>org.bioimageanalysis.icy</groupId> <artifactId>3d-mesh-roi</artifactId> </dependency> + <dependency> + <groupId>org.bioimageanalysis.icy</groupId> + <artifactId>vecmath</artifactId> + </dependency> </dependencies> <repositories> <repository> <id>icy</id> - <url>https://icy-nexus.pasteur.fr/repository/Icy/</url> + <url>https://nexus-icy.pasteur.cloud/repository/icy/</url> </repository> </repositories> </project> \ No newline at end of file diff --git a/src/main/java/plugins/adufour/roi/Convexify.java b/src/main/java/plugins/adufour/roi/Convexify.java index ef15db7f09951d41c34c7c66e99a226d02d04bc9..aa48917f28b4c7d001bad52c8edc3e5012e0c3ce 100644 --- a/src/main/java/plugins/adufour/roi/Convexify.java +++ b/src/main/java/plugins/adufour/roi/Convexify.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2023. Institut Pasteur. + * Copyright (c) 2010-2024. Institut Pasteur. * * This file is part of Icy. * Icy is free software: you can redistribute it and/or modify @@ -18,12 +18,19 @@ package plugins.adufour.roi; -import icy.roi.ROI; -import icy.roi.ROI2D; -import icy.roi.ROI3D; -import icy.roi.ROIUtil; -import icy.sequence.Sequence; -import icy.type.point.Point3D; +import org.bioimageanalysis.extension.kernel.roi.roi2d.ROI2DArea; +import org.bioimageanalysis.extension.kernel.roi.roi2d.ROI2DPolygon; +import org.bioimageanalysis.extension.kernel.roi.roi2d.ROI2DShape; +import org.bioimageanalysis.extension.kernel.roi.roi3d.ROI3DArea; +import org.bioimageanalysis.icy.common.geom.point.Point3D; +import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginIcon; +import org.bioimageanalysis.icy.extension.plugin.annotation_.IcyPluginName; +import org.bioimageanalysis.icy.model.roi.ROI; +import org.bioimageanalysis.icy.model.roi.ROI2D; +import org.bioimageanalysis.icy.model.roi.ROI3D; +import org.bioimageanalysis.icy.model.roi.ROIUtil; +import org.bioimageanalysis.icy.model.sequence.Sequence; +import org.jetbrains.annotations.NotNull; import plugins.adufour.blocks.tools.roi.ROIBlock; import plugins.adufour.blocks.util.VarList; import plugins.adufour.ezplug.EzPlug; @@ -33,23 +40,18 @@ import plugins.adufour.quickhull.QuickHull2D; import plugins.adufour.quickhull.QuickHull3D; import plugins.adufour.roi.mesh.polygon.ROI3DPolygonalMesh; import plugins.adufour.vars.lang.VarROIArray; -import plugins.kernel.roi.roi2d.ROI2DArea; -import plugins.kernel.roi.roi2d.ROI2DPolygon; -import plugins.kernel.roi.roi2d.ROI2DShape; -import plugins.kernel.roi.roi3d.ROI3DArea; import javax.vecmath.Point3d; import java.awt.geom.Point2D; import java.util.Arrays; import java.util.List; +@IcyPluginName("Convexify") +@IcyPluginIcon(path = "/convexify.png") public class Convexify extends EzPlug implements ROIBlock { private final EzVarSequence input = new EzVarSequence("Input sequence"); - private final EzVarBoolean replace = new EzVarBoolean("Replace existing ROI", false); - private final VarROIArray roiIN = new VarROIArray("List of ROI"); - private final VarROIArray roiOUT = new VarROIArray("List of ROI"); @Override @@ -96,11 +98,11 @@ public class Convexify extends EzPlug implements ROIBlock { * future. * @throws IllegalArgumentException if the specified ROI is not supported */ - public static ROI createConvexROI(final ROI roi) throws IllegalArgumentException { + public static @NotNull ROI createConvexROI(final ROI roi) throws IllegalArgumentException { ROI output = null; try { - if (roi instanceof ROI2D) { + if (roi instanceof final ROI2D roi2d) { final List<Point2D> envelope; if (roi instanceof ROI2DShape) { @@ -118,12 +120,11 @@ public class Convexify extends EzPlug implements ROIBlock { output = new ROI2DPolygon(envelope); // copy position info - final ROI2D roi2d = (ROI2D) roi; ((ROI2D) output).setT(roi2d.getT()); ((ROI2D) output).setZ(roi2d.getZ()); ((ROI2D) output).setC(roi2d.getC()); } - else if (roi instanceof ROI3D) { + else if (roi instanceof final ROI3D roi3d) { final Point3D[] points = ((ROI3D) roi).getBooleanMask(true).getContourPoints(); // convert to vecmath's Point3d @@ -140,7 +141,6 @@ public class Convexify extends EzPlug implements ROIBlock { output = new ROI3DPolygonalMesh(qhull); // copy position info - final ROI3D roi3d = (ROI3D) roi; ((ROI3D) output).setT(roi3d.getT()); ((ROI3D) output).setC(roi3d.getC()); } @@ -162,12 +162,12 @@ public class Convexify extends EzPlug implements ROIBlock { } @Override - public void declareInput(final VarList inputMap) { + public void declareInput(final @NotNull VarList inputMap) { inputMap.add("Regions of interest", roiIN); } @Override - public void declareOutput(final VarList outputMap) { + public void declareOutput(final @NotNull VarList outputMap) { outputMap.add("Regions of interest", roiOUT); } } diff --git a/src/main/resources/convexify.png b/src/main/resources/convexify.png new file mode 100644 index 0000000000000000000000000000000000000000..8b534343c248ab246770930bde041725bc46e0ce Binary files /dev/null and b/src/main/resources/convexify.png differ