From 5841fd73a937a6c3c48ae88095348d5cab652478 Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 23 Apr 2024 10:07:07 -0400 Subject: [PATCH 01/45] To fix the clicking accuracy issues, the old version(2022) of MIPAV for PickVolum3D were retrieved to replace the current one. --- .../WildMagic/Render/VolumeImage.java | 4784 +++++++++-------- .../WildMagic/VolumeTriPlanarRender.java | 34 + 2 files changed, 2427 insertions(+), 2391 deletions(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/Render/VolumeImage.java b/src/gov/nih/mipav/view/renderer/WildMagic/Render/VolumeImage.java index 704026790d..ef09e08086 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/Render/VolumeImage.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/Render/VolumeImage.java @@ -1,2391 +1,2393 @@ -package gov.nih.mipav.view.renderer.WildMagic.Render; - - -import static java.lang.System.nanoTime; -import static java.lang.System.out; -import gov.nih.mipav.model.algorithms.filters.AlgorithmGradientMagnitudeSep; -import gov.nih.mipav.model.algorithms.filters.OpenCL.filters.OpenCLAlgorithmGradientMagnitude; -import gov.nih.mipav.model.algorithms.filters.OpenCL.filters.OpenCLAlgorithmVolumeNormals; -import gov.nih.mipav.model.file.*; -import gov.nih.mipav.model.structures.*; - -import gov.nih.mipav.view.*; -import gov.nih.mipav.view.dialogs.*; -import gov.nih.mipav.view.renderer.WildMagic.VolumeTriPlanarInterface; - -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.io.*; -import java.nio.Buffer; -import java.util.BitSet; -import java.util.Vector; - - -import org.jocl.CL; - -import WildMagic.LibFoundation.Mathematics.ColorRGB; -import WildMagic.LibFoundation.Mathematics.ColorRGBA; -import WildMagic.LibFoundation.Mathematics.Vector2f; -import WildMagic.LibGraphics.Rendering.*; - -/** * - * The VolumeImage class provides an interface between the MIPAV ModelImage and the 2D and 3D Textures used to render - * the ModelImage on the GPU. The VolumeImage creates the supporting Texture and GraphicImage objects that pass - * the ModelImage data to the GPU. It also creates Texture and GraphicsImage objects for the ModelImage Look-up Table (LUT) - * and the ModelImage opacity transfer function. Other textures that are used for advanced volume rendering, such as - * a normal map for surface rendering, and the gradient-magnitude and laplace images for the multi-histogram rendering are - * calculated and passed on-demand to the GPU when the user selects these options in the Volume-Renderer user-interface. - * - * The VolumeImage data structure handles all GPU content for rendering one ModelImage. All Textures and GraphicsImages - * are initialized and stored in the VolumeImage. When needed by the renderer they are loaded onto the GPU. Any images - * that are derived from the ModelImage: Normal map, Gradient Magnitude, Laplace, are either read from file or calculated - * and then written to file. The supporting files are stored in a directory on disk located next to the original ModelImage. - * The directory is named with the ModelImage name followed by "_RenderFiles". - * - * - */ -public class VolumeImage implements Serializable { - /** */ - private static final long serialVersionUID = -7254697711265907746L; - - /** Reference to ModelImage image */ - private ModelImage m_kImage; - private ModelImage m_kImageGM; - - /** GraphicsImage contains GM opacity transfer function data: */ - private GraphicsImage m_kOpacityMap_GM = null; - - /** - * Texture contains texture filter modes and GraphicsImage for opacity transfer function: - */ - private Texture m_kOpacityMapTarget_GM = null; - - /** Data storage for volume: */ - private GraphicsImage[] m_kVolume; - - /** Texture object for data: */ - private Texture m_kVolumeTarget; - - /** Data storage for normals: */ - private GraphicsImage[] m_kNormal; - /** Set to true if the Normal Map has been initialized. */ - private boolean m_bNormalsInit = false; - - /** Texture object for normal map: */ - private Texture m_kNormalMapTarget; - - /** Texture object for GPU computations: */ - private Texture m_kScratchTarget; - - /** Data storage for color map: */ - private GraphicsImage m_kColorMap; - - /** Texture object for color map: */ - private Texture m_kColorMapTarget; - - /** Data storage for volume gradient magnitude: */ - private GraphicsImage[] m_kVolumeGM; - /** Set to true if the Gradient Magnitude texture map has been initialized. */ - private boolean m_bGMInit = false; - - /** Texture object for volume gradient magnitude data: */ - private Texture m_kVolumeGMTarget; - - /** Data storage for surfaces: */ - private GraphicsImage m_kSurfaceImage; - - /** Texture object for surfaces: */ - private Texture m_kSurfaceTarget; - - /** ModelLUT */ - private ModelLUT m_kLUT = null; - - /** ModelRGB */ - private ModelRGB m_kRGBT = null; - - /** Image scale factors for display in 3D */ - private float m_fX = 1, m_fY = 1, m_fZ = 1, m_fMax = 1; - private int m_iMaxExtent = 1; - - /** Image name post-fix typically either 'A' or 'B' */ - private String m_kPostfix = null; - - /** Directory for calculated images */ - private String m_kDir = null; - - /** Histogram data for multi-histogram interface */ - private GraphicsImage[] m_kHisto = null; - /** Set to true when the multi-histogram histogram texture has been initialized. */ - private boolean m_bHistoInit = false; - - /** Texture object for data: */ - private Texture m_kHistoTarget; - - /** Texture coordinates for displaying histogram in 2D */ - private Vector2f[] m_akHistoTCoord = null; - - private float m_fDRRNormalize = 255.0f; - - /** Current position in time (4D data) */ - private int m_iTimeSlice = 0; - - /** Total number of time-slices (4D data) */ - private int m_iTimeSteps = 0; - - /** 3D sub-images (4D data) */ -// private ModelImage[] m_akImages; -// private ModelImage[] m_akImagesGM; - - private Vector2f[] m_akGradientMagMinMax; - - private TransferFunction opacityTransferFn; - - /* Default Constructor */ - public VolumeImage() {} - - /** - * Create a Volume image with the input ModelImage. The supporting images for advanced volume rendering, such as - * the normal map, gradient magnitude and laplace images are generated on-demand and stored in a directory for - * later use. The directory is created if it does not already exist, with the ModelImage name + "_RenderFiles" as - * the directory name. - * - * @param bClone, when true clone the input ModelImage, when false reference the ModelImage - * @param kImage input ModelImage - * @param kPostfix Postfix for images 'A' or 'B' - * @param kProgress progress bar - * @param iProgress progress bar increment - */ - public VolumeImage(boolean bClone, final ModelImage kImage, final String kPostfix, final ViewJProgressBar kProgress, final int iProgress) { - this( bClone, kImage, kPostfix, kProgress, iProgress, true ); - } - - public VolumeImage(boolean bClone, final ModelImage kImage, final String kPostfix, final ViewJProgressBar kProgress, final int iProgress, boolean initGradientMagnitude) { - m_kPostfix = new String(kPostfix); - // clone the input image, in the future this might be a reference. - if ( bClone ) - { - m_kImage = (ModelImage)kImage.clone(); - } - else - { - m_kImage = kImage; - } - // Initialize the Texture maps. - init(kProgress, iProgress, initGradientMagnitude); - } - - /** - * Copy the data from the input GraphicsImage and return a new ModelImage of that data. - * Any changes to the GraphicsImage that occur only on the GPU can first be written from - * the GPU back into the GraphicsImage CPU data storage. This enables calculations that - * are performed on the GPU to be written back into a ModelImage data structure. - * - * @param kImage Graphics Image to copy - * @param bSwap when true convert from RGBA (graphics format) to ARGB (ModelImage format) - * @return new ModelImage from Volume Texture on GPU. - */ - public static ModelImage CreateImageFromTexture(final GraphicsImage kImage, final boolean bSwap) { - final int iXBound = kImage.GetBound(0); - final int iYBound = kImage.GetBound(1); - final int iZBound = kImage.GetBound(2); - final int iSize = iXBound * iYBound * iZBound; - final int[] extents = new int[] {iXBound, iYBound, iZBound}; - - ModelImage kResult = null; - if (kImage.GetFormat() == GraphicsImage.FormatMode.IT_RGBA8888) { - byte[] aucData = kImage.GetData(); - if (bSwap) { - byte bVal = 0; - aucData = new byte[4 * iXBound * iYBound * iZBound]; - for (int i = 0; i < iSize; i += 4) { - if (kImage.GetData()[i + 1] > bVal) { - bVal = kImage.GetData()[i + 1]; - } - aucData[i] = kImage.GetData()[i + 3]; - aucData[i + 1] = kImage.GetData()[i + 1]; - aucData[i + 2] = kImage.GetData()[i + 2]; - aucData[i + 3] = kImage.GetData()[i]; - //System.err.println( kImage.GetData()[i + 3] + " " + kImage.GetData()[i + 1] + " " + kImage.GetData()[i + 2] ); - } - // System.err.println( bVal ); - } - try { - kResult = new ModelImage(ModelStorageBase.ARGB, extents, ""); - kResult.importData(0, aucData, true); - } catch (final IOException e) { - e.printStackTrace(); - } - } else { - final byte[] aiImageData = kImage.GetData(); - try { - kResult = new ModelImage(ModelStorageBase.UBYTE, extents, ""); - kResult.importData(0, aiImageData, true); - } catch (final IOException e) { - e.printStackTrace(); - } - } - return kResult; - } - - /** - * Initialize the textures for the color lookup table. - * - * @param kLUT the new LUT. - * @param kRGBT the new RGB table. - * @param kPostfix the string postfix to concatenate to the "ColorMap" image name. - * @return GraphicsImage, the new GraphicsImage storing the colormap lookup table. - */ - public static GraphicsImage InitColorMap( Texture kTexture, GraphicsImage kImage, final ModelStorageBase kLUT, final String kPostFix) { - byte[] aucData; - if ( kImage == null ) - { - aucData = new byte[256 * 4]; - } - else - { - aucData = kImage.GetData(); - } - if (kLUT instanceof ModelLUT ) { - // ModelImage is Color, initialize the ModelRGB - ModelLUT.exportIndexedLUTMin((ModelLUT)kLUT, aucData); - } - else if (kLUT instanceof ModelRGB ) { - // Initialize the ModelLUT - ModelLUT.exportIndexedLUTMin((ModelRGB)kLUT, aucData); - } - if ( kImage == null ) - { - // Return the new GraphicsImage containing the table data: - return new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, 256, aucData, new String("ColorMap" + kPostFix)); - } - if ( kTexture != null ) - { - kTexture.Reload(true); - } - return kImage; - } - - - private GraphicsImage initColorMap() { - final byte[] aucData = new byte[256 * 4]; - if (m_kRGBT != null) - { - // ModelImage is Color, initialize the ModelRGB - ModelLUT.exportIndexedLUTMin(m_kRGBT, aucData); - } else if ( m_kLUT != null ) - { - // Initialize the ModelLUT - ModelLUT.exportIndexedLUTMin(m_kLUT, aucData); - } - // Return the new GraphicsImage containing the table data: - return new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, 256, 1, aucData, new String("ColorMap" + m_kImage.getImageName() + m_kPostfix)); - } - - - /** - * When a ModelImage changes on the CPU, this function is used to update the ModelImage - * data on the CPU. - * - * @param kImage Modified ModelImage to copy into the GPU Texture and GraphicsImage - * @param iTimeSlice time value for 4D image, 0 otherwise - * @param kNewImage a new ModelImage (always 3D) that the data or data subset for 4D image can be copied into (when non-null). - * @param kVolumeImage GraphicsImage that will hold the ModelImage data - * @param kVolumeTexture Texture object containing the GraphicsImage - * @param kImageName new image name for the new ModelImage. - * @param bSwap when true swap the ARGB (ModelImage) color data representation to a RGBA (GPU) color representation. - * @return - */ - public static GraphicsImage UpdateData(final ModelImage kImage, final int iTimeSlice, final ModelImage kNewImage, - final GraphicsImage kVolumeImage, final Texture kVolumeTexture, final String kImageName, - final boolean bSwap, final boolean bRescale) { - GraphicsImage kReturn = kVolumeImage; - final int iXBound = kImage.getExtents()[0]; - final int iYBound = kImage.getExtents()[1]; - final int iZBound = kImage.getExtents()[2]; - - byte[] aucData = null; - int iSize = iXBound * iYBound * iZBound; - if (kImage.isColorImage()) { - iSize *= 4; - aucData = new byte[iSize]; - try { - kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); - if (bSwap) { - for (int i = 0; i < iSize; i += 4) { - final byte tmp = aucData[i]; - aucData[i] = aucData[i + 1]; - aucData[i + 1] = aucData[i + 2]; - aucData[i + 2] = aucData[i + 3]; - aucData[i + 3] = tmp; - } - } - } catch (final IOException e) { - e.printStackTrace(); - } - if (kReturn == null) { - kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData, - kImageName); - } else { - kReturn.SetData(aucData, iXBound, iYBound, iZBound); - } - } else { - aucData = new byte[iSize]; - try { - kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); - // Temporary make the texture an RGBA texture until JOGL2 fixes NPOT textures. - byte[] aucData2 = new byte[iSize*4]; - for (int i = 0; i < iSize; i++) { - aucData2[i * 4 + 0] = aucData[i]; - aucData2[i * 4 + 1] = aucData[i]; - aucData2[i * 4 + 2] = aucData[i]; - aucData2[i * 4 + 3] = 1; - } - - if (kReturn == null) { - kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData2, - kImageName); - } else { - kReturn.SetData(aucData2, iXBound, iYBound, iZBound); - } - } catch (final IOException e) { - e.printStackTrace(); - } - - } - if (kNewImage != null) { - try { - kNewImage.importData(0, aucData, true); - } catch (final IOException e) {} - } - if (kVolumeTexture != null) { - kVolumeTexture.Reload(true); - } - return kReturn; - } - - private GraphicsImage initVolumeData(final ModelImage kImage, final int iTimeSlice, - final Texture kVolumeTexture, final String kImageName, final boolean bSwap, final boolean bRescale) - { - GraphicsImage kReturn = null; - final int iXBound = kImage.getExtents()[0]; - final int iYBound = kImage.getExtents()[1]; - final int iZBound = kImage.getExtents()[2]; - - byte[] aucData = null; - int iSize = iXBound * iYBound * iZBound; - if (kImage.isColorImage()) { - iSize *= 4; - aucData = new byte[iSize]; - try { - kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); - if (bSwap) { - for (int i = 0; i < iSize; i += 4) { - final byte tmp = aucData[i]; - aucData[i] = aucData[i + 1]; - aucData[i + 1] = aucData[i + 2]; - aucData[i + 2] = aucData[i + 3]; - aucData[i + 3] = tmp; - } - } - } catch (final IOException e) { - e.printStackTrace(); - } - kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData, - kImageName); - } else { - aucData = new byte[iSize]; - try { - kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); - // Temporary make the texture an RGBA texture until JOGL2 fixes NPOT textures. - byte[] aucData2 = new byte[iSize*4]; - for (int i = 0; i < iSize; i++) { - aucData2[i * 4 + 0] = aucData[i]; - aucData2[i * 4 + 1] = aucData[i]; - aucData2[i * 4 + 2] = aucData[i]; - aucData2[i * 4 + 3] = 1; - } - - kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData2, - kImageName); - } catch (final IOException e) { - e.printStackTrace(); - } - - } - if (kVolumeTexture != null) { - kVolumeTexture.Reload(true); - } - return kReturn; - } - - private GraphicsImage resetVolumeData(final ModelImage kImage, final int iTimeSlice, GraphicsImage kGraphicsImage, - final Texture kVolumeTexture, final String kImageName, final boolean bSwap, final boolean bRescale) - { - final int iXBound = kImage.getExtents()[0]; - final int iYBound = kImage.getExtents()[1]; - final int iZBound = kImage.getExtents()[2]; - int iSize = iXBound * iYBound * iZBound; - - byte[] aucData = null; - if (kImage.isColorImage()) { - iSize *= 4; - aucData = kGraphicsImage.GetData(); - try { - kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); - if (bSwap) { - for (int i = 0; i < iSize; i += 4) { - final byte tmp = aucData[i]; - aucData[i] = aucData[i + 1]; - aucData[i + 1] = aucData[i + 2]; - aucData[i + 2] = aucData[i + 3]; - aucData[i + 3] = tmp; - } - } - } catch (final IOException e) { - e.printStackTrace(); - } - } - else { - aucData = new byte[iSize]; - try { - kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); - byte[] aucData2 = kGraphicsImage.GetData(); - for (int i = 0; i < iSize; i++) { - aucData2[i * 4 + 0] = aucData[i]; - aucData2[i * 4 + 1] = aucData[i]; - aucData2[i * 4 + 2] = aucData[i]; - aucData2[i * 4 + 3] = 1; - } - } catch (final IOException e) { - e.printStackTrace(); - } - - } - if (kVolumeTexture != null) { - kVolumeTexture.Reload(true); - } - return kGraphicsImage; - } - - private void addNormals(final ModelImage kImage, final int iTimeSlice) { - final int iXBound = kImage.getExtents()[0]; - final int iYBound = kImage.getExtents()[1]; - final int iZBound = kImage.getExtents()[2]; - - int iSize = iXBound * iYBound * iZBound; - byte[] aucData = new byte[iSize * 4]; - try { - kImage.exportDataUseMask(0, iSize * 4, true, aucData); - byte[] volumeData = m_kVolume[iTimeSlice].GetData(); - for (int i = 0; i < iSize; i++) { - volumeData[i*4 + 1] = aucData[i*4 + 1]; - volumeData[i*4 + 2] = aucData[i*4 + 2]; - volumeData[i*4 + 3] = aucData[i*4 + 3]; - } - } catch (final IOException e) { - e.printStackTrace(); - } - m_kVolumeTarget.Reload(true); - } - - - private GraphicsImage createGM_Laplace(final ModelImage kImageGM, final ModelImage kImageL, - final GraphicsImage kVolumeImage, - final int iTimeSlice, final boolean bSwap) { - - GraphicsImage kReturn = kVolumeImage; - final int iXBound = kImageGM.getExtents()[0]; - final int iYBound = kImageGM.getExtents()[1]; - final int iZBound = kImageGM.getExtents()[2]; - - int iSize = iXBound * iYBound * iZBound; - byte[] aucDataL = new byte[iSize]; - - if ( kImageL != null ) - { - try { - kImageL.exportDataUseMask(0, iSize, false, aucDataL); - } catch (final IOException e) { - e.printStackTrace(); - } - } - - byte[] aucDataGM = null; - if (kImageGM.isColorImage()) { - iSize *= 4; - aucDataGM = new byte[iSize]; - try { - kImageGM.exportDataUseMask(0, iSize, false, aucDataGM); - if (bSwap) { - for (int i = 0, j = 0; i < iSize; i += 4) { - aucDataGM[i] = aucDataGM[i + 1]; - aucDataGM[i + 1] = aucDataGM[i + 2]; - aucDataGM[i + 2] = aucDataGM[i + 3]; - if ( kImageL != null ) - { - aucDataGM[i + 3] = aucDataL[j++]; - } - } - } - kImageGM.importData( 0, aucDataGM, false ); - } catch (final IOException e) { - e.printStackTrace(); - } - if (kReturn == null) { - kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucDataGM, - kImageGM.getImageName()); - } else { - kReturn.SetData(aucDataGM, iXBound, iYBound, iZBound); - } - } - else - { - try { - aucDataGM = new byte[iSize]; - kImageGM.exportDataUseMask(0, iSize, false, aucDataGM); - byte[] aucData2 = new byte[iSize*4]; - for (int i = 0; i < iSize; i++) { - aucData2[i * 4 + 0] = aucDataGM[i]; - aucData2[i * 4 + 1] = aucDataGM[i]; - aucData2[i * 4 + 2] = aucDataGM[i]; - if ( kImageL != null ) - { - aucData2[i * 4 + 3] = aucDataL[i]; - } - } - - if (kReturn == null) { - kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData2, - kImageGM.getImageName()); - } else { - kReturn.SetData(aucData2, iXBound, iYBound, iZBound); - } - } catch (final IOException e) { - e.printStackTrace(); - } catch ( java.lang.OutOfMemoryError e ) { - return null; - } - aucDataGM = null; - } - return kReturn; - } - - - - /** - * Creates a new GraphicsImage for the input ModelSimpleImage. The ModelSimpleImage data is - * referenced by the new GraphicsImage and will be passed to the GPU as a texture. - * @param kImage input ModelSimpleImage. - * @param kImageName name for the GraphicsImage. - * @return a new GraphcisImage. - */ - public static GraphicsImage UpdateData(final ModelSimpleImage kImage, final String kImageName) { - final GraphicsImage.FormatMode eType = GraphicsImage.FormatMode.IT_L32F; - - if (kImage.nDims == 3) { - return new GraphicsImage(eType, kImage.extents[0], kImage.extents[1], kImage.extents[2], kImage.data, - kImageName); - } - return new GraphicsImage(eType, kImage.extents[0], kImage.extents[1], 1, kImage.data, kImageName); - } - - /** - * When the LUT changes, this function updates the LUT data on the GPU. - * - * @param kColorTexture the color-map Texture object. - * @param kColorMap the color-map GraphicsImage object (stores data). - * @param kLUT the updated or new LUT. - */ - public static void UpdateImages(final Texture kColorTexture, final GraphicsImage kColorMap, final ModelLUT kLUT) { - if (kLUT == null) { - return; - } - ModelLUT.exportIndexedLUTMin(kLUT, kColorMap.GetData()); - kColorTexture.Reload(true); - } - - /** - * When the ModelImage data is rendered as a solid surface, the Normal map is used in the rendering. - * The Normal map is calculated on the GPU by one of the GLSL shader programs. This function is called - * after the GPU calculation has finished and the GPU data has been copied into a new ModelImage on the CPU - * the new ModelImage then contains the Normal map information, which is written into a file and - * copied into the Normal map GraphicsImage used to render the original ModelImage. - * - * @param i current 3D sub-image for 4D data. If the data is 3D this value should be 0. - * @param kImage a new ModelImage containing the calculated Normals. - */ - public void CopyNormalFiles(final int i, final ModelImage kImage) { - final String kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), "_Normal_" - + i); - JDialogBase.updateFileInfo( m_kImage, kImage ); - ModelImage.saveImage( kImage, kImageName + ".xml", m_kDir, false ); - if ( m_kImage.isColorImage() ) - { - m_kNormal[i] = initVolumeData(kImage, 0, m_kNormalMapTarget, kImage.getImageName(), true, true); - } - else - { - addNormals(kImage, i); - } - } - - /** - * Read the current Volume Texture from the GPU and return a new ModelImage of that data. - * - * @return new ModelImage from Volume Texture on GPU. - */ - public static ModelImage CreateImageFromTexture(final GraphicsImage kImage) { - final int[] extents = new int[ kImage.GetDimension() ]; - for ( int i = 0; i < extents.length; i++ ) - { - extents[i] = kImage.GetBound(i); - } - - //GraphicsImage.Type eType = kImage.GetType(); - int type = ModelStorageBase.ARGB; - /* - switch ( eType ) - { - case IT_BYTE : type = ModelStorageBase.BYTE; break; - case IT_UBYTE : type = ModelStorageBase.UBYTE; break; - case IT_SHORT : type = ModelStorageBase.SHORT; break; - case IT_USHORT : type = ModelStorageBase.USHORT; break; - case IT_INT : type = ModelStorageBase.INTEGER; break; - case IT_UINT : type = ModelStorageBase.UINTEGER; break; - case IT_LONG : type = ModelStorageBase.LONG; break; - case IT_FLOAT : type = ModelStorageBase.FLOAT; break; - case IT_DOUBLE : type = ModelStorageBase.DOUBLE; break; - } - */ - final ModelImage kResult = new ModelImage(type, extents, kImage.GetName() ); - int size = kImage.GetQuantity(); - for ( int i = 0; i < size;i++ ) - { - kResult.set(i*4 + 1, kImage.GetData()[i*3 + 0]); - kResult.set(i*4 + 2, kImage.GetData()[i*3 + 1]); - kResult.set(i*4 + 3, kImage.GetData()[i*3 + 2]); - } - return kResult; - } - - /** - * Memory cleanup. - */ - public void dispose() { - if (m_kImage == null) { - return; - } - m_kImage.disposeLocal(); - m_kImage = null; - - for (final GraphicsImage element : m_kVolume) { - element.dispose(); - } - m_kVolume = null; - m_kVolumeTarget.dispose(); - m_kVolumeTarget = null; - - if ( m_kNormal != null ) - { - for (final GraphicsImage element : m_kNormal) { - element.dispose(); - } - m_kNormal = null; - } - if ( m_kNormalMapTarget != null ) - { - m_kNormalMapTarget.dispose(); - m_kNormalMapTarget = null; - } - - m_kScratchTarget.dispose(); - m_kScratchTarget = null; - - m_kColorMap.dispose(); - m_kColorMap = null; - m_kColorMapTarget.dispose(); - m_kColorMapTarget = null; - - if ( m_kImageGM != null ) - { - m_kImageGM.disposeLocal(); - m_kImageGM = null; - } - - for (final GraphicsImage element : m_kVolumeGM) { - if ( element != null ) - element.dispose(); - } - m_kVolumeGM = null; - m_kVolumeGMTarget.dispose(); - m_kVolumeGMTarget = null; - - - m_kOpacityMap_GM.dispose(); - m_kOpacityMap_GM = null; - m_kOpacityMapTarget_GM.dispose(); - m_kOpacityMapTarget_GM = null; - - if (m_kSurfaceImage != null) { - m_kSurfaceImage.dispose(); - m_kSurfaceImage = null; - m_kSurfaceTarget.dispose(); - m_kSurfaceTarget = null; - } - - m_kLUT = null; - m_kPostfix = null; - if ( m_kHisto != null ) - { - for (final GraphicsImage element : m_kHisto) { - if ( element != null ) - { - element.dispose(); - } - } - m_kHisto = null; - } - m_akHistoTCoord = null; - } - - - /** - * This function is called when the user selects the Surface or Composite Surface volume rendering option. - * If the normals have already been initialized the function returns. Otherwise the function checks if the - * normals are available in a file on disk, and if so if they match the parameters (size, units, resolutions) of - * the original ModelImage. If the files match they are used and the Normal map is read from file. Otherwise this - * function launches the GPU-based Normal calculation. That calculation when finished calls the CopyNormalFiles - * which writes the calculated normals to disk and updates the Normal map on the GPU for rendering. - */ - public void GenerateNormalFiles( VolumeTriPlanarInterface parentFrame ) { - if ( m_bNormalsInit ) - { - return; - } - if ( !m_bNormalsInit ) - { - int dimX = m_kImage.getExtents().length > 0 ? m_kImage.getExtents()[0] : 1; - int dimY = m_kImage.getExtents().length > 1 ? m_kImage.getExtents()[1] : 1; - int dimZ = m_kImage.getExtents().length > 2 ? m_kImage.getExtents()[2] : 1; - ModelImage outputImage = new ModelImage( ModelStorageBase.ARGB_FLOAT, new int[]{dimX,dimY,dimZ}, "temp" ); - for (int i = 0; i < m_iTimeSteps; i++) { - OpenCLAlgorithmVolumeNormals oclNormals = new OpenCLAlgorithmVolumeNormals( m_kImage, outputImage, CL.CL_DEVICE_TYPE_GPU ); - oclNormals.setTime(i); - oclNormals.run(); - if ( m_kImage.isColorImage() ) - { - m_kNormal[i] = initVolumeData(outputImage, 0, m_kNormalMapTarget, outputImage.getImageName(), true, true); - } - else - { - addNormals(outputImage, i); - } - } - m_bNormalsInit = true; - - if ( m_kNormal != null) - { - m_kNormalMapTarget.SetImage(m_kNormal[m_iTimeSlice]); - m_kNormalMapTarget.Reload(true); - } - outputImage.disposeLocal(); - } - } - - /** - * Return the Color Map Texture. - * @return Volume color map Texture. - */ - public Texture GetColorMapTarget() { - return m_kColorMapTarget; - } - - /** - * Return the normalization factor for DDR rendering mode. - * @return normalization factor for DDR rendering mode. - */ - public float getDRRNorm() { - return m_fDRRNormalize; - } - - /** - * Return the Gradient Magnitude Texture. - * @return Gradient Magnitude Texture. - */ - public Texture GetGradientMapTarget() { - return m_kVolumeGMTarget; - } - - /** - * Returns true if the multi-histogram histogram texture has been initialized, false otherwise. - * @return true if the multi-histogram histogram texture has been initialized, false otherwise. - */ - public boolean isHistoInit() - { - return m_bHistoInit; - } - - /** - * Returns the multi-histogram histogram Texture. - * @return the multi-histogram histogram Texture. - */ - public Texture GetHistoTarget() { - return m_kHistoTarget; - } - - -// private ModelImage[] m_akHistogram; -// public ModelImage GetHistogram() { -// -// if ( !m_bHistoInit ) -// { -// SetGradientMagnitude(null, true, m_kPostfix); -// } -// if ( m_akHistogram == null ) -// { -// m_akHistogram = new ModelImage[m_akImages.length]; -// } -// if ( m_akHistogram[m_iTimeSlice] == null ) -// { -// m_akHistogram[m_iTimeSlice] = new ModelImage(ModelStorageBase.INTEGER, new int[]{256,256}, "JointHisto" + m_iTimeSlice); -// try { -// m_akHistogram[m_iTimeSlice].importData(m_kHisto[m_iTimeSlice].GetData()); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// return m_akHistogram[m_iTimeSlice]; -// } - - /** - * Return the texture coordinates for the multi-histogram histogram texture. - * @return the texture coordinates for the multi-histogram histogram texture. - */ - public Vector2f[] GetHistoTCoords() { - return m_akHistoTCoord; - } - - public ModelImage GetGradientMagnitudeImage() - { - return m_kImageGM; - } - - public Vector2f GetGradientMagnitudeMinMax() - { - return m_akGradientMagMinMax[m_iTimeSlice]; - } - - public float GetGradientMagnitudeMin() - { - return m_akGradientMagMinMax[m_iTimeSlice].X; - } - - public float GetGradientMagnitudeMax() - { - return m_akGradientMagMinMax[m_iTimeSlice].Y; - } - - /** - * Return the ModelImage volume data. - * @return ModelImage volume data. - */ - public ModelImage GetImage() { - return m_kImage; - } - - /** - * Return the ModelImage LUT. - * @return Volume LUT. - */ - public ModelLUT GetLUT() { - return m_kLUT; - } - - /** - * Return the Normal map Texture. - * @return Normal map Texture. - */ - public Texture GetNormalMapTarget() { - return m_kNormalMapTarget; - } - - public Texture GetScratchTarget() { - return m_kScratchTarget; - } - - /** - * Return the gradient magnitude opacity transfer function Texture. - * @return gradient magnitude opacity transfer function Texture. - */ - public Texture GetOpacityMapGMTarget() { - return m_kOpacityMapTarget_GM; - } - - /** - * Return the postfix for this VolumeImage. - * @return postfix for this VolumeImage. - */ - public String GetPostfix() { - return m_kPostfix; - } - - /** - * Return the Volume RGBT. - * @return Volume RGBT. - */ - public ModelStorageBase getLUT() { - return (m_kImage != null ) ? m_kImage.isColorImage() ? m_kRGBT : m_kLUT : null; - } - - /** - * Return the Volume RGBT. - * @return Volume RGBT. - */ - public ModelRGB GetRGB() { - return m_kRGBT; - } - - public float GetTransferedValue( int x, int y, int z ) - { - int dimX = m_kImage.getExtents().length > 0 ? m_kImage.getExtents()[0] : 1; - int dimY = m_kImage.getExtents().length > 1 ? m_kImage.getExtents()[1] : 1; - int dimZ = m_kImage.getExtents().length > 2 ? m_kImage.getExtents()[2] : 1; - if ( x < 0 || x >= dimX || y < 0 || y >= dimY || z < 0 || z >= dimZ ) return -1; - - if ( m_kImage.isColorImage() ) { - float r = m_kRGBT.getROn() ? TransferValue(m_kImage.getFloat(x, y, z, 1)) : -1; - float g = m_kRGBT.getGOn() ? TransferValue(m_kImage.getFloat(x, y, z, 2)) : -1; - float b = m_kRGBT.getBOn() ? TransferValue(m_kImage.getFloat(x, y, z, 3)) : -1; - return Math.max( r, Math.max(g, b)); - } - float value = m_kImage.getFloat(x, y, z); - return TransferValue(value); - } - - private float TransferValue(float value) { - float min = (float) m_kImage.getMin(); - float max = (float) m_kImage.getMax(); - float diff = max - min; - byte index = 0; - if ( (diff > 1) && (diff <= 255) ) - { - index = (byte)(((value - min)/diff) * diff); - } - else - { - index = (byte)(((value - min)/diff) * 255); - } - if ( (index >= 0) && (index < 255) && (m_kColorMap != null) && (m_kColorMap.GetData() != null) ) - { - byte r = m_kColorMap.GetData()[index * 4 + 0]; - byte g = m_kColorMap.GetData()[index * 4 + 1]; - byte b = m_kColorMap.GetData()[index * 4 + 2]; - byte a = m_kColorMap.GetData()[index * 4 + 3]; - return Math.max(r*a, Math.max(g*a, b*a)); - } - return -1; - } - - - /** - * The ModelImage Volume max-scale factor. - * @return Volume max-scale factor. - */ - public float GetScaleMax() { - return m_fMax; - } - - public int GetMaxExtent() - { - return m_iMaxExtent; - } - - /** - * The ModelImage Volume x-scale factor. - * @return Volume x-scale factor. - */ - public float GetScaleX() { - return m_fX; - } - - /** - * The ModelImage Volume y-scale factor. - * @return Volume y-scale factor. - */ - public float GetScaleY() { - return m_fY; - } - - /** - * The ModelImage Volume z-scale factor. - * @return Volume z-scale factor. - */ - public float GetScaleZ() { - return m_fZ; - } - - /** - * Return the surface mask Texture. - * @return surface mask Texture. - */ - public Texture GetSurfaceTarget() { - return m_kSurfaceTarget; - } - - - - /** A vector of BitSet masks, one for each surface loaded into the viewer. */ - protected Vector surfaceMask; - /** A vector of the mask names, so they can be accessed by name: */ - protected Vector surfaceNames; - /** A vector of BitSet masks, one for each surface loaded into the viewer. */ - protected Vector surfaceColor; - /** - * Add a new surface mask. - * @param name surface name. - * @param mask surface mask volume. - */ - public void setSurfaceMask(String name, ColorRGB color, BitSet mask) - { - if ( surfaceMask == null ) - { - surfaceMask = new Vector(); - surfaceNames = new Vector(); - surfaceColor = new Vector(); - } - surfaceMask.add(mask); - surfaceNames.add(name); - surfaceColor.add(color); - updateMask(); - } - - private void updateMask() - { - boolean bUpdate = false; - final int iXBound = m_kImage.getExtents()[0]; - final int iYBound = m_kImage.getExtents()[1]; - final int iZBound = m_kImage.getExtents()[2]; - int length = iXBound * iYBound * iZBound; - for ( int i = 0; i < length; i++ ) - { - boolean color = false; - for ( int surface = 0; surface < surfaceMask.size(); surface++ ) - { - if ( surfaceMask.elementAt(surface).get(i) ) - { - m_kSurfaceImage.GetData()[i * 4 + 0] = (byte) (surfaceColor.elementAt(surface).R * 255); - m_kSurfaceImage.GetData()[i * 4 + 1] = (byte) (surfaceColor.elementAt(surface).G * 255); - m_kSurfaceImage.GetData()[i * 4 + 2] = (byte) (surfaceColor.elementAt(surface).B * 255); - m_kSurfaceImage.GetData()[i * 4 + 3] = (byte) (255); - bUpdate = true; - color = true; - } - } - if ( !color ) - { - m_kSurfaceImage.GetData()[i * 4 + 0] = (byte) (0); - m_kSurfaceImage.GetData()[i * 4 + 1] = (byte) (0); - m_kSurfaceImage.GetData()[i * 4 + 2] = (byte) (0); - m_kSurfaceImage.GetData()[i * 4 + 3] = (byte) (0); - } - } - if ( bUpdate ) - { - m_kSurfaceTarget.Reload(true); - } - } - - /** - * Delete the surface mask, using the name of the mask as reference. - * @param name the surface name. - */ - public void removeSurfaceMask(String name) - { - boolean bUpdate = false; - if ( surfaceMask != null && surfaceNames != null) - { - if ( surfaceNames.contains(name) ) - { - surfaceMask.remove( surfaceNames.indexOf(name) ); - surfaceColor.remove( surfaceNames.indexOf(name) ); - surfaceNames.remove(name); - bUpdate = true; - } - } - if ( bUpdate ) - { - updateMask(); - m_kSurfaceTarget.Reload(true); - } - } - - /** - * Delete the surface mask, using the name of the mask as reference. - * @param name the surface name. - */ - public void setSurfaceMaskColor(String name, ColorRGB color) - { - boolean bUpdate = false; - if ( surfaceMask != null && surfaceNames != null) - { - if ( surfaceNames.contains(name) ) - { - surfaceColor.elementAt( surfaceNames.indexOf(name) ).Copy(color); - bUpdate = true; - } - } - if ( bUpdate ) - { - updateMask(); - } - } - - - /** - * Returns the current rendered time-slice for 4D images. Otherwise returns 0. - * @return the current rendered time-slice for 4D images. Otherwise returns 0. - */ - public int GetTimeSlice() { - return m_iTimeSlice; - } - - /** - * Return the Texture containing the volume data. - * @return Texture containing the volume data. - */ - public Texture GetVolumeTarget() { - return m_kVolumeTarget; - } - - /** - * Return the Buffer containing the volume data, which is stored in the Texture GrapicsImage. - * @return Buffer containing the volume data. - */ - public Buffer GetVolumeTargetBuffer() { - return m_kVolumeTarget.GetImage().GetDataBuffer(); - } - - /** - * Initialize the GraphicsImage for the opacity lookup table. - * - * @param kImage the ModelImage the opacity transfer function applies to. - * @param kPostfix the string postfix to concatenate to the "OpacityMap" image name. - * @return GraphicsImage, the new GraphicsImage storing opacity lookup table. - */ - public GraphicsImage InitOpacityMap(final ModelImage kImage, final String kPostFix) { - final int iLutHeight = 256; - final float[] afData = new float[iLutHeight]; - final float fRange = (float) (kImage.getMax() - kImage.getMin()); - final float fStep = fRange / iLutHeight; - float fDataValue = (float) kImage.getMin(); - for (int i = 0; i < iLutHeight; i++) { - afData[i] = (float) (iLutHeight * (kImage.getMax() - fDataValue) / fRange); - fDataValue += fStep; - } - - return new GraphicsImage(GraphicsImage.FormatMode.IT_L8, iLutHeight, afData, - new String("OpacityMap" + kPostFix)); - } - - /** - * Return true if the Volume image is a color image. - * - * @return true if the Volume image is a color image. - */ - public boolean IsColorImage() { - return m_kImage.isColorImage(); - } - - /** - * Release the Textures containing the volume data. Once Textures are released, they will be re-loaded onto the GPU - * during the next frame. - */ - public void ReleaseVolume() { - m_kVolumeTarget.Reload(true); - } - - - - /** - * Called when the user selects the Gradient Magnitude option or the Multi-Histogram option - * in the Volume Renderer. - * @param kGradientMagnitude pre-computed GradientMagnitude image or null - * @param bComputeLaplace when true the Laplace image and multi-histogram histogram Textures are computed. - * @param kPostfix GraphicsImage postfix string. - */ - public void SetGradientMagnitude(ModelImage kGradientMagnitude, boolean bComputeLaplace, String kPostfix ) - { - int start = 0; - int end = m_kImage.getNDims() > 3 ? m_iTimeSteps : 1; - if ( !m_bGMInit ) - { - try { - // System.err.println( "SetGradientMagnitude " + 0 ); - m_kImageGM = getGradientMagnitude( m_kImage, 0 ); - if ( m_kImageGM != null ) - { - m_kVolumeGM[0] = createGM_Laplace(m_kImageGM, null, m_kVolumeGM[0], 0, true); - if ( m_kVolumeGM[0] != null ) - { - m_akGradientMagMinMax[0] = new Vector2f( (float)m_kImageGM.getMin(), (float)m_kImageGM.getMax() ); - m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); - m_kVolumeGMTarget.Reload(true); - m_bGMInit = true; - } - } - for (int i = 1; i < m_iTimeSteps; i++) - { - // System.err.println( "SetGradientMagnitude " + i ); - ModelImage gmImage = getGradientMagnitude( m_kImage, i ); - if ( gmImage != null ) - { - m_kVolumeGM[i] = createGM_Laplace(gmImage, null, m_kVolumeGM[i], i, true); - if ( m_kVolumeGM[i] != null ) - { - m_akGradientMagMinMax[i] = new Vector2f( (float)gmImage.getMin(), (float)gmImage.getMax() ); - gmImage.disposeLocal(); - end = i + 1; - } - } - } - } catch ( java.lang.OutOfMemoryError e ) {} - } - - if ( m_bGMInit && bComputeLaplace && (m_kImageGM != null)) - { - GenerateHistogram(m_kVolume, m_kVolumeGM, kPostfix, start, end ); - } - } - - /** - * Sets the ModelRGB for the iImage. - * - * @param kRGBT new ModelRGB - */ - public void SetRGBT(final ModelRGB kRGBT) { - if (kRGBT == null) { - return; - } - ModelLUT.exportIndexedLUTMin(kRGBT, m_kColorMap.GetData()); - m_kColorMapTarget.Reload(true); - m_kRGBT = kRGBT; - } - - /** - * Sets the time slices for 4D data. - * @param iSlice new time slice value. - */ - public void SetTimeSlice(final int iSlice) { - if (m_iTimeSlice != iSlice) { - m_iTimeSlice = iSlice; - update4D(); - } - } - - /** - * Updates the current time slice. - * @param bForward when true the time advances on step forward or wraps to the beginning. - * When false the time moves backward. - */ - public void update4D(final boolean bForward) { - if (m_iTimeSteps == 1) { - return; - } - if (bForward) { - m_iTimeSlice++; - } else { - m_iTimeSlice--; - } - if (m_iTimeSlice >= m_iTimeSteps) { - m_iTimeSlice = 0; - } - if (m_iTimeSlice < 0) { - m_iTimeSlice = m_iTimeSteps - 1; - } - - update4D(); - } - - /** - * Update the image data. - * - * @param kImage the modified ModelImage - * @param bCopytoCPU when true the data is copied from the GPU GraphicsImage into the ModelImage - */ - public void UpdateData(final ModelImage kImage, boolean reload) { - m_kImage = kImage; - if ( m_kVolume == null ) { - m_kPostfix = ""; - init(null, 0, false); - return; - } - initLUT(); - if ( reload ) - { - if ( m_kVolume[m_iTimeSlice] != null ) - { - m_kVolume[m_iTimeSlice].dispose(); - } - m_kVolumeTarget.Remove(); - m_kVolume[m_iTimeSlice] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); - m_kVolumeTarget.SetImage(m_kVolume[m_iTimeSlice]); - } - else - { - m_kVolume[m_iTimeSlice] = resetVolumeData(m_kImage, m_iTimeSlice, m_kVolume[m_iTimeSlice], m_kVolumeTarget, m_kImage - .getImageName(), true, false); - } - InitScale(); - } - - - /** - * Changes the underlying image data and LUT. If the new image data is a different size than - * then previous one, recreate the volume image on the GPU, otherwise just overwrite it with - * the new data. - * @param kImage - * @param kLUT - * @param reload - */ - public void UpdateData(final ModelImage kImage, ModelLUT kLUT, boolean reload) { - if ( kLUT == null && !kImage.isColorImage()) - { - UpdateData(kImage, reload); - return; - } - m_kImage = kImage; - m_kLUT = kLUT; - if ( reload ) - { - if ( m_kVolume[m_iTimeSlice] != null ) - { - m_kVolume[m_iTimeSlice].dispose(); - } - m_kVolumeTarget.Remove(); - m_kVolume[m_iTimeSlice] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); - m_kVolumeTarget.SetImage(m_kVolume[m_iTimeSlice]); - } - else - { - m_kVolume[m_iTimeSlice] = resetVolumeData(m_kImage, m_iTimeSlice, m_kVolume[m_iTimeSlice], m_kVolumeTarget, m_kImage - .getImageName(), true, false); - } - InitScale(); - } - - /** - * Update the LUT for the ModelImage. - * - * @param kLUT new LUT for ModelImage. - */ - public void UpdateImages(final ModelLUT kLUT) { - if (kLUT != null) { - VolumeImage.UpdateImages(m_kColorMapTarget, m_kColorMap, kLUT); - m_kLUT = kLUT; - } - } - - /** - * Update the LUT for the ModelImage. - * - * @param kLUT new LUT for ModelImage. - */ - public void UpdateImages(final ModelStorageBase kLUT) { - if ( (kLUT != null) && (kLUT instanceof ModelLUT)) { - VolumeImage.UpdateImages(m_kColorMapTarget, m_kColorMap, (ModelLUT)kLUT); - m_kLUT = (ModelLUT)kLUT; -// System.err.println("UpdateImages " + m_kColorMapTarget.GetName() + " " + kLUT. -// System.err.println(" " + m_kColorMapTarget.GetID() ); - - } - if ( (kLUT != null) && (kLUT instanceof ModelRGB)) { - ModelLUT.exportIndexedLUTMin((ModelRGB)kLUT, m_kColorMap.GetData()); - m_kColorMapTarget.Reload(true); - m_kRGBT = (ModelRGB)kLUT; - } - } - - /** - * Update the transfer function for the image iImage. - * - * @param kTransfer the new opacity transfer function - * @param iImage the image to modify (0 = volume image, 2 = gradient mag) - * @param kImage GradientMagitude image. - * @return boolean true when updated, false otherwise. - */ - public boolean UpdateImages(final TransferFunction kTransfer, final int iImage, final ModelImage kImage) { - if (iImage == 0) { - return UpdateImages2(m_kImage, m_kColorMapTarget, m_kColorMap, kTransfer); - } else if ( (iImage == 2) && (kImage != null) && (m_kOpacityMapTarget_GM != null) && (m_kOpacityMap_GM != null)) { - return UpdateImages(kImage, m_kOpacityMapTarget_GM, m_kOpacityMap_GM, kTransfer); - } - return false; - } - - /** - * In order to map line integrals of image intensity to RGB colors where each color channel is 8 bits, it is - * necessary to make sure that the integrals are in [0,255]. Producing a theoretical maximum value of a line - * integral is not tractable in an application. This method constructs an approximate maximum by integrating along - * each line of voxels in the image with line directions parallel to the coordinate axes. The 'processRay' call - * adjusts the line integrals using the estimate, but still clamps the integrals to 255 since the estimate might not - * be the true maximum. - * - * @return float Integral normalization factor. - */ - protected float computeIntegralNormalizationFactor() { - final int iXBound = m_kImage.getExtents()[0]; - final int iYBound = m_kImage.getExtents()[1]; - final int iZBound = m_kImage.getExtents()[2]; - - byte[] aucData = null; - int iSize = iXBound * iYBound * iZBound; - if (m_kImage.isColorImage()) { - iSize *= 4; - } - - aucData = new byte[iSize]; - - try { - m_kImage.exportDataUseMask(0, iSize, false, aucData); - } catch (final IOException e) { - e.printStackTrace(); - } - - // compute image normalization factor - int iX, iY, iZ, iBase, iSteps; - float fMaxIntegral = 0.0f; - float fTStep, fIntegral; - - // fix y and z, integrate over x - for (iY = 0; iY < iYBound; iY++) { - - for (iZ = 0; iZ < iZBound; iZ++) { - iBase = iXBound * (iY + (iYBound * iZ)); - iSteps = iXBound - 1; - fIntegral = 0.5f * ( (aucData[iBase] & 0x0ff) + (aucData[iBase + iSteps] & 0x0ff)); - fTStep = 1.0f / iSteps; - - for (iX = 1; iX < iSteps; iX++) { - fIntegral += (aucData[iBase + iX] & 0x0ff); - } - - fIntegral *= fTStep; - - if (fIntegral > fMaxIntegral) { - fMaxIntegral = fIntegral; - } - } - } - final int iXYProduct = iXBound * iYBound; - // fix x and z, integrate over y - for (iX = 0; iX < iXBound; iX++) { - - for (iZ = 0; iZ < iZBound; iZ++) { - iBase = iX + (iXYProduct * iZ); - iSteps = iYBound - 1; - fIntegral = 0.5f * ( (aucData[iBase] & 0x0ff) + (aucData[iBase + (iXBound * iSteps)] & 0x0ff)); - fTStep = 1.0f / iSteps; - - for (iY = 1; iY < iSteps; iY++) { - fIntegral += (aucData[iBase + (iXBound * iY)] & 0x0ff); - } - - fIntegral *= fTStep; - - if (fIntegral > fMaxIntegral) { - fMaxIntegral = fIntegral; - } - } - } - - // fix x and y, integrate over z - for (iX = 0; iX < iXBound; iX++) { - - for (iY = 0; iY < iYBound; iY++) { - iBase = iX + (iXBound * iY); - iSteps = iZBound - 1; - fIntegral = 0.5f * ( (aucData[iBase] & 0x0ff) + (aucData[iBase + (iXYProduct * iSteps)] & 0x0ff)); - fTStep = 1.0f / iSteps; - - for (iZ = 1; iZ < iSteps; iZ++) { - fIntegral += (aucData[iBase + (iXYProduct * iZ)] & 0x0ff); - } - - fIntegral *= fTStep; - - if (fIntegral > fMaxIntegral) { - fMaxIntegral = fIntegral; - } - } - } - aucData = null; - return (fMaxIntegral > 0.0f) ? (1.0f / fMaxIntegral) : 0.00f; - } - - /** - * Checks that the two input images match extents, units of measure and resolutions. The images - * may had different sizes (3D or 4D) the first 3-dimensions must match. - * @param kImage1 - * @param kImage2 - * @return true if the images match extends, units and resolutions. - */ - public static boolean checkImage(ModelImage kImage1, ModelImage kImage2 ) - { - for ( int i = 0; i < Math.min( kImage1.getExtents().length, kImage2.getExtents().length ); i++ ) - { - if ( kImage1.getExtents()[i] != kImage2.getExtents()[i] ) - { - return false; - } - if ( kImage1.getUnitsOfMeasure()[i] != kImage2.getUnitsOfMeasure()[i] ) - { - return false; - } - if ( kImage1.getResolutions(0)[i] != kImage2.getResolutions(0)[i] ) - { - return false; - } - } - return true; - } - - /** - * Generate 2D histogram from the input image and the gradient-magnitude - * - * @param kImage input GraphicsImage containing the ModelImage data - * @param kImageGM input GraphcisImage containing the Gradient Magnitude data. - * @param kPostFix post-fix for the image name. - */ - private void GenerateHistogram(final GraphicsImage[] kImage, final GraphicsImage[] kImageGM, final String kPostFix, - int start, int end ) - { - int iTMinX = 255, iTMaxX = 0; - int iTMinY = 255, iTMaxY = 0; - float max = Float.MIN_VALUE; - float min = Float.MAX_VALUE; - m_kHisto = new GraphicsImage[m_iTimeSteps]; - for (int t = start; t < end; t++) { - float[] afCount = new float[256 * 256]; - for (int i = 0; i < 256 * 256; i++) { - afCount[i] = 0; - } - - int a1; - int a2; - final byte[] abHistoData = kImageGM[t].GetData(); - final byte[] abData = kImage[t].GetData(); - if (m_kImage.isColorImage()) { - int iHisto = 0; - for (int i = 0; i < abData.length; i += 4) { - int iR = (abData[i]); - int iG = (abData[i + 1]); - int iB = (abData[i + 2]); - //a1 = (iR * 0.299 + iG * 0.587 + iB * 0.114); - a1 = (iR + iG + iB)/3; - a1 = (a1 & 0x00ff); - - iR = (abHistoData[i]); - iG = (abHistoData[i + 1]); - iB = (abHistoData[i + 2]); - //a2 = (short) (iR * 0.299 + iG * 0.587 + iB * 0.114); - a2 = (iR + iG + iB)/3; - a2 = (a2 & 0x00ff); - afCount[a1 + a2 * 256] += 1; - iHisto++; - } - } - else { - int iHisto = 0; - for (int i = 0; i < abData.length; i += 4) { - a1 = abData[i]; - a1 = (a1 & 0x00ff); - a2 = (abHistoData[iHisto]); - a2 = (a2 & 0x00ff); - afCount[a1 + a2 * 256] += 1; - iHisto += 4; - } - } - max = Float.MIN_VALUE; - min = Float.MAX_VALUE; - for (int i = 0; i < 256 * 256; ++i) { - afCount[i] = (float) Math.log(afCount[i]+1); - max = Math.max(afCount[i], max); - min = Math.min(afCount[i], min); - } - //System.err.println( min + " " + max ); - final byte[] abHisto = new byte[256 * 256]; - //int maxB = Integer.MIN_VALUE; - //int minB = Integer.MAX_VALUE; - for (int i = 0; i < 256 * 256; ++i) { - abHisto[i] = new Float((afCount[i] / max) * 255f).byteValue(); - //maxB = ( iVal > maxB ) ? iVal : maxB; - //minB = ( iVal < minB ) ? iVal : minB; - } - afCount = null; - - int iMinX = 255, iMaxX = 0; - int iIndex = 0; - for (int i = 0; i < 256; i++) { - for (int j = 0; j < 256; j++) { - iIndex = i * 256 + j; - if (abHisto[iIndex] > 50) { - if (iMinX > j) { - iMinX = j; - } - if (j > iMaxX) { - iMaxX = j; - } - } - } - } - - int iMinY = 255, iMaxY = 0; - for (int j = 0; j < 256; j++) { - for (int i = 0; i < 256; i++) { - iIndex = i * 256 + j; - if (abHisto[iIndex] > 50) { - if (iMinY > i) { - iMinY = i; - } - if (i > iMaxY) { - iMaxY = i; - } - } - } - } - if (iTMinX > iMinX) { - iTMinX = iMinX; - } - if (iTMaxX < iMaxX) { - iTMaxX = iMaxX; - } - - if (iTMinY > iMinY) { - iTMinY = iMinY; - } - if (iTMaxY < iMaxY) { - iTMaxY = iMaxY; - } - - // iMinX = 0; iMaxX = 255; - // iMinY = 0; iMaxY = 255; - - m_kHisto[t] = new GraphicsImage(GraphicsImage.FormatMode.IT_L8, 256, 256, (byte[]) null, new String( - "VolumeImageHisto" + kPostFix)); - m_kHisto[t].SetData(abHisto, 256, 256); - /* - ModelImage kTestHisto2D = new ModelImage( ModelStorageBase.UBYTE, new int[]{256,256}, "Histo2D" ); - try { - kTestHisto2D.importData(abHisto); - } catch (IOException e) { - e.printStackTrace(); - } - kTestHisto2D.calcMinMax(); - new ViewJFrameImage( kTestHisto2D ); */ - } - - m_kHistoTarget = new Texture(); - m_kHistoTarget.SetImage(m_kHisto[0]); - m_kHistoTarget.SetShared(true); - m_kHistoTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kHistoTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kHistoTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kHistoTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - iTMinX = 0; - iTMaxX = Math.max( iTMaxX, iTMaxY ); - m_akHistoTCoord = new Vector2f[4]; - m_akHistoTCoord[0] = new Vector2f(iTMinX / 255.0f, iTMinX / 255.0f); - m_akHistoTCoord[1] = new Vector2f(iTMaxX / 255.0f, iTMinX / 255.0f); - m_akHistoTCoord[2] = new Vector2f(iTMaxX / 255.0f, iTMaxX / 255.0f); - m_akHistoTCoord[3] = new Vector2f(iTMinX / 255.0f, iTMaxX / 255.0f); - //m_akHistoTCoord[0] = new Vector2f(0f, 0f); - //m_akHistoTCoord[1] = new Vector2f(1f, 0f); - //m_akHistoTCoord[2] = new Vector2f(1f, 1f); - //m_akHistoTCoord[3] = new Vector2f(0f, 1f); - m_bHistoInit = true; - } - - /** - * Calculates and stores the gradient magnitude images (3D or 4D) for the input image. Or reads from disk. - * The data is stored in the GraphicsImage data structures and will be passed to the GPU to use in rendering. - * - * @param kImage input image - * @param kGradientMagnitude input Gradient Magnitude image, or null. - * @param bComputeLaplace when true the Laplace image is also calculated or read from dis. - private void GradientMagnitudeImage(final ModelImage kImage, ModelImage kGradientMagnitude, - boolean bComputeLaplace) { - - - if ( !m_bGMInit ) - { - ModelImage[] kImageGM = new ModelImage[m_iTimeSteps]; - String[] kImageName = new String[m_iTimeSteps]; - for (int i = 0; i < m_iTimeSteps; i++) { - kImageName[i] = ModelImage.makeImageName(kImage.getFileInfo(0).getFileName(), new String("_GM_" + i)); - - if ( kGradientMagnitude != null && checkImage(kImage, kGradientMagnitude )) - { - m_kVolumeGM[i] = VolumeImage.UpdateData(kGradientMagnitude, i, null, m_kVolumeGM[i], - m_kVolumeGMTarget, m_kVolumeGM[i].GetName(), true, false); - ModelImage.saveImage( kGradientMagnitude, kImageName[i] + ".xml", m_kDir ); - } - else - { - kImageGM[i] = ReadFromDisk(kImageName[i] + ".xml", m_kDir); - if ( kImageGM[i] != null && !checkImage(kImage, kImageGM[i] ) ) - { - kImageGM[i].disposeLocal(); - kImageGM[i] = null; - } - if (kImageGM[i] == null) { - JDialogGradientMagnitude kCalcMagnitude = new JDialogGradientMagnitude(null, m_akImages[i]); - kCalcMagnitude.setVisible(false); - kCalcMagnitude.setOutputNewImage(true); - kCalcMagnitude.setDisplayProgressBar(true); - kCalcMagnitude.setSeparateThread(false); - kCalcMagnitude.setSeparable(true); - kCalcMagnitude.setUseOCL(true); - kCalcMagnitude.actionPerformed(new ActionEvent(this, 0, "OK")); - kImageGM[i] = kCalcMagnitude.getResultImage(); - kCalcMagnitude = null; - } - if (kImageGM[i] == null) { - System.err.println("Gradient magnitude calculation returned null"); - m_kVolumeGM[i] = VolumeImage.UpdateData(kImage, i, null, m_kVolumeGM[i], m_kVolumeGMTarget, kImageName[i], true, false); - } else { - kImageGM[i].calcMinMax(); - m_akGradientMagMinMax[i] = new Vector2f( (float)kImageGM[i].getMin(), (float)kImageGM[i].getMax() ); - - if ( !( bComputeLaplace && !m_kImage.isColorImage() ) ) - { - m_kVolumeGM[i] = VolumeImage.UpdateData(kImageGM[i], 0, null, m_kVolumeGM[i], m_kVolumeGMTarget, kImageName[i], true, false); - } - } - } - } - - - if ( bComputeLaplace && !m_kImage.isColorImage() ) - { - for (int i = 0; i < m_iTimeSteps; i++) { - final String kImageNameL = ModelImage.makeImageName(kImage.getFileInfo(0).getFileName(), new String( - "_Laplacian_" + i)); - ModelImage kImageGMGM = null; - kImageGMGM = ReadFromDisk(kImageNameL + ".xml", m_kDir); - if ( kImageGMGM != null && !checkImage(kImage, kImageGMGM ) ) - { - kImageGMGM.disposeLocal(); - kImageGMGM = null; - } - if (kImageGMGM == null) { - final JDialogLaplacian kCalcLaplacian = new JDialogLaplacian(null, m_akImages[i]); - kCalcLaplacian.setVisible(false); - kCalcLaplacian.setOutputNewImage(true); - kCalcLaplacian.setDisplayProgressBar(true); - kCalcLaplacian.setSeparateThread(false); - kCalcLaplacian.setUseOCL(true); - kCalcLaplacian.setSeparable(true); - kCalcLaplacian.actionPerformed(new ActionEvent(this, 0, "OK")); - kImageGMGM = kCalcLaplacian.getResultImage(); - } - if (kImageGMGM != null) { - m_kVolumeGM[i] = createGM_Laplace(kImageGM[i], kImageGMGM, m_kVolumeGM[i], i, true); - } else { - m_kVolumeGM[i] = VolumeImage.UpdateData(kImageGM[i], 0, null, m_kVolumeGM[i], m_kVolumeGMTarget, kImageName[i], true, false); - } - final ViewJFrameImage kImageFrame = ViewUserInterface.getReference().getFrameContainingImage(kImageGMGM); - if (kImageFrame != null) { - kImageFrame.close(); - } else if (kImageGMGM != null) { - kImageGMGM.disposeLocal(); - kImageGMGM = null; - } - } - } - - m_bGMInit = true; - m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); - m_kVolumeGMTarget.Reload(true); - - for ( int i = 0; i < kImageGM.length; i++ ) - { - if (kImageGM[i] != null) { - - kImageGM[i].setImageDirectory( m_kDir ); - kImageGM[i].setImageName( kImageName[i] + ".xml" ); - ModelImage.saveImage(kImageGM[i], kImageName[i] + ".xml", m_kDir ); - - - final ViewJFrameImage kImageFrame = ViewUserInterface.getReference().getFrameContainingImage(kImageGM[i]); - if (kImageFrame != null) { - kImageFrame.close(); - } - - kImageGM[i].disposeLocal(); - kImageGM[i] = null; - } - } - } - } - */ - - public static ModelImage getGradientMagnitude( ModelImage kImage, int i ) - { - if ( kImage == null ) - { - return null; - } - int index = kImage.getExtents()[2] / 2; - float xRes = kImage.getFileInfo(index).getResolutions()[0]; - float zRes = kImage.getFileInfo(index).getResolutions()[2]; - - float correction = xRes / zRes; - float[] sigmas = new float[]{1f,1f,correction}; - - int dimX = kImage.getExtents().length > 0 ? kImage.getExtents()[0] : 1; - int dimY = kImage.getExtents().length > 1 ? kImage.getExtents()[1] : 1; - int dimZ = kImage.getExtents().length > 2 ? kImage.getExtents()[2] : 1; - ModelImage outputImage = new ModelImage( kImage.getDataType(), new int[]{dimX,dimY,dimZ}, "temp" ); - AlgorithmGradientMagnitudeSep gradientMagAlgo = new AlgorithmGradientMagnitudeSep( kImage, sigmas, true, false ); -// OpenCLAlgorithmGradientMagnitude gradientMagAlgo = new OpenCLAlgorithmGradientMagnitude(outputImage, kImage, sigmas, -// true, true, false); - gradientMagAlgo.setRed(true); - gradientMagAlgo.setGreen(true); - gradientMagAlgo.setBlue(true); - gradientMagAlgo.setRunningInSeparateThread(false); - gradientMagAlgo.run(); - float[] resultBuffer = gradientMagAlgo.getResultBuffer(); - try { - outputImage.importData(0, resultBuffer, true); - } catch (IOException e) {} -// gradientMagAlgo.gradientMagnitudeSep3D( i ); - gradientMagAlgo.finalize(); - gradientMagAlgo = null; - return outputImage; - } - - -// private ModelImage getLaplace( ModelImage kImage, int i ) -// { -// String kImageName = ModelImage.makeImageName(kImage.getFileInfo(0).getFileName(), new String("_Laplacian_" + i)); -// ModelImage kImageL = ReadFromDisk(kImageName + ".xml", m_kDir); -// if ( kImageL != null && !checkImage(kImage, kImageL ) ) -// { -// kImageL.disposeLocal(); -// kImageL = null; -// } -// if (kImageL == null) { -// JDialogLaplacian kCalcLaplacian = new JDialogLaplacian(null, m_akImages[i]); -// kCalcLaplacian.setVisible(false); -// kCalcLaplacian.setOutputNewImage(true); -// kCalcLaplacian.setDisplayProgressBar(true); -// kCalcLaplacian.setSeparateThread(false); -// kCalcLaplacian.setUseOCL(true); -// kCalcLaplacian.setSeparable(true); -// kCalcLaplacian.actionPerformed(new ActionEvent(this, 0, "OK")); -// kImageL = kCalcLaplacian.getResultImage(); -// kCalcLaplacian = null; -// -// kImageL.setImageDirectory( m_kDir ); -// kImageL.setImageName( kImageName + ".xml" ); -// JDialogBase.updateFileInfo( kImage, kImageL ); -// ModelImage.saveImage(kImageL, kImageName + ".xml", m_kDir ); -// final ViewJFrameImage kImageFrame = ViewUserInterface.getReference().getFrameContainingImage(kImageL); -// if (kImageFrame != null) { -// kImageFrame.setVisible(false); -// } -// } -// return kImageL; -// } - - /** - * Initialize the VolumeImage with the ModelImage data. - * @param kProgress progress bar - * @param iProgress progress bar increment - */ - private void init(final ViewJProgressBar kProgress, final int iProgress, boolean initGradientMagnitude) { - // Create LUTS for the ModelImage: - initLUT(); - // Initialize Texture Maps: - if ( !m_kImage.isColorImage() ) - { - initImages(); - } - else - { - initImagesColor(); - } - if ( initGradientMagnitude ) - { - SetGradientMagnitude(null, true, m_kPostfix); - } - if (kProgress != null) { - kProgress.updateValueImmed(kProgress.getValue() + iProgress); - } - } - - /** - * Intializes the Textures and GraphicsImages used to render the ModelImage this - * VolumeImage represents. - */ - private void initImages() { - m_fDRRNormalize = computeIntegralNormalizationFactor(); - // Initialize Color Map GraphicsImage: - m_kColorMap = initColorMap(); - // Initialize Opacity Map for the GradientMagnitude image: - m_kOpacityMap_GM = InitOpacityMap(m_kImage, new String(m_kPostfix + "_GM")); - - final int iXBound = m_kImage.getExtents()[0]; - final int iYBound = m_kImage.getExtents()[1]; - final int iZBound = m_kImage.getExtents()[2]; - - /* - * Map the ModelImage volume data to a texture image, including for the ModelImage gradient magnitude data: - */ - final int[] aiExtents = m_kImage.getExtents(); - final int iNDims = aiExtents.length; - String kImageName; - GraphicsImage.FormatMode type = GraphicsImage.FormatMode.IT_RGBA8888 ; - - - if (iNDims == 3) { // ModelImage is 3D: - m_iTimeSteps = 1; - } - else { // ModelImage is 4D: - m_iTimeSteps = aiExtents[3]; - } - // Allocate a 3D GraphicsImage for each 3D Volume - m_kVolume = new GraphicsImage[m_iTimeSteps]; - m_kVolumeGM = new GraphicsImage[m_iTimeSteps]; - m_akGradientMagMinMax = new Vector2f[m_iTimeSteps]; - - final int[] aiSubset = new int[] {aiExtents[0], aiExtents[1], aiExtents[2]}; - - for (int i = 0; i < m_iTimeSteps; i++) { -// System.err.println( "initiImages : " + i ); - if ( m_iTimeSteps > 1 ) - { - // Will generate the ModelImage GraphicsImage representation and separate the 4D ModelImage into - // the 3D Subset image. - m_kVolume[i] = initVolumeData(m_kImage, i, m_kVolumeTarget, m_kImage.getImageName(), true, false); - } - else - { - // Already 3D, just generate the GraphicsImage: - m_kVolume[0] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); - } - - // Allocate GraphcisImage for Gradient Magnitude Texture: - kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), - new String("_GM_" + i)); - m_kVolumeGM[i] = new GraphicsImage(type, iXBound, iYBound, iZBound, - (byte[])null, kImageName); - - } - // Initialize the Gradient Magnitude Texture and set its GraphicsImage: - m_kVolumeGMTarget = new Texture(); - m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); - m_kVolumeGMTarget.SetShared(true); - m_kVolumeGMTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kVolumeGMTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kVolumeGMTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kVolumeGMTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Initialize the ModelImage Texture and set its GraphicsImage: - m_kVolumeTarget = new Texture(); - m_kVolumeTarget.SetImage(m_kVolume[0]); - m_kVolumeTarget.SetShared(true); - m_kVolumeTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kVolumeTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kVolumeTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kVolumeTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Initialize the ColorMap Texture and set its GraphicsImage: - m_kColorMapTarget = new Texture(); - m_kColorMapTarget.SetImage(m_kColorMap); - m_kColorMapTarget.SetShared(true); - - // Initialize the Normal Map Texture and set its GraphicsImage: - m_kScratchTarget = new Texture(); - m_kScratchTarget.SetImage(new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, - (byte[])null, "ScratchBuffer")); - m_kScratchTarget.SetShared(true); - m_kScratchTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kScratchTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kScratchTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kScratchTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Initialize the Opacity Map for the Gradient Magnitude Texture and set its GraphicsImage: - m_kOpacityMapTarget_GM = new Texture(); - m_kOpacityMapTarget_GM.SetImage(m_kOpacityMap_GM); - m_kOpacityMapTarget_GM.SetShared(true); - - // Initialize the Surface Mask Texture and set its GraphicsImage: - m_kSurfaceImage = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, - new byte[4* iXBound * iYBound * iZBound], "SurfaceImage"); - m_kSurfaceTarget = new Texture(); - m_kSurfaceTarget.SetImage(m_kSurfaceImage); - m_kSurfaceTarget.SetShared(true); - m_kSurfaceTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kSurfaceTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kSurfaceTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kSurfaceTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Calculate the scale factors for rendering the volume with a unit cube: - InitScale(); - } - - - private void initImagesColor() { - m_fDRRNormalize = computeIntegralNormalizationFactor(); - // Initialize Color Map GraphicsImage: - m_kColorMap = initColorMap(); - // Initialize Opacity Map for the GradientMagnitude image: - m_kOpacityMap_GM = InitOpacityMap(m_kImage, new String(m_kPostfix + "_GM")); - - final int iXBound = m_kImage.getExtents()[0]; - final int iYBound = m_kImage.getExtents()[1]; - final int iZBound = m_kImage.getExtents()[2]; - - /* - * Map the ModelImage volume data to a texture image, including for the ModelImage gradient magnitude data: - */ - final int[] aiExtents = m_kImage.getExtents(); - final int iNDims = aiExtents.length; - String kImageName; - GraphicsImage.FormatMode type = GraphicsImage.FormatMode.IT_RGBA8888 ; - - - if (iNDims == 3) { // ModelImage is 3D: - m_iTimeSteps = 1; - } - else { // ModelImage is 4D: - m_iTimeSteps = aiExtents[3]; - } - // A 4D ModelImage is separated into the 3D Volumes: -// m_akImages = new ModelImage[m_iTimeSteps]; - // Allocate a 3D GraphicsImage for each 3D Volume - m_kVolume = new GraphicsImage[m_iTimeSteps]; - m_kVolumeGM = new GraphicsImage[m_iTimeSteps]; - m_kNormal = new GraphicsImage[m_iTimeSteps]; - m_akGradientMagMinMax = new Vector2f[m_iTimeSteps]; - - final int[] aiSubset = new int[] {aiExtents[0], aiExtents[1], aiExtents[2]}; - for (int i = 0; i < m_iTimeSteps; i++) { - - if ( m_iTimeSteps > 1 ) - { - // Will generate the ModelImage GraphicsImage representation and separate the 4D ModelImage into - // the 3D Subset image. -// m_akImages[i] = new ModelImage(m_kImage.getType(), aiSubset, JDialogBase.makeImageName(m_kImage -// .getImageName(), "_" + i)); -// JDialogBase.updateFileInfo( m_kImage, m_akImages[i] ); - m_kVolume[i] = initVolumeData(m_kImage, i, m_kVolumeTarget, m_kImage.getImageName(), true, false); -// m_akImages[i].copyFileTypeInfo(m_kImage); -// m_akImages[i].calcMinMax(); - } - else - { - // Already 3D, just generate the GraphicsImage: -// m_akImages[0] = m_kImage; - m_kVolume[0] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); - } - // Allocate GraphcisImage for Normal Map Texture: - kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), - new String("_Normal_" + i)); - m_kNormal[i] = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, - (byte[])null, kImageName); - - // Allocate GraphcisImage for Gradient Magnitude Texture: - kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), - new String("_GM_" + i)); - m_kVolumeGM[i] = new GraphicsImage(type, iXBound, iYBound, iZBound, - (byte[])null, kImageName); - } - // Initialize the Gradient Magnitude Texture and set its GraphicsImage: - m_kVolumeGMTarget = new Texture(); - m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); - m_kVolumeGMTarget.SetShared(true); - m_kVolumeGMTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kVolumeGMTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kVolumeGMTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kVolumeGMTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Initialize the ModelImage Texture and set its GraphicsImage: - m_kVolumeTarget = new Texture(); - m_kVolumeTarget.SetImage(m_kVolume[0]); - m_kVolumeTarget.SetShared(true); - m_kVolumeTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kVolumeTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kVolumeTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kVolumeTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Initialize the ColorMap Texture and set its GraphicsImage: - m_kColorMapTarget = new Texture(); - m_kColorMapTarget.SetImage(m_kColorMap); - m_kColorMapTarget.SetShared(true); - - // Initialize the Normal Map Texture and set its GraphicsImage: - m_kNormalMapTarget = new Texture(); - m_kNormalMapTarget.SetImage(m_kNormal[0]); - m_kNormalMapTarget.SetShared(true); - m_kNormalMapTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kNormalMapTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kNormalMapTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kNormalMapTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - - // Initialize the Normal Map Texture and set its GraphicsImage: - m_kScratchTarget = new Texture(); - m_kScratchTarget.SetImage(new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, - (byte[])null, "ScratchBuffer")); - m_kScratchTarget.SetShared(true); - m_kScratchTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kScratchTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kScratchTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kScratchTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Initialize the Opacity Map for the Gradient Magnitude Texture and set its GraphicsImage: - m_kOpacityMapTarget_GM = new Texture(); - m_kOpacityMapTarget_GM.SetImage(m_kOpacityMap_GM); - m_kOpacityMapTarget_GM.SetShared(true); - - // Initialize the Surface Mask Texture and set its GraphicsImage: - m_kSurfaceImage = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, - new byte[4* iXBound * iYBound * iZBound], "SurfaceImage"); - m_kSurfaceTarget = new Texture(); - m_kSurfaceTarget.SetImage(m_kSurfaceImage); - m_kSurfaceTarget.SetShared(true); - m_kSurfaceTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kSurfaceTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kSurfaceTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kSurfaceTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Calculate the scale factors for rendering the volume with a unit cube: - InitScale(); - } - - /** - * Create a new LUT for the input image. - * - * @param kImage ModelImage. - */ - private void initLUT() { - - if (m_kImage.isColorImage()) { - final float[] x = new float[4]; - final float[] y = new float[4]; - final Dimension dim = new Dimension(256, 256); - - // Set ModelRGB min max values; - x[0] = 0; - y[0] = dim.height - 1; - - x[1] = 255 * 0.333f; - y[1] = (dim.height - 1) - ( (dim.height - 1) / 3.0f); - - x[2] = 255 * 0.667f; - y[2] = (dim.height - 1) - ( (dim.height - 1) * 0.67f); - - x[3] = 255; - y[3] = 0; - - final int[] RGBExtents = new int[2]; - RGBExtents[0] = 4; - RGBExtents[1] = 256; - m_kRGBT = new ModelRGB(RGBExtents); - m_kRGBT.getRedFunction().importArrays(x, y, 4); - m_kRGBT.getGreenFunction().importArrays(x, y, 4); - m_kRGBT.getBlueFunction().importArrays(x, y, 4); - m_kRGBT.makeRGB( -1); - } else { - final int[] dimExtentsLUT = new int[2]; - - dimExtentsLUT[0] = 4; - dimExtentsLUT[1] = 256; - - m_kLUT = new ModelLUT(ModelLUT.GRAY, 256, dimExtentsLUT); - - float min, max; - - if (m_kImage.getType() == ModelStorageBase.UBYTE) { - min = 0; - max = 255; - } else if (m_kImage.getType() == ModelStorageBase.BYTE) { - min = -128; - max = 127; - } else { - min = (float) m_kImage.getMin(); - max = (float) m_kImage.getMax(); - } - - final float imgMin = (float) m_kImage.getMin(); - final float imgMax = (float) m_kImage.getMax(); - - m_kLUT.resetTransferLine(min, imgMin, max, imgMax); - } - } - - /** - * Initialize the scale factors. Based on the ModelImage Volume. - */ - private void InitScale() { - - int dimX = m_kImage.getExtents().length > 0 ? m_kImage.getExtents()[0] : 1; - int dimY = m_kImage.getExtents().length > 1 ? m_kImage.getExtents()[1] : 1; - int dimZ = m_kImage.getExtents().length > 2 ? m_kImage.getExtents()[2] : 1; - m_iMaxExtent = Math.max( dimX, Math.max( dimY, dimZ ) ); - - final float fMaxX = (m_kImage.getExtents()[0] - 1) * m_kImage.getFileInfo(0).getResolutions()[0]; - final float fMaxY = (m_kImage.getExtents()[1] - 1) * m_kImage.getFileInfo(0).getResolutions()[1]; - final float fMaxZ = (m_kImage.getExtents()[2] - 1) * m_kImage.getFileInfo(0).getResolutions()[2]; - - m_fMax = fMaxX; - if (fMaxY > m_fMax) { - m_fMax = fMaxY; - } - if (fMaxZ > m_fMax) { - m_fMax = fMaxZ; - } - m_fX = fMaxX / m_fMax; - m_fY = fMaxY / m_fMax; - m_fZ = fMaxZ / m_fMax; - } - - /** - * Reads an image from disk. - * - * @param kImageName image name - * @param kDir directory - * @return ModelImage - */ - private static ModelImage ReadFromDisk(final String kImageName, final String kDir) { - - final File kFile = new File(kDir, kImageName); - if ( !kFile.exists()) { - return null; - } - - final FileIO fileIO = new FileIO(); - return fileIO.readImage( kImageName, kDir ); - //return fileIO.readXML(kImageName + ".xml", kDir, false, false); - } - - private void readObject(final java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { - m_kDir = (String) in.readObject(); - if ( !m_kDir.equals("null")) { - final String kImageName = (String) in.readObject(); - m_kPostfix = (String) in.readObject(); - m_kImage = ReadFromDisk(kImageName, m_kDir); - init(null, 0, true); - } - } - - - /** - * Go to the next 3D volume sub-image for the 4D animation. - * Updates the Textures and causes them to be reloaded onto the GPU. - */ - private void update4D() { - if ( m_kImage == null ) return; - - m_kVolumeTarget.SetImage(m_kVolume[m_iTimeSlice]); - m_kVolumeTarget.Reload(true); - if ( m_bGMInit ) - { - if ( m_kVolumeGM[m_iTimeSlice] == null ) - { - ModelImage gmImage = getGradientMagnitude( m_kImage, m_iTimeSlice ); - m_akGradientMagMinMax[m_iTimeSlice] = new Vector2f( (float)gmImage.getMin(), (float)gmImage.getMax() ); - gmImage.disposeLocal(); - m_kVolumeGMTarget.SetImage(createGM_Laplace(gmImage, null, null, 0, true)); - m_kVolumeGMTarget.Reload(true); - } - else - { - m_kVolumeGMTarget.SetImage(m_kVolumeGM[m_iTimeSlice]); - m_kVolumeGMTarget.Reload(true); - } - } - if ( m_bNormalsInit && m_kImage.isColorImage() ) - { - m_kNormalMapTarget.SetImage(m_kNormal[m_iTimeSlice]); - m_kNormalMapTarget.Reload(true); - } - if ( m_bHistoInit && (m_kHisto[m_iTimeSlice] != null )) - { - m_kHistoTarget.SetImage(m_kHisto[m_iTimeSlice]); - m_kHistoTarget.Reload(true); - } - - m_kImage.setTimeSlice(m_iTimeSlice); - } - - /** - * Called when the opacity transfer function changes. This function updates the Texture - * and causes the data to be reloaded onto the GPU. - * - * @param kImage the ModelImage the transfer function applies to. - * @param kOpacityTexture the opacity Texture passed to the GPU - * @param kOpacityMap the opacity data stored in the GraphicsImage - * @param kTransfer the new transfer function. - */ - private boolean UpdateImages(final ModelImage kImage, final Texture kOpacityTexture, - final GraphicsImage kOpacityMap, final TransferFunction kTransfer) { - final int iLutHeight = 256; - final float[] afData = kOpacityMap.GetFloatData(); - - final float fRange = (float) (kImage.getMax() - kImage.getMin()); - final float fStep = fRange / iLutHeight; - float fDataValue = (float) kImage.getMin(); - for (int i = 0; i < iLutHeight; i++) { - afData[i] = (kTransfer.getRemappedValue(fDataValue, iLutHeight) / 255.0f); - fDataValue += fStep; - } - kOpacityTexture.Reload(true); - return true; - } - - public TransferFunction getOpacityFn() { - return opacityTransferFn; - } - - /** - * Update the opacity transfer function. - * - * @param kImage the ModelImage the transfer function applies to. - * @param kOpacityTexture the opacity Texture passed to the GPU - * @param kOpacityMap the opacity data stored in the GraphicsImage - * @param kTransfer the new transfer function. - */ - private boolean UpdateImages2(final ModelImage kImage, final Texture kOpacityTexture, - final GraphicsImage kOpacityMap, final TransferFunction kTransfer) { - opacityTransferFn = new TransferFunction(kTransfer); - final int iLutHeight = kOpacityMap.GetBound(0); - final byte[] abData = kOpacityMap.GetData(); - - final float fRange = (float) (kImage.getMax() - kImage.getMin()); - final float fStep = fRange / iLutHeight; - float fDataValue = (float) kImage.getMin(); - float fVal; - for (int i = 0; i < iLutHeight; i++) { - fVal = (kTransfer.getRemappedValue(fDataValue, iLutHeight) / 255.0f); - abData[i * 4 + 3] = (byte) (fVal * 255); - fDataValue += fStep; - } - kOpacityTexture.Reload(true); - return true; - } - - private void writeObject(final java.io.ObjectOutputStream out) throws IOException { - if (m_kImage != null) { - out.writeObject(m_kDir); - out.writeObject(m_kImage.getImageFileName()); - out.writeObject(m_kPostfix); - m_kImage.saveImage(m_kDir, m_kImage.getImageFileName(), FileUtility.XML, false, false); - } else { - out.writeObject("null"); - } - } -} +package gov.nih.mipav.view.renderer.WildMagic.Render; + + +import static java.lang.System.nanoTime; +import static java.lang.System.out; +import gov.nih.mipav.model.algorithms.filters.AlgorithmGradientMagnitudeSep; +import gov.nih.mipav.model.algorithms.filters.OpenCL.filters.OpenCLAlgorithmGradientMagnitude; +import gov.nih.mipav.model.algorithms.filters.OpenCL.filters.OpenCLAlgorithmVolumeNormals; +import gov.nih.mipav.model.file.*; +import gov.nih.mipav.model.structures.*; + +import gov.nih.mipav.view.*; +import gov.nih.mipav.view.dialogs.*; +import gov.nih.mipav.view.renderer.WildMagic.VolumeTriPlanarInterface; + +import java.awt.Dimension; +import java.awt.event.ActionEvent; +import java.io.*; +import java.nio.Buffer; +import java.util.BitSet; +import java.util.Vector; + + +import org.jocl.CL; + +import WildMagic.LibFoundation.Mathematics.ColorRGB; +import WildMagic.LibFoundation.Mathematics.ColorRGBA; +import WildMagic.LibFoundation.Mathematics.Vector2f; +import WildMagic.LibGraphics.Rendering.*; + +/** * + * The VolumeImage class provides an interface between the MIPAV ModelImage and the 2D and 3D Textures used to render + * the ModelImage on the GPU. The VolumeImage creates the supporting Texture and GraphicImage objects that pass + * the ModelImage data to the GPU. It also creates Texture and GraphicsImage objects for the ModelImage Look-up Table (LUT) + * and the ModelImage opacity transfer function. Other textures that are used for advanced volume rendering, such as + * a normal map for surface rendering, and the gradient-magnitude and laplace images for the multi-histogram rendering are + * calculated and passed on-demand to the GPU when the user selects these options in the Volume-Renderer user-interface. + * + * The VolumeImage data structure handles all GPU content for rendering one ModelImage. All Textures and GraphicsImages + * are initialized and stored in the VolumeImage. When needed by the renderer they are loaded onto the GPU. Any images + * that are derived from the ModelImage: Normal map, Gradient Magnitude, Laplace, are either read from file or calculated + * and then written to file. The supporting files are stored in a directory on disk located next to the original ModelImage. + * The directory is named with the ModelImage name followed by "_RenderFiles". + * + * + */ +public class VolumeImage implements Serializable { + /** */ + private static final long serialVersionUID = -7254697711265907746L; + + /** Reference to ModelImage image */ + private ModelImage m_kImage; + private ModelImage m_kImageGM; + + /** GraphicsImage contains GM opacity transfer function data: */ + private GraphicsImage m_kOpacityMap_GM = null; + + /** + * Texture contains texture filter modes and GraphicsImage for opacity transfer function: + */ + private Texture m_kOpacityMapTarget_GM = null; + + /** Data storage for volume: */ + private GraphicsImage[] m_kVolume; + + /** Texture object for data: */ + private Texture m_kVolumeTarget; + + /** Data storage for normals: */ + private GraphicsImage[] m_kNormal; + /** Set to true if the Normal Map has been initialized. */ + private boolean m_bNormalsInit = false; + + /** Texture object for normal map: */ + private Texture m_kNormalMapTarget; + + /** Texture object for GPU computations: */ + private Texture m_kScratchTarget; + + /** Data storage for color map: */ + private GraphicsImage m_kColorMap; + + /** Texture object for color map: */ + private Texture m_kColorMapTarget; + + /** Data storage for volume gradient magnitude: */ + private GraphicsImage[] m_kVolumeGM; + /** Set to true if the Gradient Magnitude texture map has been initialized. */ + private boolean m_bGMInit = false; + + /** Texture object for volume gradient magnitude data: */ + private Texture m_kVolumeGMTarget; + + /** Data storage for surfaces: */ + private GraphicsImage m_kSurfaceImage; + + /** Texture object for surfaces: */ + private Texture m_kSurfaceTarget; + + /** ModelLUT */ + private ModelLUT m_kLUT = null; + + /** ModelRGB */ + private ModelRGB m_kRGBT = null; + + /** Image scale factors for display in 3D */ + private float m_fX = 1, m_fY = 1, m_fZ = 1, m_fMax = 1; + private int m_iMaxExtent = 1; + + /** Image name post-fix typically either 'A' or 'B' */ + private String m_kPostfix = null; + + /** Directory for calculated images */ + private String m_kDir = null; + + /** Histogram data for multi-histogram interface */ + private GraphicsImage[] m_kHisto = null; + /** Set to true when the multi-histogram histogram texture has been initialized. */ + private boolean m_bHistoInit = false; + + /** Texture object for data: */ + private Texture m_kHistoTarget; + + /** Texture coordinates for displaying histogram in 2D */ + private Vector2f[] m_akHistoTCoord = null; + + private float m_fDRRNormalize = 255.0f; + + /** Current position in time (4D data) */ + private int m_iTimeSlice = 0; + + /** Total number of time-slices (4D data) */ + private int m_iTimeSteps = 0; + + /** 3D sub-images (4D data) */ +// private ModelImage[] m_akImages; +// private ModelImage[] m_akImagesGM; + + private Vector2f[] m_akGradientMagMinMax; + + private TransferFunction opacityTransferFn; + + /* Default Constructor */ + public VolumeImage() {} + + /** + * Create a Volume image with the input ModelImage. The supporting images for advanced volume rendering, such as + * the normal map, gradient magnitude and laplace images are generated on-demand and stored in a directory for + * later use. The directory is created if it does not already exist, with the ModelImage name + "_RenderFiles" as + * the directory name. + * + * @param bClone, when true clone the input ModelImage, when false reference the ModelImage + * @param kImage input ModelImage + * @param kPostfix Postfix for images 'A' or 'B' + * @param kProgress progress bar + * @param iProgress progress bar increment + */ + public VolumeImage(boolean bClone, final ModelImage kImage, final String kPostfix, final ViewJProgressBar kProgress, final int iProgress) { + this( bClone, kImage, kPostfix, kProgress, iProgress, true ); + } + + public VolumeImage(boolean bClone, final ModelImage kImage, final String kPostfix, final ViewJProgressBar kProgress, final int iProgress, boolean initGradientMagnitude) { + m_kPostfix = new String(kPostfix); + // clone the input image, in the future this might be a reference. + if ( bClone ) + { + m_kImage = (ModelImage)kImage.clone(); + } + else + { + m_kImage = kImage; + } + // Initialize the Texture maps. + init(kProgress, iProgress, initGradientMagnitude); + } + + /** + * Copy the data from the input GraphicsImage and return a new ModelImage of that data. + * Any changes to the GraphicsImage that occur only on the GPU can first be written from + * the GPU back into the GraphicsImage CPU data storage. This enables calculations that + * are performed on the GPU to be written back into a ModelImage data structure. + * + * @param kImage Graphics Image to copy + * @param bSwap when true convert from RGBA (graphics format) to ARGB (ModelImage format) + * @return new ModelImage from Volume Texture on GPU. + */ + public static ModelImage CreateImageFromTexture(final GraphicsImage kImage, final boolean bSwap) { + final int iXBound = kImage.GetBound(0); + final int iYBound = kImage.GetBound(1); + final int iZBound = kImage.GetBound(2); + final int iSize = iXBound * iYBound * iZBound; + final int[] extents = new int[] {iXBound, iYBound, iZBound}; + + ModelImage kResult = null; + if (kImage.GetFormat() == GraphicsImage.FormatMode.IT_RGBA8888) { + byte[] aucData = kImage.GetData(); + if (bSwap) { + byte bVal = 0; + aucData = new byte[4 * iXBound * iYBound * iZBound]; + for (int i = 0; i < iSize; i += 4) { + if (kImage.GetData()[i + 1] > bVal) { + bVal = kImage.GetData()[i + 1]; + } + aucData[i] = kImage.GetData()[i + 3]; + aucData[i + 1] = kImage.GetData()[i + 1]; + aucData[i + 2] = kImage.GetData()[i + 2]; + aucData[i + 3] = kImage.GetData()[i]; + //System.err.println( kImage.GetData()[i + 3] + " " + kImage.GetData()[i + 1] + " " + kImage.GetData()[i + 2] ); + } + // System.err.println( bVal ); + } + try { + kResult = new ModelImage(ModelStorageBase.ARGB, extents, ""); + kResult.importData(0, aucData, true); + } catch (final IOException e) { + e.printStackTrace(); + } + } else { + final byte[] aiImageData = kImage.GetData(); + try { + kResult = new ModelImage(ModelStorageBase.UBYTE, extents, ""); + kResult.importData(0, aiImageData, true); + } catch (final IOException e) { + e.printStackTrace(); + } + } + return kResult; + } + + /** + * Initialize the textures for the color lookup table. + * + * @param kLUT the new LUT. + * @param kRGBT the new RGB table. + * @param kPostfix the string postfix to concatenate to the "ColorMap" image name. + * @return GraphicsImage, the new GraphicsImage storing the colormap lookup table. + */ + public static GraphicsImage InitColorMap( Texture kTexture, GraphicsImage kImage, final ModelStorageBase kLUT, final String kPostFix) { + byte[] aucData; + if ( kImage == null ) + { + aucData = new byte[256 * 4]; + } + else + { + aucData = kImage.GetData(); + } + if (kLUT instanceof ModelLUT ) { + // ModelImage is Color, initialize the ModelRGB + ModelLUT.exportIndexedLUTMin((ModelLUT)kLUT, aucData); + } + else if (kLUT instanceof ModelRGB ) { + // Initialize the ModelLUT + ModelLUT.exportIndexedLUTMin((ModelRGB)kLUT, aucData); + } + if ( kImage == null ) + { + // Return the new GraphicsImage containing the table data: + return new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, 256, aucData, new String("ColorMap" + kPostFix)); + } + if ( kTexture != null ) + { + kTexture.Reload(true); + } + return kImage; + } + + + private GraphicsImage initColorMap() { + final byte[] aucData = new byte[256 * 4]; + if (m_kRGBT != null) + { + // ModelImage is Color, initialize the ModelRGB + ModelLUT.exportIndexedLUTMin(m_kRGBT, aucData); + } else if ( m_kLUT != null ) + { + // Initialize the ModelLUT + ModelLUT.exportIndexedLUTMin(m_kLUT, aucData); + } + // Return the new GraphicsImage containing the table data: + return new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, 256, 1, aucData, new String("ColorMap" + m_kImage.getImageName() + m_kPostfix)); + } + + + /** + * When a ModelImage changes on the CPU, this function is used to update the ModelImage + * data on the CPU. + * + * @param kImage Modified ModelImage to copy into the GPU Texture and GraphicsImage + * @param iTimeSlice time value for 4D image, 0 otherwise + * @param kNewImage a new ModelImage (always 3D) that the data or data subset for 4D image can be copied into (when non-null). + * @param kVolumeImage GraphicsImage that will hold the ModelImage data + * @param kVolumeTexture Texture object containing the GraphicsImage + * @param kImageName new image name for the new ModelImage. + * @param bSwap when true swap the ARGB (ModelImage) color data representation to a RGBA (GPU) color representation. + * @return + */ + public static GraphicsImage UpdateData(final ModelImage kImage, final int iTimeSlice, final ModelImage kNewImage, + final GraphicsImage kVolumeImage, final Texture kVolumeTexture, final String kImageName, + final boolean bSwap, final boolean bRescale) { + GraphicsImage kReturn = kVolumeImage; + final int iXBound = kImage.getExtents()[0]; + final int iYBound = kImage.getExtents()[1]; + final int iZBound = kImage.getExtents()[2]; + + byte[] aucData = null; + int iSize = iXBound * iYBound * iZBound; + if (kImage.isColorImage()) { + iSize *= 4; + aucData = new byte[iSize]; + try { + kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); + if (bSwap) { + for (int i = 0; i < iSize; i += 4) { + final byte tmp = aucData[i]; + aucData[i] = aucData[i + 1]; + aucData[i + 1] = aucData[i + 2]; + aucData[i + 2] = aucData[i + 3]; + aucData[i + 3] = tmp; + } + } + } catch (final IOException e) { + e.printStackTrace(); + } + if (kReturn == null) { + kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData, + kImageName); + } else { + kReturn.SetData(aucData, iXBound, iYBound, iZBound); + } + } else { + aucData = new byte[iSize]; + try { + kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); + // Temporary make the texture an RGBA texture until JOGL2 fixes NPOT textures. + byte[] aucData2 = new byte[iSize*4]; + for (int i = 0; i < iSize; i++) { + aucData2[i * 4 + 0] = aucData[i]; + aucData2[i * 4 + 1] = aucData[i]; + aucData2[i * 4 + 2] = aucData[i]; + aucData2[i * 4 + 3] = 1; + } + + if (kReturn == null) { + kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData2, + kImageName); + } else { + kReturn.SetData(aucData2, iXBound, iYBound, iZBound); + } + } catch (final IOException e) { + e.printStackTrace(); + } + + } + if (kNewImage != null) { + try { + kNewImage.importData(0, aucData, true); + } catch (final IOException e) {} + } + if (kVolumeTexture != null) { + kVolumeTexture.Reload(true); + } + return kReturn; + } + + private GraphicsImage initVolumeData(final ModelImage kImage, final int iTimeSlice, + final Texture kVolumeTexture, final String kImageName, final boolean bSwap, final boolean bRescale) + { + GraphicsImage kReturn = null; + final int iXBound = kImage.getExtents()[0]; + final int iYBound = kImage.getExtents()[1]; + final int iZBound = kImage.getExtents()[2]; + + byte[] aucData = null; + int iSize = iXBound * iYBound * iZBound; + if (kImage.isColorImage()) { + iSize *= 4; + aucData = new byte[iSize]; + try { + kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); + if (bSwap) { + for (int i = 0; i < iSize; i += 4) { + final byte tmp = aucData[i]; + aucData[i] = aucData[i + 1]; + aucData[i + 1] = aucData[i + 2]; + aucData[i + 2] = aucData[i + 3]; + aucData[i + 3] = tmp; + } + } + } catch (final IOException e) { + e.printStackTrace(); + } + kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData, + kImageName); + } else { + aucData = new byte[iSize]; + try { + kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); + // Temporary make the texture an RGBA texture until JOGL2 fixes NPOT textures. + byte[] aucData2 = new byte[iSize*4]; + for (int i = 0; i < iSize; i++) { + aucData2[i * 4 + 0] = aucData[i]; + aucData2[i * 4 + 1] = aucData[i]; + aucData2[i * 4 + 2] = aucData[i]; + aucData2[i * 4 + 3] = 1; + } + + kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData2, + kImageName); + } catch (final IOException e) { + e.printStackTrace(); + } + + } + if (kVolumeTexture != null) { + kVolumeTexture.Reload(true); + } + return kReturn; + } + + private GraphicsImage resetVolumeData(final ModelImage kImage, final int iTimeSlice, GraphicsImage kGraphicsImage, + final Texture kVolumeTexture, final String kImageName, final boolean bSwap, final boolean bRescale) + { + final int iXBound = kImage.getExtents()[0]; + final int iYBound = kImage.getExtents()[1]; + final int iZBound = kImage.getExtents()[2]; + int iSize = iXBound * iYBound * iZBound; + + byte[] aucData = null; + if (kImage.isColorImage()) { + iSize *= 4; + aucData = kGraphicsImage.GetData(); + try { + kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); + if (bSwap) { + for (int i = 0; i < iSize; i += 4) { + final byte tmp = aucData[i]; + aucData[i] = aucData[i + 1]; + aucData[i + 1] = aucData[i + 2]; + aucData[i + 2] = aucData[i + 3]; + aucData[i + 3] = tmp; + } + } + } catch (final IOException e) { + e.printStackTrace(); + } + } + else { + aucData = new byte[iSize]; + try { + kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); + byte[] aucData2 = kGraphicsImage.GetData(); + for (int i = 0; i < iSize; i++) { + aucData2[i * 4 + 0] = aucData[i]; + aucData2[i * 4 + 1] = aucData[i]; + aucData2[i * 4 + 2] = aucData[i]; + aucData2[i * 4 + 3] = 1; + } + } catch (final IOException e) { + e.printStackTrace(); + } + + } + if (kVolumeTexture != null) { + kVolumeTexture.Reload(true); + } + return kGraphicsImage; + } + + private void addNormals(final ModelImage kImage, final int iTimeSlice) { + final int iXBound = kImage.getExtents()[0]; + final int iYBound = kImage.getExtents()[1]; + final int iZBound = kImage.getExtents()[2]; + + int iSize = iXBound * iYBound * iZBound; + byte[] aucData = new byte[iSize * 4]; + try { + kImage.exportDataUseMask(0, iSize * 4, true, aucData); + byte[] volumeData = m_kVolume[iTimeSlice].GetData(); + for (int i = 0; i < iSize; i++) { + volumeData[i*4 + 1] = aucData[i*4 + 1]; + volumeData[i*4 + 2] = aucData[i*4 + 2]; + volumeData[i*4 + 3] = aucData[i*4 + 3]; + } + } catch (final IOException e) { + e.printStackTrace(); + } + m_kVolumeTarget.Reload(true); + } + + + private GraphicsImage createGM_Laplace(final ModelImage kImageGM, final ModelImage kImageL, + final GraphicsImage kVolumeImage, + final int iTimeSlice, final boolean bSwap) { + + GraphicsImage kReturn = kVolumeImage; + final int iXBound = kImageGM.getExtents()[0]; + final int iYBound = kImageGM.getExtents()[1]; + final int iZBound = kImageGM.getExtents()[2]; + + int iSize = iXBound * iYBound * iZBound; + byte[] aucDataL = new byte[iSize]; + + if ( kImageL != null ) + { + try { + kImageL.exportDataUseMask(0, iSize, false, aucDataL); + } catch (final IOException e) { + e.printStackTrace(); + } + } + + byte[] aucDataGM = null; + if (kImageGM.isColorImage()) { + iSize *= 4; + aucDataGM = new byte[iSize]; + try { + kImageGM.exportDataUseMask(0, iSize, false, aucDataGM); + if (bSwap) { + for (int i = 0, j = 0; i < iSize; i += 4) { + aucDataGM[i] = aucDataGM[i + 1]; + aucDataGM[i + 1] = aucDataGM[i + 2]; + aucDataGM[i + 2] = aucDataGM[i + 3]; + if ( kImageL != null ) + { + aucDataGM[i + 3] = aucDataL[j++]; + } + } + } + kImageGM.importData( 0, aucDataGM, false ); + } catch (final IOException e) { + e.printStackTrace(); + } + if (kReturn == null) { + kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucDataGM, + kImageGM.getImageName()); + } else { + kReturn.SetData(aucDataGM, iXBound, iYBound, iZBound); + } + } + else + { + try { + aucDataGM = new byte[iSize]; + kImageGM.exportDataUseMask(0, iSize, false, aucDataGM); + byte[] aucData2 = new byte[iSize*4]; + for (int i = 0; i < iSize; i++) { + aucData2[i * 4 + 0] = aucDataGM[i]; + aucData2[i * 4 + 1] = aucDataGM[i]; + aucData2[i * 4 + 2] = aucDataGM[i]; + if ( kImageL != null ) + { + aucData2[i * 4 + 3] = aucDataL[i]; + } + } + + if (kReturn == null) { + kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData2, + kImageGM.getImageName()); + } else { + kReturn.SetData(aucData2, iXBound, iYBound, iZBound); + } + } catch (final IOException e) { + e.printStackTrace(); + } catch ( java.lang.OutOfMemoryError e ) { + return null; + } + aucDataGM = null; + } + return kReturn; + } + + + + /** + * Creates a new GraphicsImage for the input ModelSimpleImage. The ModelSimpleImage data is + * referenced by the new GraphicsImage and will be passed to the GPU as a texture. + * @param kImage input ModelSimpleImage. + * @param kImageName name for the GraphicsImage. + * @return a new GraphcisImage. + */ + public static GraphicsImage UpdateData(final ModelSimpleImage kImage, final String kImageName) { + final GraphicsImage.FormatMode eType = GraphicsImage.FormatMode.IT_L32F; + + if (kImage.nDims == 3) { + return new GraphicsImage(eType, kImage.extents[0], kImage.extents[1], kImage.extents[2], kImage.data, + kImageName); + } + return new GraphicsImage(eType, kImage.extents[0], kImage.extents[1], 1, kImage.data, kImageName); + } + + /** + * When the LUT changes, this function updates the LUT data on the GPU. + * + * @param kColorTexture the color-map Texture object. + * @param kColorMap the color-map GraphicsImage object (stores data). + * @param kLUT the updated or new LUT. + */ + public static void UpdateImages(final Texture kColorTexture, final GraphicsImage kColorMap, final ModelLUT kLUT) { + if (kLUT == null) { + return; + } + ModelLUT.exportIndexedLUTMin(kLUT, kColorMap.GetData()); + kColorTexture.Reload(true); + } + + /** + * When the ModelImage data is rendered as a solid surface, the Normal map is used in the rendering. + * The Normal map is calculated on the GPU by one of the GLSL shader programs. This function is called + * after the GPU calculation has finished and the GPU data has been copied into a new ModelImage on the CPU + * the new ModelImage then contains the Normal map information, which is written into a file and + * copied into the Normal map GraphicsImage used to render the original ModelImage. + * + * @param i current 3D sub-image for 4D data. If the data is 3D this value should be 0. + * @param kImage a new ModelImage containing the calculated Normals. + */ + public void CopyNormalFiles(final int i, final ModelImage kImage) { + final String kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), "_Normal_" + + i); + JDialogBase.updateFileInfo( m_kImage, kImage ); + ModelImage.saveImage( kImage, kImageName + ".xml", m_kDir, false ); + if ( m_kImage.isColorImage() ) + { + m_kNormal[i] = initVolumeData(kImage, 0, m_kNormalMapTarget, kImage.getImageName(), true, true); + } + else + { + addNormals(kImage, i); + } + } + + /** + * Read the current Volume Texture from the GPU and return a new ModelImage of that data. + * + * @return new ModelImage from Volume Texture on GPU. + */ + public static ModelImage CreateImageFromTexture(final GraphicsImage kImage) { + final int[] extents = new int[ kImage.GetDimension() ]; + for ( int i = 0; i < extents.length; i++ ) + { + extents[i] = kImage.GetBound(i); + } + + //GraphicsImage.Type eType = kImage.GetType(); + int type = ModelStorageBase.ARGB; + /* + switch ( eType ) + { + case IT_BYTE : type = ModelStorageBase.BYTE; break; + case IT_UBYTE : type = ModelStorageBase.UBYTE; break; + case IT_SHORT : type = ModelStorageBase.SHORT; break; + case IT_USHORT : type = ModelStorageBase.USHORT; break; + case IT_INT : type = ModelStorageBase.INTEGER; break; + case IT_UINT : type = ModelStorageBase.UINTEGER; break; + case IT_LONG : type = ModelStorageBase.LONG; break; + case IT_FLOAT : type = ModelStorageBase.FLOAT; break; + case IT_DOUBLE : type = ModelStorageBase.DOUBLE; break; + } + */ + final ModelImage kResult = new ModelImage(type, extents, kImage.GetName() ); + int size = kImage.GetQuantity(); + for ( int i = 0; i < size;i++ ) + { + kResult.set(i*4 + 1, kImage.GetData()[i*3 + 0]); + kResult.set(i*4 + 2, kImage.GetData()[i*3 + 1]); + kResult.set(i*4 + 3, kImage.GetData()[i*3 + 2]); + } + return kResult; + } + + /** + * Memory cleanup. + */ + public void dispose() { + if (m_kImage == null) { + return; + } + m_kImage.disposeLocal(); + m_kImage = null; + + for (final GraphicsImage element : m_kVolume) { + element.dispose(); + } + m_kVolume = null; + m_kVolumeTarget.dispose(); + m_kVolumeTarget = null; + + if ( m_kNormal != null ) + { + for (final GraphicsImage element : m_kNormal) { + element.dispose(); + } + m_kNormal = null; + } + if ( m_kNormalMapTarget != null ) + { + m_kNormalMapTarget.dispose(); + m_kNormalMapTarget = null; + } + + m_kScratchTarget.dispose(); + m_kScratchTarget = null; + + m_kColorMap.dispose(); + m_kColorMap = null; + m_kColorMapTarget.dispose(); + m_kColorMapTarget = null; + + if ( m_kImageGM != null ) + { + m_kImageGM.disposeLocal(); + m_kImageGM = null; + } + + for (final GraphicsImage element : m_kVolumeGM) { + if ( element != null ) + element.dispose(); + } + m_kVolumeGM = null; + m_kVolumeGMTarget.dispose(); + m_kVolumeGMTarget = null; + + + m_kOpacityMap_GM.dispose(); + m_kOpacityMap_GM = null; + m_kOpacityMapTarget_GM.dispose(); + m_kOpacityMapTarget_GM = null; + + if (m_kSurfaceImage != null) { + m_kSurfaceImage.dispose(); + m_kSurfaceImage = null; + m_kSurfaceTarget.dispose(); + m_kSurfaceTarget = null; + } + + m_kLUT = null; + m_kPostfix = null; + if ( m_kHisto != null ) + { + for (final GraphicsImage element : m_kHisto) { + if ( element != null ) + { + element.dispose(); + } + } + m_kHisto = null; + } + m_akHistoTCoord = null; + } + + + /** + * This function is called when the user selects the Surface or Composite Surface volume rendering option. + * If the normals have already been initialized the function returns. Otherwise the function checks if the + * normals are available in a file on disk, and if so if they match the parameters (size, units, resolutions) of + * the original ModelImage. If the files match they are used and the Normal map is read from file. Otherwise this + * function launches the GPU-based Normal calculation. That calculation when finished calls the CopyNormalFiles + * which writes the calculated normals to disk and updates the Normal map on the GPU for rendering. + */ + public void GenerateNormalFiles( VolumeTriPlanarInterface parentFrame ) { + if ( m_bNormalsInit ) + { + return; + } + if ( !m_bNormalsInit ) + { + int dimX = m_kImage.getExtents().length > 0 ? m_kImage.getExtents()[0] : 1; + int dimY = m_kImage.getExtents().length > 1 ? m_kImage.getExtents()[1] : 1; + int dimZ = m_kImage.getExtents().length > 2 ? m_kImage.getExtents()[2] : 1; + ModelImage outputImage = new ModelImage( ModelStorageBase.ARGB_FLOAT, new int[]{dimX,dimY,dimZ}, "temp" ); + for (int i = 0; i < m_iTimeSteps; i++) { + OpenCLAlgorithmVolumeNormals oclNormals = new OpenCLAlgorithmVolumeNormals( m_kImage, outputImage, CL.CL_DEVICE_TYPE_GPU ); + oclNormals.setTime(i); + oclNormals.run(); + if ( m_kImage.isColorImage() ) + { + m_kNormal[i] = initVolumeData(outputImage, 0, m_kNormalMapTarget, outputImage.getImageName(), true, true); + } + else + { + addNormals(outputImage, i); + } + } + m_bNormalsInit = true; + + if ( m_kNormal != null) + { + m_kNormalMapTarget.SetImage(m_kNormal[m_iTimeSlice]); + m_kNormalMapTarget.Reload(true); + } + outputImage.disposeLocal(); + } + } + + /** + * Return the Color Map Texture. + * @return Volume color map Texture. + */ + public Texture GetColorMapTarget() { + return m_kColorMapTarget; + } + + /** + * Return the normalization factor for DDR rendering mode. + * @return normalization factor for DDR rendering mode. + */ + public float getDRRNorm() { + return m_fDRRNormalize; + } + + /** + * Return the Gradient Magnitude Texture. + * @return Gradient Magnitude Texture. + */ + public Texture GetGradientMapTarget() { + return m_kVolumeGMTarget; + } + + /** + * Returns true if the multi-histogram histogram texture has been initialized, false otherwise. + * @return true if the multi-histogram histogram texture has been initialized, false otherwise. + */ + public boolean isHistoInit() + { + return m_bHistoInit; + } + + /** + * Returns the multi-histogram histogram Texture. + * @return the multi-histogram histogram Texture. + */ + public Texture GetHistoTarget() { + return m_kHistoTarget; + } + + +// private ModelImage[] m_akHistogram; +// public ModelImage GetHistogram() { +// +// if ( !m_bHistoInit ) +// { +// SetGradientMagnitude(null, true, m_kPostfix); +// } +// if ( m_akHistogram == null ) +// { +// m_akHistogram = new ModelImage[m_akImages.length]; +// } +// if ( m_akHistogram[m_iTimeSlice] == null ) +// { +// m_akHistogram[m_iTimeSlice] = new ModelImage(ModelStorageBase.INTEGER, new int[]{256,256}, "JointHisto" + m_iTimeSlice); +// try { +// m_akHistogram[m_iTimeSlice].importData(m_kHisto[m_iTimeSlice].GetData()); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// return m_akHistogram[m_iTimeSlice]; +// } + + /** + * Return the texture coordinates for the multi-histogram histogram texture. + * @return the texture coordinates for the multi-histogram histogram texture. + */ + public Vector2f[] GetHistoTCoords() { + return m_akHistoTCoord; + } + + public ModelImage GetGradientMagnitudeImage() + { + return m_kImageGM; + } + + public Vector2f GetGradientMagnitudeMinMax() + { + return m_akGradientMagMinMax[m_iTimeSlice]; + } + + public float GetGradientMagnitudeMin() + { + return m_akGradientMagMinMax[m_iTimeSlice].X; + } + + public float GetGradientMagnitudeMax() + { + return m_akGradientMagMinMax[m_iTimeSlice].Y; + } + + /** + * Return the ModelImage volume data. + * @return ModelImage volume data. + */ + public ModelImage GetImage() { + return m_kImage; + } + + /** + * Return the ModelImage LUT. + * @return Volume LUT. + */ + public ModelLUT GetLUT() { + return m_kLUT; + } + + /** + * Return the Normal map Texture. + * @return Normal map Texture. + */ + public Texture GetNormalMapTarget() { + return m_kNormalMapTarget; + } + + public Texture GetScratchTarget() { + return m_kScratchTarget; + } + + /** + * Return the gradient magnitude opacity transfer function Texture. + * @return gradient magnitude opacity transfer function Texture. + */ + public Texture GetOpacityMapGMTarget() { + return m_kOpacityMapTarget_GM; + } + + /** + * Return the postfix for this VolumeImage. + * @return postfix for this VolumeImage. + */ + public String GetPostfix() { + return m_kPostfix; + } + + /** + * Return the Volume RGBT. + * @return Volume RGBT. + */ + public ModelStorageBase getLUT() { + return (m_kImage != null ) ? m_kImage.isColorImage() ? m_kRGBT : m_kLUT : null; + } + + /** + * Return the Volume RGBT. + * @return Volume RGBT. + */ + public ModelRGB GetRGB() { + return m_kRGBT; + } + + + public float GetTransferedValue( int x, int y, int z ) + { + int dimX = m_kImage.getExtents().length > 0 ? m_kImage.getExtents()[0] : 1; + int dimY = m_kImage.getExtents().length > 1 ? m_kImage.getExtents()[1] : 1; + int dimZ = m_kImage.getExtents().length > 2 ? m_kImage.getExtents()[2] : 1; + if ( x < 0 || x >= dimX || y < 0 || y >= dimY || z < 0 || z >= dimZ ) return -1; + + if ( m_kImage.isColorImage() ) { + float r = m_kRGBT.getROn() ? TransferValue(m_kImage.getFloat(x, y, z, 1)) : -1; + float g = m_kRGBT.getGOn() ? TransferValue(m_kImage.getFloat(x, y, z, 2)) : -1; + float b = m_kRGBT.getBOn() ? TransferValue(m_kImage.getFloat(x, y, z, 3)) : -1; + return Math.max( r, Math.max(g, b)); + } + float value = m_kImage.getFloat(x, y, z); + return TransferValue(value); + } + + private float TransferValue(float value) { + float min = (float) m_kImage.getMin(); + float max = (float) m_kImage.getMax(); + float diff = max - min; + byte index = 0; + if ( (diff > 1) && (diff <= 255) ) + { + index = (byte)(((value - min)/diff) * diff); + } + else + { + index = (byte)(((value - min)/diff) * 255); + } + if ( (index >= 0) && (index < 255) && (m_kColorMap != null) && (m_kColorMap.GetData() != null) ) + { + byte r = m_kColorMap.GetData()[index * 4 + 0]; + byte g = m_kColorMap.GetData()[index * 4 + 1]; + byte b = m_kColorMap.GetData()[index * 4 + 2]; + byte a = m_kColorMap.GetData()[index * 4 + 3]; + return Math.max(r*a, Math.max(g*a, b*a)); + } + return -1; + } + + + + /** + * The ModelImage Volume max-scale factor. + * @return Volume max-scale factor. + */ + public float GetScaleMax() { + return m_fMax; + } + + public int GetMaxExtent() + { + return m_iMaxExtent; + } + + /** + * The ModelImage Volume x-scale factor. + * @return Volume x-scale factor. + */ + public float GetScaleX() { + return m_fX; + } + + /** + * The ModelImage Volume y-scale factor. + * @return Volume y-scale factor. + */ + public float GetScaleY() { + return m_fY; + } + + /** + * The ModelImage Volume z-scale factor. + * @return Volume z-scale factor. + */ + public float GetScaleZ() { + return m_fZ; + } + + /** + * Return the surface mask Texture. + * @return surface mask Texture. + */ + public Texture GetSurfaceTarget() { + return m_kSurfaceTarget; + } + + + + /** A vector of BitSet masks, one for each surface loaded into the viewer. */ + protected Vector surfaceMask; + /** A vector of the mask names, so they can be accessed by name: */ + protected Vector surfaceNames; + /** A vector of BitSet masks, one for each surface loaded into the viewer. */ + protected Vector surfaceColor; + /** + * Add a new surface mask. + * @param name surface name. + * @param mask surface mask volume. + */ + public void setSurfaceMask(String name, ColorRGB color, BitSet mask) + { + if ( surfaceMask == null ) + { + surfaceMask = new Vector(); + surfaceNames = new Vector(); + surfaceColor = new Vector(); + } + surfaceMask.add(mask); + surfaceNames.add(name); + surfaceColor.add(color); + updateMask(); + } + + private void updateMask() + { + boolean bUpdate = false; + final int iXBound = m_kImage.getExtents()[0]; + final int iYBound = m_kImage.getExtents()[1]; + final int iZBound = m_kImage.getExtents()[2]; + int length = iXBound * iYBound * iZBound; + for ( int i = 0; i < length; i++ ) + { + boolean color = false; + for ( int surface = 0; surface < surfaceMask.size(); surface++ ) + { + if ( surfaceMask.elementAt(surface).get(i) ) + { + m_kSurfaceImage.GetData()[i * 4 + 0] = (byte) (surfaceColor.elementAt(surface).R * 255); + m_kSurfaceImage.GetData()[i * 4 + 1] = (byte) (surfaceColor.elementAt(surface).G * 255); + m_kSurfaceImage.GetData()[i * 4 + 2] = (byte) (surfaceColor.elementAt(surface).B * 255); + m_kSurfaceImage.GetData()[i * 4 + 3] = (byte) (255); + bUpdate = true; + color = true; + } + } + if ( !color ) + { + m_kSurfaceImage.GetData()[i * 4 + 0] = (byte) (0); + m_kSurfaceImage.GetData()[i * 4 + 1] = (byte) (0); + m_kSurfaceImage.GetData()[i * 4 + 2] = (byte) (0); + m_kSurfaceImage.GetData()[i * 4 + 3] = (byte) (0); + } + } + if ( bUpdate ) + { + m_kSurfaceTarget.Reload(true); + } + } + + /** + * Delete the surface mask, using the name of the mask as reference. + * @param name the surface name. + */ + public void removeSurfaceMask(String name) + { + boolean bUpdate = false; + if ( surfaceMask != null && surfaceNames != null) + { + if ( surfaceNames.contains(name) ) + { + surfaceMask.remove( surfaceNames.indexOf(name) ); + surfaceColor.remove( surfaceNames.indexOf(name) ); + surfaceNames.remove(name); + bUpdate = true; + } + } + if ( bUpdate ) + { + updateMask(); + m_kSurfaceTarget.Reload(true); + } + } + + /** + * Delete the surface mask, using the name of the mask as reference. + * @param name the surface name. + */ + public void setSurfaceMaskColor(String name, ColorRGB color) + { + boolean bUpdate = false; + if ( surfaceMask != null && surfaceNames != null) + { + if ( surfaceNames.contains(name) ) + { + surfaceColor.elementAt( surfaceNames.indexOf(name) ).Copy(color); + bUpdate = true; + } + } + if ( bUpdate ) + { + updateMask(); + } + } + + + /** + * Returns the current rendered time-slice for 4D images. Otherwise returns 0. + * @return the current rendered time-slice for 4D images. Otherwise returns 0. + */ + public int GetTimeSlice() { + return m_iTimeSlice; + } + + /** + * Return the Texture containing the volume data. + * @return Texture containing the volume data. + */ + public Texture GetVolumeTarget() { + return m_kVolumeTarget; + } + + /** + * Return the Buffer containing the volume data, which is stored in the Texture GrapicsImage. + * @return Buffer containing the volume data. + */ + public Buffer GetVolumeTargetBuffer() { + return m_kVolumeTarget.GetImage().GetDataBuffer(); + } + + /** + * Initialize the GraphicsImage for the opacity lookup table. + * + * @param kImage the ModelImage the opacity transfer function applies to. + * @param kPostfix the string postfix to concatenate to the "OpacityMap" image name. + * @return GraphicsImage, the new GraphicsImage storing opacity lookup table. + */ + public GraphicsImage InitOpacityMap(final ModelImage kImage, final String kPostFix) { + final int iLutHeight = 256; + final float[] afData = new float[iLutHeight]; + final float fRange = (float) (kImage.getMax() - kImage.getMin()); + final float fStep = fRange / iLutHeight; + float fDataValue = (float) kImage.getMin(); + for (int i = 0; i < iLutHeight; i++) { + afData[i] = (float) (iLutHeight * (kImage.getMax() - fDataValue) / fRange); + fDataValue += fStep; + } + + return new GraphicsImage(GraphicsImage.FormatMode.IT_L8, iLutHeight, afData, + new String("OpacityMap" + kPostFix)); + } + + /** + * Return true if the Volume image is a color image. + * + * @return true if the Volume image is a color image. + */ + public boolean IsColorImage() { + return m_kImage.isColorImage(); + } + + /** + * Release the Textures containing the volume data. Once Textures are released, they will be re-loaded onto the GPU + * during the next frame. + */ + public void ReleaseVolume() { + m_kVolumeTarget.Reload(true); + } + + + + /** + * Called when the user selects the Gradient Magnitude option or the Multi-Histogram option + * in the Volume Renderer. + * @param kGradientMagnitude pre-computed GradientMagnitude image or null + * @param bComputeLaplace when true the Laplace image and multi-histogram histogram Textures are computed. + * @param kPostfix GraphicsImage postfix string. + */ + public void SetGradientMagnitude(ModelImage kGradientMagnitude, boolean bComputeLaplace, String kPostfix ) + { + int start = 0; + int end = m_kImage.getNDims() > 3 ? m_iTimeSteps : 1; + if ( !m_bGMInit ) + { + try { + // System.err.println( "SetGradientMagnitude " + 0 ); + m_kImageGM = getGradientMagnitude( m_kImage, 0 ); + if ( m_kImageGM != null ) + { + m_kVolumeGM[0] = createGM_Laplace(m_kImageGM, null, m_kVolumeGM[0], 0, true); + if ( m_kVolumeGM[0] != null ) + { + m_akGradientMagMinMax[0] = new Vector2f( (float)m_kImageGM.getMin(), (float)m_kImageGM.getMax() ); + m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); + m_kVolumeGMTarget.Reload(true); + m_bGMInit = true; + } + } + for (int i = 1; i < m_iTimeSteps; i++) + { + // System.err.println( "SetGradientMagnitude " + i ); + ModelImage gmImage = getGradientMagnitude( m_kImage, i ); + if ( gmImage != null ) + { + m_kVolumeGM[i] = createGM_Laplace(gmImage, null, m_kVolumeGM[i], i, true); + if ( m_kVolumeGM[i] != null ) + { + m_akGradientMagMinMax[i] = new Vector2f( (float)gmImage.getMin(), (float)gmImage.getMax() ); + gmImage.disposeLocal(); + end = i + 1; + } + } + } + } catch ( java.lang.OutOfMemoryError e ) {} + } + + if ( m_bGMInit && bComputeLaplace && (m_kImageGM != null)) + { + GenerateHistogram(m_kVolume, m_kVolumeGM, kPostfix, start, end ); + } + } + + /** + * Sets the ModelRGB for the iImage. + * + * @param kRGBT new ModelRGB + */ + public void SetRGBT(final ModelRGB kRGBT) { + if (kRGBT == null) { + return; + } + ModelLUT.exportIndexedLUTMin(kRGBT, m_kColorMap.GetData()); + m_kColorMapTarget.Reload(true); + m_kRGBT = kRGBT; + } + + /** + * Sets the time slices for 4D data. + * @param iSlice new time slice value. + */ + public void SetTimeSlice(final int iSlice) { + if (m_iTimeSlice != iSlice) { + m_iTimeSlice = iSlice; + update4D(); + } + } + + /** + * Updates the current time slice. + * @param bForward when true the time advances on step forward or wraps to the beginning. + * When false the time moves backward. + */ + public void update4D(final boolean bForward) { + if (m_iTimeSteps == 1) { + return; + } + if (bForward) { + m_iTimeSlice++; + } else { + m_iTimeSlice--; + } + if (m_iTimeSlice >= m_iTimeSteps) { + m_iTimeSlice = 0; + } + if (m_iTimeSlice < 0) { + m_iTimeSlice = m_iTimeSteps - 1; + } + + update4D(); + } + + /** + * Update the image data. + * + * @param kImage the modified ModelImage + * @param bCopytoCPU when true the data is copied from the GPU GraphicsImage into the ModelImage + */ + public void UpdateData(final ModelImage kImage, boolean reload) { + m_kImage = kImage; + if ( m_kVolume == null ) { + m_kPostfix = ""; + init(null, 0, false); + return; + } + initLUT(); + if ( reload ) + { + if ( m_kVolume[m_iTimeSlice] != null ) + { + m_kVolume[m_iTimeSlice].dispose(); + } + m_kVolumeTarget.Remove(); + m_kVolume[m_iTimeSlice] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); + m_kVolumeTarget.SetImage(m_kVolume[m_iTimeSlice]); + } + else + { + m_kVolume[m_iTimeSlice] = resetVolumeData(m_kImage, m_iTimeSlice, m_kVolume[m_iTimeSlice], m_kVolumeTarget, m_kImage + .getImageName(), true, false); + } + InitScale(); + } + + + /** + * Changes the underlying image data and LUT. If the new image data is a different size than + * then previous one, recreate the volume image on the GPU, otherwise just overwrite it with + * the new data. + * @param kImage + * @param kLUT + * @param reload + */ + public void UpdateData(final ModelImage kImage, ModelLUT kLUT, boolean reload) { + if ( kLUT == null && !kImage.isColorImage()) + { + UpdateData(kImage, reload); + return; + } + m_kImage = kImage; + m_kLUT = kLUT; + if ( reload ) + { + if ( m_kVolume[m_iTimeSlice] != null ) + { + m_kVolume[m_iTimeSlice].dispose(); + } + m_kVolumeTarget.Remove(); + m_kVolume[m_iTimeSlice] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); + m_kVolumeTarget.SetImage(m_kVolume[m_iTimeSlice]); + } + else + { + m_kVolume[m_iTimeSlice] = resetVolumeData(m_kImage, m_iTimeSlice, m_kVolume[m_iTimeSlice], m_kVolumeTarget, m_kImage + .getImageName(), true, false); + } + InitScale(); + } + + /** + * Update the LUT for the ModelImage. + * + * @param kLUT new LUT for ModelImage. + */ + public void UpdateImages(final ModelLUT kLUT) { + if (kLUT != null) { + VolumeImage.UpdateImages(m_kColorMapTarget, m_kColorMap, kLUT); + m_kLUT = kLUT; + } + } + + /** + * Update the LUT for the ModelImage. + * + * @param kLUT new LUT for ModelImage. + */ + public void UpdateImages(final ModelStorageBase kLUT) { + if ( (kLUT != null) && (kLUT instanceof ModelLUT)) { + VolumeImage.UpdateImages(m_kColorMapTarget, m_kColorMap, (ModelLUT)kLUT); + m_kLUT = (ModelLUT)kLUT; +// System.err.println("UpdateImages " + m_kColorMapTarget.GetName() + " " + kLUT. +// System.err.println(" " + m_kColorMapTarget.GetID() ); + + } + if ( (kLUT != null) && (kLUT instanceof ModelRGB)) { + ModelLUT.exportIndexedLUTMin((ModelRGB)kLUT, m_kColorMap.GetData()); + m_kColorMapTarget.Reload(true); + m_kRGBT = (ModelRGB)kLUT; + } + } + + /** + * Update the transfer function for the image iImage. + * + * @param kTransfer the new opacity transfer function + * @param iImage the image to modify (0 = volume image, 2 = gradient mag) + * @param kImage GradientMagitude image. + * @return boolean true when updated, false otherwise. + */ + public boolean UpdateImages(final TransferFunction kTransfer, final int iImage, final ModelImage kImage) { + if (iImage == 0) { + return UpdateImages2(m_kImage, m_kColorMapTarget, m_kColorMap, kTransfer); + } else if ( (iImage == 2) && (kImage != null) && (m_kOpacityMapTarget_GM != null) && (m_kOpacityMap_GM != null)) { + return UpdateImages(kImage, m_kOpacityMapTarget_GM, m_kOpacityMap_GM, kTransfer); + } + return false; + } + + /** + * In order to map line integrals of image intensity to RGB colors where each color channel is 8 bits, it is + * necessary to make sure that the integrals are in [0,255]. Producing a theoretical maximum value of a line + * integral is not tractable in an application. This method constructs an approximate maximum by integrating along + * each line of voxels in the image with line directions parallel to the coordinate axes. The 'processRay' call + * adjusts the line integrals using the estimate, but still clamps the integrals to 255 since the estimate might not + * be the true maximum. + * + * @return float Integral normalization factor. + */ + protected float computeIntegralNormalizationFactor() { + final int iXBound = m_kImage.getExtents()[0]; + final int iYBound = m_kImage.getExtents()[1]; + final int iZBound = m_kImage.getExtents()[2]; + + byte[] aucData = null; + int iSize = iXBound * iYBound * iZBound; + if (m_kImage.isColorImage()) { + iSize *= 4; + } + + aucData = new byte[iSize]; + + try { + m_kImage.exportDataUseMask(0, iSize, false, aucData); + } catch (final IOException e) { + e.printStackTrace(); + } + + // compute image normalization factor + int iX, iY, iZ, iBase, iSteps; + float fMaxIntegral = 0.0f; + float fTStep, fIntegral; + + // fix y and z, integrate over x + for (iY = 0; iY < iYBound; iY++) { + + for (iZ = 0; iZ < iZBound; iZ++) { + iBase = iXBound * (iY + (iYBound * iZ)); + iSteps = iXBound - 1; + fIntegral = 0.5f * ( (aucData[iBase] & 0x0ff) + (aucData[iBase + iSteps] & 0x0ff)); + fTStep = 1.0f / iSteps; + + for (iX = 1; iX < iSteps; iX++) { + fIntegral += (aucData[iBase + iX] & 0x0ff); + } + + fIntegral *= fTStep; + + if (fIntegral > fMaxIntegral) { + fMaxIntegral = fIntegral; + } + } + } + final int iXYProduct = iXBound * iYBound; + // fix x and z, integrate over y + for (iX = 0; iX < iXBound; iX++) { + + for (iZ = 0; iZ < iZBound; iZ++) { + iBase = iX + (iXYProduct * iZ); + iSteps = iYBound - 1; + fIntegral = 0.5f * ( (aucData[iBase] & 0x0ff) + (aucData[iBase + (iXBound * iSteps)] & 0x0ff)); + fTStep = 1.0f / iSteps; + + for (iY = 1; iY < iSteps; iY++) { + fIntegral += (aucData[iBase + (iXBound * iY)] & 0x0ff); + } + + fIntegral *= fTStep; + + if (fIntegral > fMaxIntegral) { + fMaxIntegral = fIntegral; + } + } + } + + // fix x and y, integrate over z + for (iX = 0; iX < iXBound; iX++) { + + for (iY = 0; iY < iYBound; iY++) { + iBase = iX + (iXBound * iY); + iSteps = iZBound - 1; + fIntegral = 0.5f * ( (aucData[iBase] & 0x0ff) + (aucData[iBase + (iXYProduct * iSteps)] & 0x0ff)); + fTStep = 1.0f / iSteps; + + for (iZ = 1; iZ < iSteps; iZ++) { + fIntegral += (aucData[iBase + (iXYProduct * iZ)] & 0x0ff); + } + + fIntegral *= fTStep; + + if (fIntegral > fMaxIntegral) { + fMaxIntegral = fIntegral; + } + } + } + aucData = null; + return (fMaxIntegral > 0.0f) ? (1.0f / fMaxIntegral) : 0.00f; + } + + /** + * Checks that the two input images match extents, units of measure and resolutions. The images + * may had different sizes (3D or 4D) the first 3-dimensions must match. + * @param kImage1 + * @param kImage2 + * @return true if the images match extends, units and resolutions. + */ + public static boolean checkImage(ModelImage kImage1, ModelImage kImage2 ) + { + for ( int i = 0; i < Math.min( kImage1.getExtents().length, kImage2.getExtents().length ); i++ ) + { + if ( kImage1.getExtents()[i] != kImage2.getExtents()[i] ) + { + return false; + } + if ( kImage1.getUnitsOfMeasure()[i] != kImage2.getUnitsOfMeasure()[i] ) + { + return false; + } + if ( kImage1.getResolutions(0)[i] != kImage2.getResolutions(0)[i] ) + { + return false; + } + } + return true; + } + + /** + * Generate 2D histogram from the input image and the gradient-magnitude + * + * @param kImage input GraphicsImage containing the ModelImage data + * @param kImageGM input GraphcisImage containing the Gradient Magnitude data. + * @param kPostFix post-fix for the image name. + */ + private void GenerateHistogram(final GraphicsImage[] kImage, final GraphicsImage[] kImageGM, final String kPostFix, + int start, int end ) + { + int iTMinX = 255, iTMaxX = 0; + int iTMinY = 255, iTMaxY = 0; + float max = Float.MIN_VALUE; + float min = Float.MAX_VALUE; + m_kHisto = new GraphicsImage[m_iTimeSteps]; + for (int t = start; t < end; t++) { + float[] afCount = new float[256 * 256]; + for (int i = 0; i < 256 * 256; i++) { + afCount[i] = 0; + } + + int a1; + int a2; + final byte[] abHistoData = kImageGM[t].GetData(); + final byte[] abData = kImage[t].GetData(); + if (m_kImage.isColorImage()) { + int iHisto = 0; + for (int i = 0; i < abData.length; i += 4) { + int iR = (abData[i]); + int iG = (abData[i + 1]); + int iB = (abData[i + 2]); + //a1 = (iR * 0.299 + iG * 0.587 + iB * 0.114); + a1 = (iR + iG + iB)/3; + a1 = (a1 & 0x00ff); + + iR = (abHistoData[i]); + iG = (abHistoData[i + 1]); + iB = (abHistoData[i + 2]); + //a2 = (short) (iR * 0.299 + iG * 0.587 + iB * 0.114); + a2 = (iR + iG + iB)/3; + a2 = (a2 & 0x00ff); + afCount[a1 + a2 * 256] += 1; + iHisto++; + } + } + else { + int iHisto = 0; + for (int i = 0; i < abData.length; i += 4) { + a1 = abData[i]; + a1 = (a1 & 0x00ff); + a2 = (abHistoData[iHisto]); + a2 = (a2 & 0x00ff); + afCount[a1 + a2 * 256] += 1; + iHisto += 4; + } + } + max = Float.MIN_VALUE; + min = Float.MAX_VALUE; + for (int i = 0; i < 256 * 256; ++i) { + afCount[i] = (float) Math.log(afCount[i]+1); + max = Math.max(afCount[i], max); + min = Math.min(afCount[i], min); + } + //System.err.println( min + " " + max ); + final byte[] abHisto = new byte[256 * 256]; + //int maxB = Integer.MIN_VALUE; + //int minB = Integer.MAX_VALUE; + for (int i = 0; i < 256 * 256; ++i) { + abHisto[i] = new Float((afCount[i] / max) * 255f).byteValue(); + //maxB = ( iVal > maxB ) ? iVal : maxB; + //minB = ( iVal < minB ) ? iVal : minB; + } + afCount = null; + + int iMinX = 255, iMaxX = 0; + int iIndex = 0; + for (int i = 0; i < 256; i++) { + for (int j = 0; j < 256; j++) { + iIndex = i * 256 + j; + if (abHisto[iIndex] > 50) { + if (iMinX > j) { + iMinX = j; + } + if (j > iMaxX) { + iMaxX = j; + } + } + } + } + + int iMinY = 255, iMaxY = 0; + for (int j = 0; j < 256; j++) { + for (int i = 0; i < 256; i++) { + iIndex = i * 256 + j; + if (abHisto[iIndex] > 50) { + if (iMinY > i) { + iMinY = i; + } + if (i > iMaxY) { + iMaxY = i; + } + } + } + } + if (iTMinX > iMinX) { + iTMinX = iMinX; + } + if (iTMaxX < iMaxX) { + iTMaxX = iMaxX; + } + + if (iTMinY > iMinY) { + iTMinY = iMinY; + } + if (iTMaxY < iMaxY) { + iTMaxY = iMaxY; + } + + // iMinX = 0; iMaxX = 255; + // iMinY = 0; iMaxY = 255; + + m_kHisto[t] = new GraphicsImage(GraphicsImage.FormatMode.IT_L8, 256, 256, (byte[]) null, new String( + "VolumeImageHisto" + kPostFix)); + m_kHisto[t].SetData(abHisto, 256, 256); + /* + ModelImage kTestHisto2D = new ModelImage( ModelStorageBase.UBYTE, new int[]{256,256}, "Histo2D" ); + try { + kTestHisto2D.importData(abHisto); + } catch (IOException e) { + e.printStackTrace(); + } + kTestHisto2D.calcMinMax(); + new ViewJFrameImage( kTestHisto2D ); */ + } + + m_kHistoTarget = new Texture(); + m_kHistoTarget.SetImage(m_kHisto[0]); + m_kHistoTarget.SetShared(true); + m_kHistoTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kHistoTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kHistoTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kHistoTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + iTMinX = 0; + iTMaxX = Math.max( iTMaxX, iTMaxY ); + m_akHistoTCoord = new Vector2f[4]; + m_akHistoTCoord[0] = new Vector2f(iTMinX / 255.0f, iTMinX / 255.0f); + m_akHistoTCoord[1] = new Vector2f(iTMaxX / 255.0f, iTMinX / 255.0f); + m_akHistoTCoord[2] = new Vector2f(iTMaxX / 255.0f, iTMaxX / 255.0f); + m_akHistoTCoord[3] = new Vector2f(iTMinX / 255.0f, iTMaxX / 255.0f); + //m_akHistoTCoord[0] = new Vector2f(0f, 0f); + //m_akHistoTCoord[1] = new Vector2f(1f, 0f); + //m_akHistoTCoord[2] = new Vector2f(1f, 1f); + //m_akHistoTCoord[3] = new Vector2f(0f, 1f); + m_bHistoInit = true; + } + + /** + * Calculates and stores the gradient magnitude images (3D or 4D) for the input image. Or reads from disk. + * The data is stored in the GraphicsImage data structures and will be passed to the GPU to use in rendering. + * + * @param kImage input image + * @param kGradientMagnitude input Gradient Magnitude image, or null. + * @param bComputeLaplace when true the Laplace image is also calculated or read from dis. + private void GradientMagnitudeImage(final ModelImage kImage, ModelImage kGradientMagnitude, + boolean bComputeLaplace) { + + + if ( !m_bGMInit ) + { + ModelImage[] kImageGM = new ModelImage[m_iTimeSteps]; + String[] kImageName = new String[m_iTimeSteps]; + for (int i = 0; i < m_iTimeSteps; i++) { + kImageName[i] = ModelImage.makeImageName(kImage.getFileInfo(0).getFileName(), new String("_GM_" + i)); + + if ( kGradientMagnitude != null && checkImage(kImage, kGradientMagnitude )) + { + m_kVolumeGM[i] = VolumeImage.UpdateData(kGradientMagnitude, i, null, m_kVolumeGM[i], + m_kVolumeGMTarget, m_kVolumeGM[i].GetName(), true, false); + ModelImage.saveImage( kGradientMagnitude, kImageName[i] + ".xml", m_kDir ); + } + else + { + kImageGM[i] = ReadFromDisk(kImageName[i] + ".xml", m_kDir); + if ( kImageGM[i] != null && !checkImage(kImage, kImageGM[i] ) ) + { + kImageGM[i].disposeLocal(); + kImageGM[i] = null; + } + if (kImageGM[i] == null) { + JDialogGradientMagnitude kCalcMagnitude = new JDialogGradientMagnitude(null, m_akImages[i]); + kCalcMagnitude.setVisible(false); + kCalcMagnitude.setOutputNewImage(true); + kCalcMagnitude.setDisplayProgressBar(true); + kCalcMagnitude.setSeparateThread(false); + kCalcMagnitude.setSeparable(true); + kCalcMagnitude.setUseOCL(true); + kCalcMagnitude.actionPerformed(new ActionEvent(this, 0, "OK")); + kImageGM[i] = kCalcMagnitude.getResultImage(); + kCalcMagnitude = null; + } + if (kImageGM[i] == null) { + System.err.println("Gradient magnitude calculation returned null"); + m_kVolumeGM[i] = VolumeImage.UpdateData(kImage, i, null, m_kVolumeGM[i], m_kVolumeGMTarget, kImageName[i], true, false); + } else { + kImageGM[i].calcMinMax(); + m_akGradientMagMinMax[i] = new Vector2f( (float)kImageGM[i].getMin(), (float)kImageGM[i].getMax() ); + + if ( !( bComputeLaplace && !m_kImage.isColorImage() ) ) + { + m_kVolumeGM[i] = VolumeImage.UpdateData(kImageGM[i], 0, null, m_kVolumeGM[i], m_kVolumeGMTarget, kImageName[i], true, false); + } + } + } + } + + + if ( bComputeLaplace && !m_kImage.isColorImage() ) + { + for (int i = 0; i < m_iTimeSteps; i++) { + final String kImageNameL = ModelImage.makeImageName(kImage.getFileInfo(0).getFileName(), new String( + "_Laplacian_" + i)); + ModelImage kImageGMGM = null; + kImageGMGM = ReadFromDisk(kImageNameL + ".xml", m_kDir); + if ( kImageGMGM != null && !checkImage(kImage, kImageGMGM ) ) + { + kImageGMGM.disposeLocal(); + kImageGMGM = null; + } + if (kImageGMGM == null) { + final JDialogLaplacian kCalcLaplacian = new JDialogLaplacian(null, m_akImages[i]); + kCalcLaplacian.setVisible(false); + kCalcLaplacian.setOutputNewImage(true); + kCalcLaplacian.setDisplayProgressBar(true); + kCalcLaplacian.setSeparateThread(false); + kCalcLaplacian.setUseOCL(true); + kCalcLaplacian.setSeparable(true); + kCalcLaplacian.actionPerformed(new ActionEvent(this, 0, "OK")); + kImageGMGM = kCalcLaplacian.getResultImage(); + } + if (kImageGMGM != null) { + m_kVolumeGM[i] = createGM_Laplace(kImageGM[i], kImageGMGM, m_kVolumeGM[i], i, true); + } else { + m_kVolumeGM[i] = VolumeImage.UpdateData(kImageGM[i], 0, null, m_kVolumeGM[i], m_kVolumeGMTarget, kImageName[i], true, false); + } + final ViewJFrameImage kImageFrame = ViewUserInterface.getReference().getFrameContainingImage(kImageGMGM); + if (kImageFrame != null) { + kImageFrame.close(); + } else if (kImageGMGM != null) { + kImageGMGM.disposeLocal(); + kImageGMGM = null; + } + } + } + + m_bGMInit = true; + m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); + m_kVolumeGMTarget.Reload(true); + + for ( int i = 0; i < kImageGM.length; i++ ) + { + if (kImageGM[i] != null) { + + kImageGM[i].setImageDirectory( m_kDir ); + kImageGM[i].setImageName( kImageName[i] + ".xml" ); + ModelImage.saveImage(kImageGM[i], kImageName[i] + ".xml", m_kDir ); + + + final ViewJFrameImage kImageFrame = ViewUserInterface.getReference().getFrameContainingImage(kImageGM[i]); + if (kImageFrame != null) { + kImageFrame.close(); + } + + kImageGM[i].disposeLocal(); + kImageGM[i] = null; + } + } + } + } + */ + + public static ModelImage getGradientMagnitude( ModelImage kImage, int i ) + { + if ( kImage == null ) + { + return null; + } + int index = kImage.getExtents()[2] / 2; + float xRes = kImage.getFileInfo(index).getResolutions()[0]; + float zRes = kImage.getFileInfo(index).getResolutions()[2]; + + float correction = xRes / zRes; + float[] sigmas = new float[]{1f,1f,correction}; + + int dimX = kImage.getExtents().length > 0 ? kImage.getExtents()[0] : 1; + int dimY = kImage.getExtents().length > 1 ? kImage.getExtents()[1] : 1; + int dimZ = kImage.getExtents().length > 2 ? kImage.getExtents()[2] : 1; + ModelImage outputImage = new ModelImage( kImage.getDataType(), new int[]{dimX,dimY,dimZ}, "temp" ); + AlgorithmGradientMagnitudeSep gradientMagAlgo = new AlgorithmGradientMagnitudeSep( kImage, sigmas, true, false ); +// OpenCLAlgorithmGradientMagnitude gradientMagAlgo = new OpenCLAlgorithmGradientMagnitude(outputImage, kImage, sigmas, +// true, true, false); + gradientMagAlgo.setRed(true); + gradientMagAlgo.setGreen(true); + gradientMagAlgo.setBlue(true); + gradientMagAlgo.setRunningInSeparateThread(false); + gradientMagAlgo.run(); + float[] resultBuffer = gradientMagAlgo.getResultBuffer(); + try { + outputImage.importData(0, resultBuffer, true); + } catch (IOException e) {} +// gradientMagAlgo.gradientMagnitudeSep3D( i ); + gradientMagAlgo.finalize(); + gradientMagAlgo = null; + return outputImage; + } + + +// private ModelImage getLaplace( ModelImage kImage, int i ) +// { +// String kImageName = ModelImage.makeImageName(kImage.getFileInfo(0).getFileName(), new String("_Laplacian_" + i)); +// ModelImage kImageL = ReadFromDisk(kImageName + ".xml", m_kDir); +// if ( kImageL != null && !checkImage(kImage, kImageL ) ) +// { +// kImageL.disposeLocal(); +// kImageL = null; +// } +// if (kImageL == null) { +// JDialogLaplacian kCalcLaplacian = new JDialogLaplacian(null, m_akImages[i]); +// kCalcLaplacian.setVisible(false); +// kCalcLaplacian.setOutputNewImage(true); +// kCalcLaplacian.setDisplayProgressBar(true); +// kCalcLaplacian.setSeparateThread(false); +// kCalcLaplacian.setUseOCL(true); +// kCalcLaplacian.setSeparable(true); +// kCalcLaplacian.actionPerformed(new ActionEvent(this, 0, "OK")); +// kImageL = kCalcLaplacian.getResultImage(); +// kCalcLaplacian = null; +// +// kImageL.setImageDirectory( m_kDir ); +// kImageL.setImageName( kImageName + ".xml" ); +// JDialogBase.updateFileInfo( kImage, kImageL ); +// ModelImage.saveImage(kImageL, kImageName + ".xml", m_kDir ); +// final ViewJFrameImage kImageFrame = ViewUserInterface.getReference().getFrameContainingImage(kImageL); +// if (kImageFrame != null) { +// kImageFrame.setVisible(false); +// } +// } +// return kImageL; +// } + + /** + * Initialize the VolumeImage with the ModelImage data. + * @param kProgress progress bar + * @param iProgress progress bar increment + */ + private void init(final ViewJProgressBar kProgress, final int iProgress, boolean initGradientMagnitude) { + // Create LUTS for the ModelImage: + initLUT(); + // Initialize Texture Maps: + if ( !m_kImage.isColorImage() ) + { + initImages(); + } + else + { + initImagesColor(); + } + if ( initGradientMagnitude ) + { + SetGradientMagnitude(null, true, m_kPostfix); + } + if (kProgress != null) { + kProgress.updateValueImmed(kProgress.getValue() + iProgress); + } + } + + /** + * Intializes the Textures and GraphicsImages used to render the ModelImage this + * VolumeImage represents. + */ + private void initImages() { + m_fDRRNormalize = computeIntegralNormalizationFactor(); + // Initialize Color Map GraphicsImage: + m_kColorMap = initColorMap(); + // Initialize Opacity Map for the GradientMagnitude image: + m_kOpacityMap_GM = InitOpacityMap(m_kImage, new String(m_kPostfix + "_GM")); + + final int iXBound = m_kImage.getExtents()[0]; + final int iYBound = m_kImage.getExtents()[1]; + final int iZBound = m_kImage.getExtents()[2]; + + /* + * Map the ModelImage volume data to a texture image, including for the ModelImage gradient magnitude data: + */ + final int[] aiExtents = m_kImage.getExtents(); + final int iNDims = aiExtents.length; + String kImageName; + GraphicsImage.FormatMode type = GraphicsImage.FormatMode.IT_RGBA8888 ; + + + if (iNDims == 3) { // ModelImage is 3D: + m_iTimeSteps = 1; + } + else { // ModelImage is 4D: + m_iTimeSteps = aiExtents[3]; + } + // Allocate a 3D GraphicsImage for each 3D Volume + m_kVolume = new GraphicsImage[m_iTimeSteps]; + m_kVolumeGM = new GraphicsImage[m_iTimeSteps]; + m_akGradientMagMinMax = new Vector2f[m_iTimeSteps]; + + final int[] aiSubset = new int[] {aiExtents[0], aiExtents[1], aiExtents[2]}; + + for (int i = 0; i < m_iTimeSteps; i++) { +// System.err.println( "initiImages : " + i ); + if ( m_iTimeSteps > 1 ) + { + // Will generate the ModelImage GraphicsImage representation and separate the 4D ModelImage into + // the 3D Subset image. + m_kVolume[i] = initVolumeData(m_kImage, i, m_kVolumeTarget, m_kImage.getImageName(), true, false); + } + else + { + // Already 3D, just generate the GraphicsImage: + m_kVolume[0] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); + } + + // Allocate GraphcisImage for Gradient Magnitude Texture: + kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), + new String("_GM_" + i)); + m_kVolumeGM[i] = new GraphicsImage(type, iXBound, iYBound, iZBound, + (byte[])null, kImageName); + + } + // Initialize the Gradient Magnitude Texture and set its GraphicsImage: + m_kVolumeGMTarget = new Texture(); + m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); + m_kVolumeGMTarget.SetShared(true); + m_kVolumeGMTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kVolumeGMTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kVolumeGMTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kVolumeGMTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Initialize the ModelImage Texture and set its GraphicsImage: + m_kVolumeTarget = new Texture(); + m_kVolumeTarget.SetImage(m_kVolume[0]); + m_kVolumeTarget.SetShared(true); + m_kVolumeTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kVolumeTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kVolumeTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kVolumeTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Initialize the ColorMap Texture and set its GraphicsImage: + m_kColorMapTarget = new Texture(); + m_kColorMapTarget.SetImage(m_kColorMap); + m_kColorMapTarget.SetShared(true); + + // Initialize the Normal Map Texture and set its GraphicsImage: + m_kScratchTarget = new Texture(); + m_kScratchTarget.SetImage(new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, + (byte[])null, "ScratchBuffer")); + m_kScratchTarget.SetShared(true); + m_kScratchTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kScratchTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kScratchTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kScratchTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Initialize the Opacity Map for the Gradient Magnitude Texture and set its GraphicsImage: + m_kOpacityMapTarget_GM = new Texture(); + m_kOpacityMapTarget_GM.SetImage(m_kOpacityMap_GM); + m_kOpacityMapTarget_GM.SetShared(true); + + // Initialize the Surface Mask Texture and set its GraphicsImage: + m_kSurfaceImage = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, + new byte[4* iXBound * iYBound * iZBound], "SurfaceImage"); + m_kSurfaceTarget = new Texture(); + m_kSurfaceTarget.SetImage(m_kSurfaceImage); + m_kSurfaceTarget.SetShared(true); + m_kSurfaceTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kSurfaceTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kSurfaceTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kSurfaceTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Calculate the scale factors for rendering the volume with a unit cube: + InitScale(); + } + + + private void initImagesColor() { + m_fDRRNormalize = computeIntegralNormalizationFactor(); + // Initialize Color Map GraphicsImage: + m_kColorMap = initColorMap(); + // Initialize Opacity Map for the GradientMagnitude image: + m_kOpacityMap_GM = InitOpacityMap(m_kImage, new String(m_kPostfix + "_GM")); + + final int iXBound = m_kImage.getExtents()[0]; + final int iYBound = m_kImage.getExtents()[1]; + final int iZBound = m_kImage.getExtents()[2]; + + /* + * Map the ModelImage volume data to a texture image, including for the ModelImage gradient magnitude data: + */ + final int[] aiExtents = m_kImage.getExtents(); + final int iNDims = aiExtents.length; + String kImageName; + GraphicsImage.FormatMode type = GraphicsImage.FormatMode.IT_RGBA8888 ; + + + if (iNDims == 3) { // ModelImage is 3D: + m_iTimeSteps = 1; + } + else { // ModelImage is 4D: + m_iTimeSteps = aiExtents[3]; + } + // A 4D ModelImage is separated into the 3D Volumes: +// m_akImages = new ModelImage[m_iTimeSteps]; + // Allocate a 3D GraphicsImage for each 3D Volume + m_kVolume = new GraphicsImage[m_iTimeSteps]; + m_kVolumeGM = new GraphicsImage[m_iTimeSteps]; + m_kNormal = new GraphicsImage[m_iTimeSteps]; + m_akGradientMagMinMax = new Vector2f[m_iTimeSteps]; + + final int[] aiSubset = new int[] {aiExtents[0], aiExtents[1], aiExtents[2]}; + for (int i = 0; i < m_iTimeSteps; i++) { + + if ( m_iTimeSteps > 1 ) + { + // Will generate the ModelImage GraphicsImage representation and separate the 4D ModelImage into + // the 3D Subset image. +// m_akImages[i] = new ModelImage(m_kImage.getType(), aiSubset, JDialogBase.makeImageName(m_kImage +// .getImageName(), "_" + i)); +// JDialogBase.updateFileInfo( m_kImage, m_akImages[i] ); + m_kVolume[i] = initVolumeData(m_kImage, i, m_kVolumeTarget, m_kImage.getImageName(), true, false); +// m_akImages[i].copyFileTypeInfo(m_kImage); +// m_akImages[i].calcMinMax(); + } + else + { + // Already 3D, just generate the GraphicsImage: +// m_akImages[0] = m_kImage; + m_kVolume[0] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); + } + // Allocate GraphcisImage for Normal Map Texture: + kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), + new String("_Normal_" + i)); + m_kNormal[i] = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, + (byte[])null, kImageName); + + // Allocate GraphcisImage for Gradient Magnitude Texture: + kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), + new String("_GM_" + i)); + m_kVolumeGM[i] = new GraphicsImage(type, iXBound, iYBound, iZBound, + (byte[])null, kImageName); + } + // Initialize the Gradient Magnitude Texture and set its GraphicsImage: + m_kVolumeGMTarget = new Texture(); + m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); + m_kVolumeGMTarget.SetShared(true); + m_kVolumeGMTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kVolumeGMTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kVolumeGMTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kVolumeGMTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Initialize the ModelImage Texture and set its GraphicsImage: + m_kVolumeTarget = new Texture(); + m_kVolumeTarget.SetImage(m_kVolume[0]); + m_kVolumeTarget.SetShared(true); + m_kVolumeTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kVolumeTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kVolumeTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kVolumeTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Initialize the ColorMap Texture and set its GraphicsImage: + m_kColorMapTarget = new Texture(); + m_kColorMapTarget.SetImage(m_kColorMap); + m_kColorMapTarget.SetShared(true); + + // Initialize the Normal Map Texture and set its GraphicsImage: + m_kNormalMapTarget = new Texture(); + m_kNormalMapTarget.SetImage(m_kNormal[0]); + m_kNormalMapTarget.SetShared(true); + m_kNormalMapTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kNormalMapTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kNormalMapTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kNormalMapTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + + // Initialize the Normal Map Texture and set its GraphicsImage: + m_kScratchTarget = new Texture(); + m_kScratchTarget.SetImage(new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, + (byte[])null, "ScratchBuffer")); + m_kScratchTarget.SetShared(true); + m_kScratchTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kScratchTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kScratchTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kScratchTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Initialize the Opacity Map for the Gradient Magnitude Texture and set its GraphicsImage: + m_kOpacityMapTarget_GM = new Texture(); + m_kOpacityMapTarget_GM.SetImage(m_kOpacityMap_GM); + m_kOpacityMapTarget_GM.SetShared(true); + + // Initialize the Surface Mask Texture and set its GraphicsImage: + m_kSurfaceImage = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, + new byte[4* iXBound * iYBound * iZBound], "SurfaceImage"); + m_kSurfaceTarget = new Texture(); + m_kSurfaceTarget.SetImage(m_kSurfaceImage); + m_kSurfaceTarget.SetShared(true); + m_kSurfaceTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kSurfaceTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kSurfaceTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kSurfaceTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Calculate the scale factors for rendering the volume with a unit cube: + InitScale(); + } + + /** + * Create a new LUT for the input image. + * + * @param kImage ModelImage. + */ + private void initLUT() { + + if (m_kImage.isColorImage()) { + final float[] x = new float[4]; + final float[] y = new float[4]; + final Dimension dim = new Dimension(256, 256); + + // Set ModelRGB min max values; + x[0] = 0; + y[0] = dim.height - 1; + + x[1] = 255 * 0.333f; + y[1] = (dim.height - 1) - ( (dim.height - 1) / 3.0f); + + x[2] = 255 * 0.667f; + y[2] = (dim.height - 1) - ( (dim.height - 1) * 0.67f); + + x[3] = 255; + y[3] = 0; + + final int[] RGBExtents = new int[2]; + RGBExtents[0] = 4; + RGBExtents[1] = 256; + m_kRGBT = new ModelRGB(RGBExtents); + m_kRGBT.getRedFunction().importArrays(x, y, 4); + m_kRGBT.getGreenFunction().importArrays(x, y, 4); + m_kRGBT.getBlueFunction().importArrays(x, y, 4); + m_kRGBT.makeRGB( -1); + } else { + final int[] dimExtentsLUT = new int[2]; + + dimExtentsLUT[0] = 4; + dimExtentsLUT[1] = 256; + + m_kLUT = new ModelLUT(ModelLUT.GRAY, 256, dimExtentsLUT); + + float min, max; + + if (m_kImage.getType() == ModelStorageBase.UBYTE) { + min = 0; + max = 255; + } else if (m_kImage.getType() == ModelStorageBase.BYTE) { + min = -128; + max = 127; + } else { + min = (float) m_kImage.getMin(); + max = (float) m_kImage.getMax(); + } + + final float imgMin = (float) m_kImage.getMin(); + final float imgMax = (float) m_kImage.getMax(); + + m_kLUT.resetTransferLine(min, imgMin, max, imgMax); + } + } + + /** + * Initialize the scale factors. Based on the ModelImage Volume. + */ + private void InitScale() { + + int dimX = m_kImage.getExtents().length > 0 ? m_kImage.getExtents()[0] : 1; + int dimY = m_kImage.getExtents().length > 1 ? m_kImage.getExtents()[1] : 1; + int dimZ = m_kImage.getExtents().length > 2 ? m_kImage.getExtents()[2] : 1; + m_iMaxExtent = Math.max( dimX, Math.max( dimY, dimZ ) ); + + final float fMaxX = (m_kImage.getExtents()[0] - 1) * m_kImage.getFileInfo(0).getResolutions()[0]; + final float fMaxY = (m_kImage.getExtents()[1] - 1) * m_kImage.getFileInfo(0).getResolutions()[1]; + final float fMaxZ = (m_kImage.getExtents()[2] - 1) * m_kImage.getFileInfo(0).getResolutions()[2]; + + m_fMax = fMaxX; + if (fMaxY > m_fMax) { + m_fMax = fMaxY; + } + if (fMaxZ > m_fMax) { + m_fMax = fMaxZ; + } + m_fX = fMaxX / m_fMax; + m_fY = fMaxY / m_fMax; + m_fZ = fMaxZ / m_fMax; + } + + /** + * Reads an image from disk. + * + * @param kImageName image name + * @param kDir directory + * @return ModelImage + */ + private static ModelImage ReadFromDisk(final String kImageName, final String kDir) { + + final File kFile = new File(kDir, kImageName); + if ( !kFile.exists()) { + return null; + } + + final FileIO fileIO = new FileIO(); + return fileIO.readImage( kImageName, kDir ); + //return fileIO.readXML(kImageName + ".xml", kDir, false, false); + } + + private void readObject(final java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { + m_kDir = (String) in.readObject(); + if ( !m_kDir.equals("null")) { + final String kImageName = (String) in.readObject(); + m_kPostfix = (String) in.readObject(); + m_kImage = ReadFromDisk(kImageName, m_kDir); + init(null, 0, true); + } + } + + + /** + * Go to the next 3D volume sub-image for the 4D animation. + * Updates the Textures and causes them to be reloaded onto the GPU. + */ + private void update4D() { + if ( m_kImage == null ) return; + + m_kVolumeTarget.SetImage(m_kVolume[m_iTimeSlice]); + m_kVolumeTarget.Reload(true); + if ( m_bGMInit ) + { + if ( m_kVolumeGM[m_iTimeSlice] == null ) + { + ModelImage gmImage = getGradientMagnitude( m_kImage, m_iTimeSlice ); + m_akGradientMagMinMax[m_iTimeSlice] = new Vector2f( (float)gmImage.getMin(), (float)gmImage.getMax() ); + gmImage.disposeLocal(); + m_kVolumeGMTarget.SetImage(createGM_Laplace(gmImage, null, null, 0, true)); + m_kVolumeGMTarget.Reload(true); + } + else + { + m_kVolumeGMTarget.SetImage(m_kVolumeGM[m_iTimeSlice]); + m_kVolumeGMTarget.Reload(true); + } + } + if ( m_bNormalsInit && m_kImage.isColorImage() ) + { + m_kNormalMapTarget.SetImage(m_kNormal[m_iTimeSlice]); + m_kNormalMapTarget.Reload(true); + } + if ( m_bHistoInit && (m_kHisto[m_iTimeSlice] != null )) + { + m_kHistoTarget.SetImage(m_kHisto[m_iTimeSlice]); + m_kHistoTarget.Reload(true); + } + + m_kImage.setTimeSlice(m_iTimeSlice); + } + + /** + * Called when the opacity transfer function changes. This function updates the Texture + * and causes the data to be reloaded onto the GPU. + * + * @param kImage the ModelImage the transfer function applies to. + * @param kOpacityTexture the opacity Texture passed to the GPU + * @param kOpacityMap the opacity data stored in the GraphicsImage + * @param kTransfer the new transfer function. + */ + private boolean UpdateImages(final ModelImage kImage, final Texture kOpacityTexture, + final GraphicsImage kOpacityMap, final TransferFunction kTransfer) { + final int iLutHeight = 256; + final float[] afData = kOpacityMap.GetFloatData(); + + final float fRange = (float) (kImage.getMax() - kImage.getMin()); + final float fStep = fRange / iLutHeight; + float fDataValue = (float) kImage.getMin(); + for (int i = 0; i < iLutHeight; i++) { + afData[i] = (kTransfer.getRemappedValue(fDataValue, iLutHeight) / 255.0f); + fDataValue += fStep; + } + kOpacityTexture.Reload(true); + return true; + } + + public TransferFunction getOpacityFn() { + return opacityTransferFn; + } + + /** + * Update the opacity transfer function. + * + * @param kImage the ModelImage the transfer function applies to. + * @param kOpacityTexture the opacity Texture passed to the GPU + * @param kOpacityMap the opacity data stored in the GraphicsImage + * @param kTransfer the new transfer function. + */ + private boolean UpdateImages2(final ModelImage kImage, final Texture kOpacityTexture, + final GraphicsImage kOpacityMap, final TransferFunction kTransfer) { + opacityTransferFn = new TransferFunction(kTransfer); + final int iLutHeight = kOpacityMap.GetBound(0); + final byte[] abData = kOpacityMap.GetData(); + + final float fRange = (float) (kImage.getMax() - kImage.getMin()); + final float fStep = fRange / iLutHeight; + float fDataValue = (float) kImage.getMin(); + float fVal; + for (int i = 0; i < iLutHeight; i++) { + fVal = (kTransfer.getRemappedValue(fDataValue, iLutHeight) / 255.0f); + abData[i * 4 + 3] = (byte) (fVal * 255); + fDataValue += fStep; + } + kOpacityTexture.Reload(true); + return true; + } + + private void writeObject(final java.io.ObjectOutputStream out) throws IOException { + if (m_kImage != null) { + out.writeObject(m_kDir); + out.writeObject(m_kImage.getImageFileName()); + out.writeObject(m_kPostfix); + m_kImage.saveImage(m_kDir, m_kImage.getImageFileName(), FileUtility.XML, false, false); + } else { + out.writeObject("null"); + } + } +} diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java index d5da71688a..cab640183b 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java @@ -61,6 +61,8 @@ import com.jogamp.opengl.awt.GLCanvas; import javax.swing.KeyStroke; +import org.janelia.mipav.test.valueOutput; + import WildMagic.LibFoundation.Mathematics.ColorRGBA; import WildMagic.LibFoundation.Mathematics.Mathf; import WildMagic.LibFoundation.Mathematics.Matrix3f; @@ -857,6 +859,10 @@ private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPt) Vector3f pickedPoints[] = new Vector3f[m_kPicker.Records.size()]; float distances[] = new float[m_kPicker.Records.size()]; + long time = System.currentTimeMillis(); + valueOutput output = new valueOutput("output" + time + ".csv"); + valueOutput outputOld = new valueOutput("outputOld" + time + ".csv"); + for ( int i = 0; i < m_kPicker.Records.size(); i++ ) { PickRecord kPickPoint = m_kPicker.Records.elementAt(i); @@ -880,6 +886,8 @@ private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPt) secondIntersectionPoint.copy(pickedPoints[1]); float maxValue = -Float.MAX_VALUE; + float maxValueOld = -Float.MAX_VALUE; + Vector3f maxPtOld = new Vector3f(); Vector3f p0 = new Vector3f(firstIntersectionPoint); Vector3f p1 = new Vector3f(secondIntersectionPoint); @@ -959,13 +967,39 @@ else if ( (m_kVolumeImageB != null) && (m_kVolumeImageB.GetImage() != null)) { // Only one imageA: value = m_kVolumeImageA.GetTransferedValue(sampleX, sampleY, sampleZ); } + if ( value > maxValueOld ) + { + maxValueOld = value; + maxPtOld.copy(p0); + } + outputOld.writeData(p0.X, p0.Y, p0.Z, value); + + // Old Mipav but more accurate click + value = m_kVolumeImageA.GetImage().getFloatTriLinearBounds(p0.X, p0.Y, p0.Z); + if ( (m_kVolumeImageB != null) && (m_kVolumeImageB.GetImage() != null)) + { + float valueB = m_kVolumeImageB.GetImage().getFloatTriLinearBounds(p0.X, p0.Y, p0.Z); + float blend = getABBlend(); + value = (blend * value + (1 - blend) * valueB); + } + + if ( value > maxValue ) { maxValue = value; maxPt.copy(p0); } + // Write data to CSV + output.writeData(p0.X, p0.Y, p0.Z, value); } + + outputOld.writeData(maxPtOld.X, maxPtOld.Y, maxPtOld.Z, maxValueOld); + output.writeData(maxPt.X, maxPt.Y, maxPt.Z, maxValue); + // Close the output stream + output.close(); + outputOld.close(); + if ( maxValue != -Float.MAX_VALUE ) { boolean picked = false; From 3636593c7e5f66d0d2a7c454ad2485da18e23183 Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 23 Apr 2024 10:11:53 -0400 Subject: [PATCH 02/45] To fix the clicking accuracy issues, the old version(2022) of MIPAV for PickVolum3D were retrieved to replace the current one. An valueOutput class was created for output the data into csv files for plotting. --- .../WildMagic/Render/VolumeImage.java | 29 ++++++++++++ test/org/janelia/mipav/test/valueOutput.java | 44 +++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 test/org/janelia/mipav/test/valueOutput.java diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/Render/VolumeImage.java b/src/gov/nih/mipav/view/renderer/WildMagic/Render/VolumeImage.java index ef09e08086..882bbc8512 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/Render/VolumeImage.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/Render/VolumeImage.java @@ -963,6 +963,35 @@ public float GetTransferedValue( int x, int y, int z ) return TransferValue(value); } + + public ColorRGBA GetTransferedValueOld( float x, float y, float z ) + { + float value = m_kImage.getFloatTriLinearBounds(x, y, z); + + float min = (float) m_kImage.getMin(); + float max = (float) m_kImage.getMax(); + float diff = max - min; + byte index = 0; + if ( (diff > 1) && (diff <= 255) ) + { + index = (byte)(((value - min)/diff) * diff); + } + else + { + index = (byte)(((value - min)/diff) * 255); + } + if ( (index >= 0) && (index < 255) && (m_kColorMap != null) && (m_kColorMap.GetData() != null) ) + { + byte r = m_kColorMap.GetData()[index * 4 + 0]; + byte g = m_kColorMap.GetData()[index * 4 + 1]; + byte b = m_kColorMap.GetData()[index * 4 + 2]; + byte a = m_kColorMap.GetData()[index * 4 + 3]; + return new ColorRGBA(r, g, b, a); + } + return new ColorRGBA(0,0,0,0); + } + + private float TransferValue(float value) { float min = (float) m_kImage.getMin(); float max = (float) m_kImage.getMax(); diff --git a/test/org/janelia/mipav/test/valueOutput.java b/test/org/janelia/mipav/test/valueOutput.java new file mode 100644 index 0000000000..545a14bb43 --- /dev/null +++ b/test/org/janelia/mipav/test/valueOutput.java @@ -0,0 +1,44 @@ +package org.janelia.mipav.test; + + +import java.io.FileWriter; +import java.io.IOException; + +public class valueOutput { + private FileWriter fileWriter; + + public valueOutput(String fileName) { + try { + this.fileWriter = new FileWriter(fileName); + // Writing the header + this.fileWriter.append("p0.X,p0.Y,p0.Z,value\n"); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + public void writeData(float x, float y, float z, float value) { + // Writing data in the CSV format + try { + this.fileWriter.append(String.format("%.1f,%.1f,%.1f,%.1f\n", x, y, z, value)); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public void close() { + // Closing the FileWriter + try { + this.fileWriter.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } +} + + + From d75f20f950ca0c48b62099f31def2eb2b78d9cb8 Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 23 Apr 2024 13:30:54 -0400 Subject: [PATCH 03/45] Switched the mis-named variables. --- .gitignore | 6 ++- .../WildMagic/VolumeTriPlanarRender.java | 42 +++++++++---------- .../{valueOutput.java => ValueOutput.java} | 4 +- 3 files changed, 28 insertions(+), 24 deletions(-) rename test/org/janelia/mipav/test/{valueOutput.java => ValueOutput.java} (92%) diff --git a/.gitignore b/.gitignore index 21ed2319f0..8ed7b69bbe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,8 @@ /bin/ /export/ /null/ -classes \ No newline at end of file +classes +*.csv +*.pdf +*.png +/output/ diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java index cab640183b..f3d6086f9a 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java @@ -61,7 +61,7 @@ import com.jogamp.opengl.awt.GLCanvas; import javax.swing.KeyStroke; -import org.janelia.mipav.test.valueOutput; +import org.janelia.mipav.test.ValueOutput; import WildMagic.LibFoundation.Mathematics.ColorRGBA; import WildMagic.LibFoundation.Mathematics.Mathf; @@ -846,7 +846,7 @@ else if ( m_bErase ) m_bMouseDrag = false; } - private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPt) + private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPtAccurate) { m_kPicker.Execute(m_kVolumeRayCast.GetScene(),kPos,kDir,0.0f, Float.MAX_VALUE); @@ -860,8 +860,8 @@ private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPt) float distances[] = new float[m_kPicker.Records.size()]; long time = System.currentTimeMillis(); - valueOutput output = new valueOutput("output" + time + ".csv"); - valueOutput outputOld = new valueOutput("outputOld" + time + ".csv"); + ValueOutput outputAccurate = new ValueOutput("outputAccurate" + time + ".csv"); + ValueOutput output = new ValueOutput("output" + time + ".csv"); for ( int i = 0; i < m_kPicker.Records.size(); i++ ) { @@ -885,9 +885,9 @@ private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPt) firstIntersectionPoint.copy(pickedPoints[0]); secondIntersectionPoint.copy(pickedPoints[1]); + float maxValueAccurate = -Float.MAX_VALUE; float maxValue = -Float.MAX_VALUE; - float maxValueOld = -Float.MAX_VALUE; - Vector3f maxPtOld = new Vector3f(); + Vector3f maxPt = new Vector3f(); Vector3f p0 = new Vector3f(firstIntersectionPoint); Vector3f p1 = new Vector3f(secondIntersectionPoint); @@ -967,12 +967,12 @@ else if ( (m_kVolumeImageB != null) && (m_kVolumeImageB.GetImage() != null)) { // Only one imageA: value = m_kVolumeImageA.GetTransferedValue(sampleX, sampleY, sampleZ); } - if ( value > maxValueOld ) + if ( value > maxValue ) { - maxValueOld = value; - maxPtOld.copy(p0); + maxValue = value; + maxPt.copy(p0); } - outputOld.writeData(p0.X, p0.Y, p0.Z, value); + output.writeData(p0.X, p0.Y, p0.Z, value); // Old Mipav but more accurate click value = m_kVolumeImageA.GetImage().getFloatTriLinearBounds(p0.X, p0.Y, p0.Z); @@ -984,33 +984,33 @@ else if ( (m_kVolumeImageB != null) && (m_kVolumeImageB.GetImage() != null)) { } - if ( value > maxValue ) + if ( value > maxValueAccurate ) { - maxValue = value; - maxPt.copy(p0); + maxValueAccurate = value; + maxPtAccurate.copy(p0); } // Write data to CSV - output.writeData(p0.X, p0.Y, p0.Z, value); + outputAccurate.writeData(p0.X, p0.Y, p0.Z, value); } - outputOld.writeData(maxPtOld.X, maxPtOld.Y, maxPtOld.Z, maxValueOld); output.writeData(maxPt.X, maxPt.Y, maxPt.Z, maxValue); + outputAccurate.writeData(maxPtAccurate.X, maxPtAccurate.Y, maxPtAccurate.Z, maxValueAccurate); // Close the output stream + outputAccurate.close(); output.close(); - outputOld.close(); - if ( maxValue != -Float.MAX_VALUE ) + if ( maxValueAccurate != -Float.MAX_VALUE ) { boolean picked = false; // System.err.println( "mouse drag? " + m_bMouseDrag ); if ( !m_bMouseDrag ) { // select or create a new marker: - picked = select3DMarker( firstIntersectionPoint, secondIntersectionPoint, maxPt, rightMousePressed, altPressed ); + picked = select3DMarker( firstIntersectionPoint, secondIntersectionPoint, maxPtAccurate, rightMousePressed, altPressed ); } else if ( m_bMouseDrag ) { // modify currently selected, if exists - picked = modify3DMarker( firstIntersectionPoint, secondIntersectionPoint, maxPt ); + picked = modify3DMarker( firstIntersectionPoint, secondIntersectionPoint, maxPtAccurate ); } if ( !picked ) { @@ -1019,8 +1019,8 @@ else if ( m_bMouseDrag ) { int colorID = 0; VOI newTextVOI = new VOI((short) colorID, "annotation3d_" + id, VOI.ANNOTATION, -1.0f); VOIText textVOI = new VOIText( ); - textVOI.add( maxPt ); - textVOI.add( maxPt ); + textVOI.add( maxPtAccurate ); + textVOI.add( maxPtAccurate ); // Transformation world = m_kVolumeRayCast.getMesh().World; // Vector3f dir = world.InvertVector(m_spkCamera.GetRVector()); // dir.scale(5); diff --git a/test/org/janelia/mipav/test/valueOutput.java b/test/org/janelia/mipav/test/ValueOutput.java similarity index 92% rename from test/org/janelia/mipav/test/valueOutput.java rename to test/org/janelia/mipav/test/ValueOutput.java index 545a14bb43..aadf11a6b6 100644 --- a/test/org/janelia/mipav/test/valueOutput.java +++ b/test/org/janelia/mipav/test/ValueOutput.java @@ -4,10 +4,10 @@ import java.io.FileWriter; import java.io.IOException; -public class valueOutput { +public class ValueOutput { private FileWriter fileWriter; - public valueOutput(String fileName) { + public ValueOutput(String fileName) { try { this.fileWriter = new FileWriter(fileName); // Writing the header From e816823b3b093a7484d9f663ebafb172a02a1e7d Mon Sep 17 00:00:00 2001 From: chend Date: Wed, 1 May 2024 17:57:24 -0400 Subject: [PATCH 04/45] Switch between 2 modes(Accurate vs 3-color mode) by press key "M" or "m".toggleAccurateMode() and isAccurateMode() is created. --- .../VOI/VOILatticeManagerInterface.java | 60 ++++++--- .../WildMagic/VolumeTriPlanarRender.java | 127 +++++++++--------- 2 files changed, 104 insertions(+), 83 deletions(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java b/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java index bcca3ceb42..ee40c9b61a 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java @@ -1120,11 +1120,33 @@ public void keyPressed(KeyEvent e) { } + + private boolean accurateMode = true; + + public boolean isAccurateMode() { + return accurateMode; + } + + public void toggleAccurateMode() { + accurateMode = !accurateMode; + System.out.println("Toggle Accurate Mode: " + accurateMode); + } + + + public void keyReleased(KeyEvent e) { isShiftSelected = e.isShiftDown(); movingPickedPoint = false; - if(editingCrossSections) { - switch(e.getKeyChar()) { + + System.out.println(e.getKeyChar()); + + if (e.getKeyCode() == KeyEvent.VK_M) { + toggleAccurateMode(); + System.out.println("Mode changed. Accurate mode is now " + (isAccurateMode() ? "enabled" : "disabled")); + } + + if (editingCrossSections) { + switch (e.getKeyChar()) { case '+': latticeModel.decreaseCrossSectionSamples(); break; @@ -1155,7 +1177,7 @@ public void keyReleased(KeyEvent e) { case 'R': latticeModel.showLattice(false); latticeModel.resetCrossSections(); - if(editingCrossSections) { + if (editingCrossSections) { latticeModel.showLattice(true); } break; @@ -1168,46 +1190,40 @@ public void keyReleased(KeyEvent e) { } } } - - public static VOIBase findNearestAnnotation( final VOI annotations, final Vector3f startPt, final Vector3f endPt, final Vector3f pt ) { + public static VOIBase findNearestAnnotation(final VOI annotations, final Vector3f startPt, final Vector3f endPt, + final Vector3f pt) { int pickedAnnotation = -1; float minDist = Float.MAX_VALUE; - for ( int i = 0; i < annotations.getCurves().size(); i++ ) - { + for (int i = 0; i < annotations.getCurves().size(); i++) { final Vector3f annotationPt = annotations.getCurves().elementAt(i).elementAt(0); final float distance = pt.distance(annotationPt); - if ( distance < minDist ) - { + if (distance < minDist) { minDist = distance; - if ( minDist <= 12 ) - { + if (minDist <= 12) { pickedAnnotation = i; } } } // System.err.println("findNearestAnnotation " + minDist + " " + pickedAnnotation ); - if ( (pickedAnnotation == -1) && (startPt != null) && (endPt != null) ) - { + if ((pickedAnnotation == -1) && (startPt != null) && (endPt != null)) { minDist = Float.MAX_VALUE; // look at the vector under the mouse and see which lattice point is closest... final Segment3f mouseVector = new Segment3f(startPt, endPt); - for ( int i = 0; i < annotations.getCurves().size(); i++ ) - { - DistanceVector3Segment3 dist = new DistanceVector3Segment3(annotations.getCurves().elementAt(i).elementAt(0), mouseVector); + for (int i = 0; i < annotations.getCurves().size(); i++) { + DistanceVector3Segment3 dist = new DistanceVector3Segment3( + annotations.getCurves().elementAt(i).elementAt(0), mouseVector); float distance = dist.Get(); - // System.err.println( i + " " + distance ); - if ( distance < minDist ) - { + // System.err.println( i + " " + distance ); + if (distance < minDist) { minDist = distance; - if ( minDist <= 12 ) - { + if (minDist <= 12) { pickedAnnotation = i; } } } } - if ( pickedAnnotation != -1 ) { + if (pickedAnnotation != -1) { return annotations.getCurves().elementAt(pickedAnnotation); } return null; diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java index f3d6086f9a..e4857baed1 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java @@ -939,80 +939,85 @@ private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPtAccurate) continue; } } - float value = 0; - int sampleX = Math.round(p0.X); - int sampleY = Math.round(p0.Y); - int sampleZ = Math.round(p0.Z); - // loop over imageA, imageB, hyperstack, get value, apply color & opacity for 'value' - // take the maximum value: - if ( hyperstack != null ) { - for ( int h = 0; h < hyperstack.length; h++ ) { - if ( (hyperstack[h] != null) && (hyperstack[h].GetImage() != null) ) - { - if ( m_kVolumeRayCast.getImageOn(h) ) - { - value = Math.max(value, hyperstack[h].GetTransferedValue(sampleX, sampleY, sampleZ)); + + + // Two modes can be switched from the accurate mode to the 3-color mode(not working currently) by press key "M" or "m" + if (m_kVOIInterface.isAccurateMode()) { + // Old Mipav but more accurate click + float valueAccurate = 0; + valueAccurate = m_kVolumeImageA.GetImage().getFloatTriLinearBounds(p0.X, p0.Y, p0.Z); + if ((m_kVolumeImageB != null) && (m_kVolumeImageB.GetImage() != null)) { + float valueB = m_kVolumeImageB.GetImage().getFloatTriLinearBounds(p0.X, p0.Y, p0.Z); + float blend = getABBlend(); + valueAccurate = (blend * valueAccurate + (1 - blend) * valueB); + } + + if (valueAccurate > maxValueAccurate) { + maxValueAccurate = valueAccurate; + maxPtAccurate.copy(p0); + } + // Write data to CSV + outputAccurate.writeData(p0.X, p0.Y, p0.Z, valueAccurate); + + } else { + //this is not working, made for more than 3 colors. -Diyi Chen May 1, 2024 + float value = 0; + int sampleX = Math.round(p0.X); + int sampleY = Math.round(p0.Y); + int sampleZ = Math.round(p0.Z); + // loop over imageA, imageB, hyperstack, get value, apply color & opacity for + // 'value' + // take the maximum value: + if (hyperstack != null) { + for (int h = 0; h < hyperstack.length; h++) { + if ((hyperstack[h] != null) && (hyperstack[h].GetImage() != null)) { + if (m_kVolumeRayCast.getImageOn(h)) { + value = Math.max(value, + hyperstack[h].GetTransferedValue(sampleX, sampleY, sampleZ)); + } } } + } else if ((m_kVolumeImageB != null) && (m_kVolumeImageB.GetImage() != null)) { + float valueA = m_kVolumeImageA.GetTransferedValue(sampleX, sampleY, sampleZ); + float valueB = m_kVolumeImageB.GetTransferedValue(sampleX, sampleY, sampleZ); + float blend = getABBlend(); + value = (blend * valueA + (1 - blend) * valueB); + } else { + // Only one imageA: + value = m_kVolumeImageA.GetTransferedValue(sampleX, sampleY, sampleZ); } + if (value > maxValue) { + maxValue = value; + maxPt.copy(p0); + } + output.writeData(p0.X, p0.Y, p0.Z, value); } - else if ( (m_kVolumeImageB != null) && (m_kVolumeImageB.GetImage() != null)) { - float valueA = m_kVolumeImageA.GetTransferedValue(sampleX, sampleY, sampleZ); - float valueB = m_kVolumeImageB.GetTransferedValue(sampleX, sampleY, sampleZ); - float blend = getABBlend(); - value = (blend * valueA + (1 - blend) * valueB); - } - else - { - // Only one imageA: - value = m_kVolumeImageA.GetTransferedValue(sampleX, sampleY, sampleZ); - } - if ( value > maxValue ) - { - maxValue = value; - maxPt.copy(p0); - } - output.writeData(p0.X, p0.Y, p0.Z, value); - - // Old Mipav but more accurate click - value = m_kVolumeImageA.GetImage().getFloatTriLinearBounds(p0.X, p0.Y, p0.Z); - if ( (m_kVolumeImageB != null) && (m_kVolumeImageB.GetImage() != null)) - { - float valueB = m_kVolumeImageB.GetImage().getFloatTriLinearBounds(p0.X, p0.Y, p0.Z); - float blend = getABBlend(); - value = (blend * value + (1 - blend) * valueB); - } - - - if ( value > maxValueAccurate ) - { - maxValueAccurate = value; - maxPtAccurate.copy(p0); - } - // Write data to CSV - outputAccurate.writeData(p0.X, p0.Y, p0.Z, value); } output.writeData(maxPt.X, maxPt.Y, maxPt.Z, maxValue); outputAccurate.writeData(maxPtAccurate.X, maxPtAccurate.Y, maxPtAccurate.Z, maxValueAccurate); + + // Close the output stream + outputAccurate.close(); + output.close(); - // Close the output stream - outputAccurate.close(); - output.close(); - - if ( maxValueAccurate != -Float.MAX_VALUE ) - { + if (!m_kVOIInterface.isAccurateMode()) { + maxValueAccurate = maxValue; + maxPtAccurate.copy(maxPt); + } + + if (maxValueAccurate != -Float.MAX_VALUE) { boolean picked = false; // System.err.println( "mouse drag? " + m_bMouseDrag ); - if ( !m_bMouseDrag ) { + if (!m_bMouseDrag) { // select or create a new marker: - picked = select3DMarker( firstIntersectionPoint, secondIntersectionPoint, maxPtAccurate, rightMousePressed, altPressed ); - } - else if ( m_bMouseDrag ) { + picked = select3DMarker(firstIntersectionPoint, secondIntersectionPoint, maxPtAccurate, + rightMousePressed, altPressed); + } else if (m_bMouseDrag) { // modify currently selected, if exists - picked = modify3DMarker( firstIntersectionPoint, secondIntersectionPoint, maxPtAccurate ); + picked = modify3DMarker(firstIntersectionPoint, secondIntersectionPoint, maxPtAccurate); } - if ( !picked ) + if (!picked) { // add a new picked point: short id = (short) m_kVolumeImageA.GetImage().getVOIs().getUniqueID(); @@ -1052,7 +1057,7 @@ else if ( !doAutomaticLabels() ) } } } - } +} private boolean PickSlice3D(Vector3f kPos, Vector3f kDir, Vector3f maxPt) { From caf1a7d348c14e92b159f0e541b0954dd2039887 Mon Sep 17 00:00:00 2001 From: chend Date: Mon, 13 May 2024 09:43:52 -0400 Subject: [PATCH 05/45] An accurateModeButton added for switch modes between accurate clicking vs 3 color mode(inaccurate clicking) with its actionListener --- .../PlugInDialogVolumeRenderDualJanelia.java | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index c7e96f2ad1..1f3ff4927d 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -111,6 +111,7 @@ import javax.swing.JSplitPane; import javax.swing.JTabbedPane; import javax.swing.JTextField; +import javax.swing.JToggleButton; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; @@ -135,7 +136,7 @@ * processes. Provides framework for animating the annotations after untwisting. */ public class PlugInDialogVolumeRenderDualJanelia extends JFrame implements ActionListener, RendererListener, - PropertyChangeListener, ViewImageUpdateInterface, WindowListener, ChangeListener { + PropertyChangeListener, ViewImageUpdateInterface, WindowListener, ChangeListener, AccurateModeListener { private static final long serialVersionUID = -9056581285643263551L; @@ -215,6 +216,9 @@ public class PlugInDialogVolumeRenderDualJanelia extends JFrame implements Actio private JPanel opacityPanel; private JTabbedPane opacityTab; private JPanel clipPanel; + private JPanel accuratePanel; + //private JButton accurateModeButton; + private JToggleButton accurateModeButton; private PlugInDialogVolumeRenderDualJanelia parent; private JTextField rangeFusionText; @@ -1132,9 +1136,11 @@ public void enableNext(int mode) { lutPanel.removeAll(); opacityPanel.removeAll(); clipPanel.removeAll(); + accuratePanel.removeAll(); tabbedPane.addTab("LUT", null, lutPanel); tabbedPane.addTab("Opacity", null, opacityPanel); tabbedPane.addTab("Clip", null, clipPanel); + tabbedPane.addTab("AccurateMode", null, accuratePanel); tabbedPane.addChangeListener(this); startButton.setEnabled(true); @@ -1318,6 +1324,13 @@ public boolean updateImages(ModelLUT LUTa, ModelLUT LUTb, boolean flag, int inte // } return false; } + + + @Override + public void accurateModeChanged(boolean isAccurateMode) { + accurateModeButton.setSelected(isAccurateMode); + accurateModeButton.setText(isAccurateMode ? "Accurate Mode is now On" : "Accurate Mode is now Off"); + } @Override public void windowActivated(WindowEvent e) { @@ -1714,6 +1727,7 @@ private boolean openHyperStack() { leftImage.volumeImage = leftImage.hyperstack[0]; //new VolumeImage(false, leftImage.wormImage, "A", null, 0, false); leftImage.voiManager = new VOILatticeManagerInterface(null, leftImage.volumeImage.GetImage(), null, 0, true, null); + leftImage.voiManager.addAccurateModeListener(this); byte[] aucData = new byte[256 * 4 * images.length]; GraphicsImage cmImage = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, 256, images.length, aucData, new String("colormap" + leftImage.volumeImage.GetImage().getImageFileName())); @@ -2263,12 +2277,40 @@ private void init() { opacityTab = new JTabbedPane(); opacityTab.addChangeListener(this); opacityPanel.add(opacityTab, BorderLayout.CENTER); - clipPanel = new JPanel( new BorderLayout() ); + + //added a panel with button to be able to turn off accurate mode and switch to 3-color mode(not working currently) + accuratePanel = new JPanel(new BorderLayout()); + JPanel buttonPanel = new JPanel(); + //accurateModeButton = new JButton("Accurate Mode"); + accurateModeButton = new JToggleButton("Accurate Mode"); + accurateModeChanged(true); + accurateModeButton.setPreferredSize(new Dimension(200, 50)); + + + // Add an action response to the button + accurateModeButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + // activeImage.voiManager.toggleAccurateMode(); + + JToggleButton toggleButton = (JToggleButton) e.getSource(); + boolean isSelected = toggleButton.isSelected(); + activeImage.voiManager.toggleAccurateMode(); + } + + }); + + // Add the accurateModeButton to the buttonPanel, then add the buttonPanel to the accuratePanel + buttonPanel.add(accurateModeButton); + accuratePanel.add(buttonPanel, BorderLayout.CENTER); + + tabbedPane = new JTabbedPane(); tabbedPane.addTab("LUT", null, lutPanel); tabbedPane.addTab("Opacity", null, opacityPanel); tabbedPane.addTab("Clip", null, clipPanel); + tabbedPane.addTab("AccurateMode", null, accuratePanel); tabbedPane.setVisible(false); tabbedPane.addChangeListener(this); @@ -2279,6 +2321,7 @@ private void init() { imageChannels = new JPanel(); imageChannels.add(new JLabel("Select image channel:") ); + imageChannels.add(new JLabel("Select Mode:")); imageChannels.setVisible(false); leftPanel.add(imageChannels, BorderLayout.CENTER); leftPanel.add(tabbedPane, BorderLayout.SOUTH); From 6709dd2365587120aeee23eda30e20832de83595 Mon Sep 17 00:00:00 2001 From: chend Date: Mon, 13 May 2024 09:46:07 -0400 Subject: [PATCH 06/45] An accurateModeButton added for switch the mode between accurate mode vs 3 color mode (inaccurate currently) with its actionListener. --- .../worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 1f3ff4927d..404715c46c 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -2298,7 +2298,6 @@ public void actionPerformed(ActionEvent e) { boolean isSelected = toggleButton.isSelected(); activeImage.voiManager.toggleAccurateMode(); } - }); // Add the accurateModeButton to the buttonPanel, then add the buttonPanel to the accuratePanel From b5fc4a2f5eabb9d867dc2135daf0a478fee12a89 Mon Sep 17 00:00:00 2001 From: chend Date: Mon, 13 May 2024 09:47:15 -0400 Subject: [PATCH 07/45] An keyBoard "M" added for switch the mode between accurate mode vs 3 color mode (inaccurate currently). --- .../VOI/VOILatticeManagerInterface.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java b/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java index ee40c9b61a..58201fe4f2 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java @@ -23,6 +23,8 @@ import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.io.File; +import java.util.ArrayList; +import java.util.List; import java.util.Vector; import javax.swing.ButtonGroup; @@ -33,6 +35,8 @@ import javax.swing.JPanel; import javax.swing.JTextField; +import org.janelia.mipav.plugins.worm.untwisting.AccurateModeListener; + import WildMagic.LibFoundation.Distance.DistanceVector3Segment3; import WildMagic.LibFoundation.Mathematics.Segment3f; import WildMagic.LibFoundation.Mathematics.Vector3f; @@ -1122,6 +1126,8 @@ public void keyPressed(KeyEvent e) { private boolean accurateMode = true; + // TODO: might want to change the array into set + private List listeners = new ArrayList<>(); public boolean isAccurateMode() { return accurateMode; @@ -1129,10 +1135,15 @@ public boolean isAccurateMode() { public void toggleAccurateMode() { accurateMode = !accurateMode; - System.out.println("Toggle Accurate Mode: " + accurateMode); + for (AccurateModeListener listener : listeners) { + listener.accurateModeChanged(accurateMode); + + } + } + + public void addAccurateModeListener(AccurateModeListener listener) { + listeners.add(listener); } - - public void keyReleased(KeyEvent e) { isShiftSelected = e.isShiftDown(); @@ -1142,7 +1153,6 @@ public void keyReleased(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_M) { toggleAccurateMode(); - System.out.println("Mode changed. Accurate mode is now " + (isAccurateMode() ? "enabled" : "disabled")); } if (editingCrossSections) { From c014917b5bd013a9ef5d5f6b56f7e692d9844876 Mon Sep 17 00:00:00 2001 From: chend Date: Mon, 13 May 2024 10:49:48 -0400 Subject: [PATCH 08/45] An AccurateModeListener interface was made for responding to the accurateModeListener --- .../plugins/worm/untwisting/AccurateModeListener.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/org/janelia/mipav/plugins/worm/untwisting/AccurateModeListener.java diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/AccurateModeListener.java b/src/org/janelia/mipav/plugins/worm/untwisting/AccurateModeListener.java new file mode 100644 index 0000000000..2b59754ceb --- /dev/null +++ b/src/org/janelia/mipav/plugins/worm/untwisting/AccurateModeListener.java @@ -0,0 +1,7 @@ +package org.janelia.mipav.plugins.worm.untwisting; + + +public interface AccurateModeListener { + // Add this method for responding to the accurateModeListener + void accurateModeChanged(boolean isAccurateMode); +} \ No newline at end of file From 18d9831b8c03b9d3ea8042757ad208ea8003750a Mon Sep 17 00:00:00 2001 From: chend Date: Mon, 13 May 2024 13:22:31 -0400 Subject: [PATCH 09/45] Changed the tabbedPan name into "Selection" --- .../worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 404715c46c..7b45b43a02 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -2309,7 +2309,7 @@ public void actionPerformed(ActionEvent e) { tabbedPane.addTab("LUT", null, lutPanel); tabbedPane.addTab("Opacity", null, opacityPanel); tabbedPane.addTab("Clip", null, clipPanel); - tabbedPane.addTab("AccurateMode", null, accuratePanel); + tabbedPane.addTab("Selection", null, accuratePanel); tabbedPane.setVisible(false); tabbedPane.addChangeListener(this); From 39c46e3564cf3bc5e80e1ffbd9b797d52547351a Mon Sep 17 00:00:00 2001 From: Mark Kittisopikul Date: Mon, 13 May 2024 13:57:54 -0400 Subject: [PATCH 10/45] Restore VolumeImage.java --- .../WildMagic/Render/VolumeImage.java | 4813 ++++++++--------- 1 file changed, 2391 insertions(+), 2422 deletions(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/Render/VolumeImage.java b/src/gov/nih/mipav/view/renderer/WildMagic/Render/VolumeImage.java index 882bbc8512..704026790d 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/Render/VolumeImage.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/Render/VolumeImage.java @@ -1,2422 +1,2391 @@ -package gov.nih.mipav.view.renderer.WildMagic.Render; - - -import static java.lang.System.nanoTime; -import static java.lang.System.out; -import gov.nih.mipav.model.algorithms.filters.AlgorithmGradientMagnitudeSep; -import gov.nih.mipav.model.algorithms.filters.OpenCL.filters.OpenCLAlgorithmGradientMagnitude; -import gov.nih.mipav.model.algorithms.filters.OpenCL.filters.OpenCLAlgorithmVolumeNormals; -import gov.nih.mipav.model.file.*; -import gov.nih.mipav.model.structures.*; - -import gov.nih.mipav.view.*; -import gov.nih.mipav.view.dialogs.*; -import gov.nih.mipav.view.renderer.WildMagic.VolumeTriPlanarInterface; - -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.io.*; -import java.nio.Buffer; -import java.util.BitSet; -import java.util.Vector; - - -import org.jocl.CL; - -import WildMagic.LibFoundation.Mathematics.ColorRGB; -import WildMagic.LibFoundation.Mathematics.ColorRGBA; -import WildMagic.LibFoundation.Mathematics.Vector2f; -import WildMagic.LibGraphics.Rendering.*; - -/** * - * The VolumeImage class provides an interface between the MIPAV ModelImage and the 2D and 3D Textures used to render - * the ModelImage on the GPU. The VolumeImage creates the supporting Texture and GraphicImage objects that pass - * the ModelImage data to the GPU. It also creates Texture and GraphicsImage objects for the ModelImage Look-up Table (LUT) - * and the ModelImage opacity transfer function. Other textures that are used for advanced volume rendering, such as - * a normal map for surface rendering, and the gradient-magnitude and laplace images for the multi-histogram rendering are - * calculated and passed on-demand to the GPU when the user selects these options in the Volume-Renderer user-interface. - * - * The VolumeImage data structure handles all GPU content for rendering one ModelImage. All Textures and GraphicsImages - * are initialized and stored in the VolumeImage. When needed by the renderer they are loaded onto the GPU. Any images - * that are derived from the ModelImage: Normal map, Gradient Magnitude, Laplace, are either read from file or calculated - * and then written to file. The supporting files are stored in a directory on disk located next to the original ModelImage. - * The directory is named with the ModelImage name followed by "_RenderFiles". - * - * - */ -public class VolumeImage implements Serializable { - /** */ - private static final long serialVersionUID = -7254697711265907746L; - - /** Reference to ModelImage image */ - private ModelImage m_kImage; - private ModelImage m_kImageGM; - - /** GraphicsImage contains GM opacity transfer function data: */ - private GraphicsImage m_kOpacityMap_GM = null; - - /** - * Texture contains texture filter modes and GraphicsImage for opacity transfer function: - */ - private Texture m_kOpacityMapTarget_GM = null; - - /** Data storage for volume: */ - private GraphicsImage[] m_kVolume; - - /** Texture object for data: */ - private Texture m_kVolumeTarget; - - /** Data storage for normals: */ - private GraphicsImage[] m_kNormal; - /** Set to true if the Normal Map has been initialized. */ - private boolean m_bNormalsInit = false; - - /** Texture object for normal map: */ - private Texture m_kNormalMapTarget; - - /** Texture object for GPU computations: */ - private Texture m_kScratchTarget; - - /** Data storage for color map: */ - private GraphicsImage m_kColorMap; - - /** Texture object for color map: */ - private Texture m_kColorMapTarget; - - /** Data storage for volume gradient magnitude: */ - private GraphicsImage[] m_kVolumeGM; - /** Set to true if the Gradient Magnitude texture map has been initialized. */ - private boolean m_bGMInit = false; - - /** Texture object for volume gradient magnitude data: */ - private Texture m_kVolumeGMTarget; - - /** Data storage for surfaces: */ - private GraphicsImage m_kSurfaceImage; - - /** Texture object for surfaces: */ - private Texture m_kSurfaceTarget; - - /** ModelLUT */ - private ModelLUT m_kLUT = null; - - /** ModelRGB */ - private ModelRGB m_kRGBT = null; - - /** Image scale factors for display in 3D */ - private float m_fX = 1, m_fY = 1, m_fZ = 1, m_fMax = 1; - private int m_iMaxExtent = 1; - - /** Image name post-fix typically either 'A' or 'B' */ - private String m_kPostfix = null; - - /** Directory for calculated images */ - private String m_kDir = null; - - /** Histogram data for multi-histogram interface */ - private GraphicsImage[] m_kHisto = null; - /** Set to true when the multi-histogram histogram texture has been initialized. */ - private boolean m_bHistoInit = false; - - /** Texture object for data: */ - private Texture m_kHistoTarget; - - /** Texture coordinates for displaying histogram in 2D */ - private Vector2f[] m_akHistoTCoord = null; - - private float m_fDRRNormalize = 255.0f; - - /** Current position in time (4D data) */ - private int m_iTimeSlice = 0; - - /** Total number of time-slices (4D data) */ - private int m_iTimeSteps = 0; - - /** 3D sub-images (4D data) */ -// private ModelImage[] m_akImages; -// private ModelImage[] m_akImagesGM; - - private Vector2f[] m_akGradientMagMinMax; - - private TransferFunction opacityTransferFn; - - /* Default Constructor */ - public VolumeImage() {} - - /** - * Create a Volume image with the input ModelImage. The supporting images for advanced volume rendering, such as - * the normal map, gradient magnitude and laplace images are generated on-demand and stored in a directory for - * later use. The directory is created if it does not already exist, with the ModelImage name + "_RenderFiles" as - * the directory name. - * - * @param bClone, when true clone the input ModelImage, when false reference the ModelImage - * @param kImage input ModelImage - * @param kPostfix Postfix for images 'A' or 'B' - * @param kProgress progress bar - * @param iProgress progress bar increment - */ - public VolumeImage(boolean bClone, final ModelImage kImage, final String kPostfix, final ViewJProgressBar kProgress, final int iProgress) { - this( bClone, kImage, kPostfix, kProgress, iProgress, true ); - } - - public VolumeImage(boolean bClone, final ModelImage kImage, final String kPostfix, final ViewJProgressBar kProgress, final int iProgress, boolean initGradientMagnitude) { - m_kPostfix = new String(kPostfix); - // clone the input image, in the future this might be a reference. - if ( bClone ) - { - m_kImage = (ModelImage)kImage.clone(); - } - else - { - m_kImage = kImage; - } - // Initialize the Texture maps. - init(kProgress, iProgress, initGradientMagnitude); - } - - /** - * Copy the data from the input GraphicsImage and return a new ModelImage of that data. - * Any changes to the GraphicsImage that occur only on the GPU can first be written from - * the GPU back into the GraphicsImage CPU data storage. This enables calculations that - * are performed on the GPU to be written back into a ModelImage data structure. - * - * @param kImage Graphics Image to copy - * @param bSwap when true convert from RGBA (graphics format) to ARGB (ModelImage format) - * @return new ModelImage from Volume Texture on GPU. - */ - public static ModelImage CreateImageFromTexture(final GraphicsImage kImage, final boolean bSwap) { - final int iXBound = kImage.GetBound(0); - final int iYBound = kImage.GetBound(1); - final int iZBound = kImage.GetBound(2); - final int iSize = iXBound * iYBound * iZBound; - final int[] extents = new int[] {iXBound, iYBound, iZBound}; - - ModelImage kResult = null; - if (kImage.GetFormat() == GraphicsImage.FormatMode.IT_RGBA8888) { - byte[] aucData = kImage.GetData(); - if (bSwap) { - byte bVal = 0; - aucData = new byte[4 * iXBound * iYBound * iZBound]; - for (int i = 0; i < iSize; i += 4) { - if (kImage.GetData()[i + 1] > bVal) { - bVal = kImage.GetData()[i + 1]; - } - aucData[i] = kImage.GetData()[i + 3]; - aucData[i + 1] = kImage.GetData()[i + 1]; - aucData[i + 2] = kImage.GetData()[i + 2]; - aucData[i + 3] = kImage.GetData()[i]; - //System.err.println( kImage.GetData()[i + 3] + " " + kImage.GetData()[i + 1] + " " + kImage.GetData()[i + 2] ); - } - // System.err.println( bVal ); - } - try { - kResult = new ModelImage(ModelStorageBase.ARGB, extents, ""); - kResult.importData(0, aucData, true); - } catch (final IOException e) { - e.printStackTrace(); - } - } else { - final byte[] aiImageData = kImage.GetData(); - try { - kResult = new ModelImage(ModelStorageBase.UBYTE, extents, ""); - kResult.importData(0, aiImageData, true); - } catch (final IOException e) { - e.printStackTrace(); - } - } - return kResult; - } - - /** - * Initialize the textures for the color lookup table. - * - * @param kLUT the new LUT. - * @param kRGBT the new RGB table. - * @param kPostfix the string postfix to concatenate to the "ColorMap" image name. - * @return GraphicsImage, the new GraphicsImage storing the colormap lookup table. - */ - public static GraphicsImage InitColorMap( Texture kTexture, GraphicsImage kImage, final ModelStorageBase kLUT, final String kPostFix) { - byte[] aucData; - if ( kImage == null ) - { - aucData = new byte[256 * 4]; - } - else - { - aucData = kImage.GetData(); - } - if (kLUT instanceof ModelLUT ) { - // ModelImage is Color, initialize the ModelRGB - ModelLUT.exportIndexedLUTMin((ModelLUT)kLUT, aucData); - } - else if (kLUT instanceof ModelRGB ) { - // Initialize the ModelLUT - ModelLUT.exportIndexedLUTMin((ModelRGB)kLUT, aucData); - } - if ( kImage == null ) - { - // Return the new GraphicsImage containing the table data: - return new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, 256, aucData, new String("ColorMap" + kPostFix)); - } - if ( kTexture != null ) - { - kTexture.Reload(true); - } - return kImage; - } - - - private GraphicsImage initColorMap() { - final byte[] aucData = new byte[256 * 4]; - if (m_kRGBT != null) - { - // ModelImage is Color, initialize the ModelRGB - ModelLUT.exportIndexedLUTMin(m_kRGBT, aucData); - } else if ( m_kLUT != null ) - { - // Initialize the ModelLUT - ModelLUT.exportIndexedLUTMin(m_kLUT, aucData); - } - // Return the new GraphicsImage containing the table data: - return new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, 256, 1, aucData, new String("ColorMap" + m_kImage.getImageName() + m_kPostfix)); - } - - - /** - * When a ModelImage changes on the CPU, this function is used to update the ModelImage - * data on the CPU. - * - * @param kImage Modified ModelImage to copy into the GPU Texture and GraphicsImage - * @param iTimeSlice time value for 4D image, 0 otherwise - * @param kNewImage a new ModelImage (always 3D) that the data or data subset for 4D image can be copied into (when non-null). - * @param kVolumeImage GraphicsImage that will hold the ModelImage data - * @param kVolumeTexture Texture object containing the GraphicsImage - * @param kImageName new image name for the new ModelImage. - * @param bSwap when true swap the ARGB (ModelImage) color data representation to a RGBA (GPU) color representation. - * @return - */ - public static GraphicsImage UpdateData(final ModelImage kImage, final int iTimeSlice, final ModelImage kNewImage, - final GraphicsImage kVolumeImage, final Texture kVolumeTexture, final String kImageName, - final boolean bSwap, final boolean bRescale) { - GraphicsImage kReturn = kVolumeImage; - final int iXBound = kImage.getExtents()[0]; - final int iYBound = kImage.getExtents()[1]; - final int iZBound = kImage.getExtents()[2]; - - byte[] aucData = null; - int iSize = iXBound * iYBound * iZBound; - if (kImage.isColorImage()) { - iSize *= 4; - aucData = new byte[iSize]; - try { - kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); - if (bSwap) { - for (int i = 0; i < iSize; i += 4) { - final byte tmp = aucData[i]; - aucData[i] = aucData[i + 1]; - aucData[i + 1] = aucData[i + 2]; - aucData[i + 2] = aucData[i + 3]; - aucData[i + 3] = tmp; - } - } - } catch (final IOException e) { - e.printStackTrace(); - } - if (kReturn == null) { - kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData, - kImageName); - } else { - kReturn.SetData(aucData, iXBound, iYBound, iZBound); - } - } else { - aucData = new byte[iSize]; - try { - kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); - // Temporary make the texture an RGBA texture until JOGL2 fixes NPOT textures. - byte[] aucData2 = new byte[iSize*4]; - for (int i = 0; i < iSize; i++) { - aucData2[i * 4 + 0] = aucData[i]; - aucData2[i * 4 + 1] = aucData[i]; - aucData2[i * 4 + 2] = aucData[i]; - aucData2[i * 4 + 3] = 1; - } - - if (kReturn == null) { - kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData2, - kImageName); - } else { - kReturn.SetData(aucData2, iXBound, iYBound, iZBound); - } - } catch (final IOException e) { - e.printStackTrace(); - } - - } - if (kNewImage != null) { - try { - kNewImage.importData(0, aucData, true); - } catch (final IOException e) {} - } - if (kVolumeTexture != null) { - kVolumeTexture.Reload(true); - } - return kReturn; - } - - private GraphicsImage initVolumeData(final ModelImage kImage, final int iTimeSlice, - final Texture kVolumeTexture, final String kImageName, final boolean bSwap, final boolean bRescale) - { - GraphicsImage kReturn = null; - final int iXBound = kImage.getExtents()[0]; - final int iYBound = kImage.getExtents()[1]; - final int iZBound = kImage.getExtents()[2]; - - byte[] aucData = null; - int iSize = iXBound * iYBound * iZBound; - if (kImage.isColorImage()) { - iSize *= 4; - aucData = new byte[iSize]; - try { - kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); - if (bSwap) { - for (int i = 0; i < iSize; i += 4) { - final byte tmp = aucData[i]; - aucData[i] = aucData[i + 1]; - aucData[i + 1] = aucData[i + 2]; - aucData[i + 2] = aucData[i + 3]; - aucData[i + 3] = tmp; - } - } - } catch (final IOException e) { - e.printStackTrace(); - } - kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData, - kImageName); - } else { - aucData = new byte[iSize]; - try { - kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); - // Temporary make the texture an RGBA texture until JOGL2 fixes NPOT textures. - byte[] aucData2 = new byte[iSize*4]; - for (int i = 0; i < iSize; i++) { - aucData2[i * 4 + 0] = aucData[i]; - aucData2[i * 4 + 1] = aucData[i]; - aucData2[i * 4 + 2] = aucData[i]; - aucData2[i * 4 + 3] = 1; - } - - kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData2, - kImageName); - } catch (final IOException e) { - e.printStackTrace(); - } - - } - if (kVolumeTexture != null) { - kVolumeTexture.Reload(true); - } - return kReturn; - } - - private GraphicsImage resetVolumeData(final ModelImage kImage, final int iTimeSlice, GraphicsImage kGraphicsImage, - final Texture kVolumeTexture, final String kImageName, final boolean bSwap, final boolean bRescale) - { - final int iXBound = kImage.getExtents()[0]; - final int iYBound = kImage.getExtents()[1]; - final int iZBound = kImage.getExtents()[2]; - int iSize = iXBound * iYBound * iZBound; - - byte[] aucData = null; - if (kImage.isColorImage()) { - iSize *= 4; - aucData = kGraphicsImage.GetData(); - try { - kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); - if (bSwap) { - for (int i = 0; i < iSize; i += 4) { - final byte tmp = aucData[i]; - aucData[i] = aucData[i + 1]; - aucData[i + 1] = aucData[i + 2]; - aucData[i + 2] = aucData[i + 3]; - aucData[i + 3] = tmp; - } - } - } catch (final IOException e) { - e.printStackTrace(); - } - } - else { - aucData = new byte[iSize]; - try { - kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); - byte[] aucData2 = kGraphicsImage.GetData(); - for (int i = 0; i < iSize; i++) { - aucData2[i * 4 + 0] = aucData[i]; - aucData2[i * 4 + 1] = aucData[i]; - aucData2[i * 4 + 2] = aucData[i]; - aucData2[i * 4 + 3] = 1; - } - } catch (final IOException e) { - e.printStackTrace(); - } - - } - if (kVolumeTexture != null) { - kVolumeTexture.Reload(true); - } - return kGraphicsImage; - } - - private void addNormals(final ModelImage kImage, final int iTimeSlice) { - final int iXBound = kImage.getExtents()[0]; - final int iYBound = kImage.getExtents()[1]; - final int iZBound = kImage.getExtents()[2]; - - int iSize = iXBound * iYBound * iZBound; - byte[] aucData = new byte[iSize * 4]; - try { - kImage.exportDataUseMask(0, iSize * 4, true, aucData); - byte[] volumeData = m_kVolume[iTimeSlice].GetData(); - for (int i = 0; i < iSize; i++) { - volumeData[i*4 + 1] = aucData[i*4 + 1]; - volumeData[i*4 + 2] = aucData[i*4 + 2]; - volumeData[i*4 + 3] = aucData[i*4 + 3]; - } - } catch (final IOException e) { - e.printStackTrace(); - } - m_kVolumeTarget.Reload(true); - } - - - private GraphicsImage createGM_Laplace(final ModelImage kImageGM, final ModelImage kImageL, - final GraphicsImage kVolumeImage, - final int iTimeSlice, final boolean bSwap) { - - GraphicsImage kReturn = kVolumeImage; - final int iXBound = kImageGM.getExtents()[0]; - final int iYBound = kImageGM.getExtents()[1]; - final int iZBound = kImageGM.getExtents()[2]; - - int iSize = iXBound * iYBound * iZBound; - byte[] aucDataL = new byte[iSize]; - - if ( kImageL != null ) - { - try { - kImageL.exportDataUseMask(0, iSize, false, aucDataL); - } catch (final IOException e) { - e.printStackTrace(); - } - } - - byte[] aucDataGM = null; - if (kImageGM.isColorImage()) { - iSize *= 4; - aucDataGM = new byte[iSize]; - try { - kImageGM.exportDataUseMask(0, iSize, false, aucDataGM); - if (bSwap) { - for (int i = 0, j = 0; i < iSize; i += 4) { - aucDataGM[i] = aucDataGM[i + 1]; - aucDataGM[i + 1] = aucDataGM[i + 2]; - aucDataGM[i + 2] = aucDataGM[i + 3]; - if ( kImageL != null ) - { - aucDataGM[i + 3] = aucDataL[j++]; - } - } - } - kImageGM.importData( 0, aucDataGM, false ); - } catch (final IOException e) { - e.printStackTrace(); - } - if (kReturn == null) { - kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucDataGM, - kImageGM.getImageName()); - } else { - kReturn.SetData(aucDataGM, iXBound, iYBound, iZBound); - } - } - else - { - try { - aucDataGM = new byte[iSize]; - kImageGM.exportDataUseMask(0, iSize, false, aucDataGM); - byte[] aucData2 = new byte[iSize*4]; - for (int i = 0; i < iSize; i++) { - aucData2[i * 4 + 0] = aucDataGM[i]; - aucData2[i * 4 + 1] = aucDataGM[i]; - aucData2[i * 4 + 2] = aucDataGM[i]; - if ( kImageL != null ) - { - aucData2[i * 4 + 3] = aucDataL[i]; - } - } - - if (kReturn == null) { - kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData2, - kImageGM.getImageName()); - } else { - kReturn.SetData(aucData2, iXBound, iYBound, iZBound); - } - } catch (final IOException e) { - e.printStackTrace(); - } catch ( java.lang.OutOfMemoryError e ) { - return null; - } - aucDataGM = null; - } - return kReturn; - } - - - - /** - * Creates a new GraphicsImage for the input ModelSimpleImage. The ModelSimpleImage data is - * referenced by the new GraphicsImage and will be passed to the GPU as a texture. - * @param kImage input ModelSimpleImage. - * @param kImageName name for the GraphicsImage. - * @return a new GraphcisImage. - */ - public static GraphicsImage UpdateData(final ModelSimpleImage kImage, final String kImageName) { - final GraphicsImage.FormatMode eType = GraphicsImage.FormatMode.IT_L32F; - - if (kImage.nDims == 3) { - return new GraphicsImage(eType, kImage.extents[0], kImage.extents[1], kImage.extents[2], kImage.data, - kImageName); - } - return new GraphicsImage(eType, kImage.extents[0], kImage.extents[1], 1, kImage.data, kImageName); - } - - /** - * When the LUT changes, this function updates the LUT data on the GPU. - * - * @param kColorTexture the color-map Texture object. - * @param kColorMap the color-map GraphicsImage object (stores data). - * @param kLUT the updated or new LUT. - */ - public static void UpdateImages(final Texture kColorTexture, final GraphicsImage kColorMap, final ModelLUT kLUT) { - if (kLUT == null) { - return; - } - ModelLUT.exportIndexedLUTMin(kLUT, kColorMap.GetData()); - kColorTexture.Reload(true); - } - - /** - * When the ModelImage data is rendered as a solid surface, the Normal map is used in the rendering. - * The Normal map is calculated on the GPU by one of the GLSL shader programs. This function is called - * after the GPU calculation has finished and the GPU data has been copied into a new ModelImage on the CPU - * the new ModelImage then contains the Normal map information, which is written into a file and - * copied into the Normal map GraphicsImage used to render the original ModelImage. - * - * @param i current 3D sub-image for 4D data. If the data is 3D this value should be 0. - * @param kImage a new ModelImage containing the calculated Normals. - */ - public void CopyNormalFiles(final int i, final ModelImage kImage) { - final String kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), "_Normal_" - + i); - JDialogBase.updateFileInfo( m_kImage, kImage ); - ModelImage.saveImage( kImage, kImageName + ".xml", m_kDir, false ); - if ( m_kImage.isColorImage() ) - { - m_kNormal[i] = initVolumeData(kImage, 0, m_kNormalMapTarget, kImage.getImageName(), true, true); - } - else - { - addNormals(kImage, i); - } - } - - /** - * Read the current Volume Texture from the GPU and return a new ModelImage of that data. - * - * @return new ModelImage from Volume Texture on GPU. - */ - public static ModelImage CreateImageFromTexture(final GraphicsImage kImage) { - final int[] extents = new int[ kImage.GetDimension() ]; - for ( int i = 0; i < extents.length; i++ ) - { - extents[i] = kImage.GetBound(i); - } - - //GraphicsImage.Type eType = kImage.GetType(); - int type = ModelStorageBase.ARGB; - /* - switch ( eType ) - { - case IT_BYTE : type = ModelStorageBase.BYTE; break; - case IT_UBYTE : type = ModelStorageBase.UBYTE; break; - case IT_SHORT : type = ModelStorageBase.SHORT; break; - case IT_USHORT : type = ModelStorageBase.USHORT; break; - case IT_INT : type = ModelStorageBase.INTEGER; break; - case IT_UINT : type = ModelStorageBase.UINTEGER; break; - case IT_LONG : type = ModelStorageBase.LONG; break; - case IT_FLOAT : type = ModelStorageBase.FLOAT; break; - case IT_DOUBLE : type = ModelStorageBase.DOUBLE; break; - } - */ - final ModelImage kResult = new ModelImage(type, extents, kImage.GetName() ); - int size = kImage.GetQuantity(); - for ( int i = 0; i < size;i++ ) - { - kResult.set(i*4 + 1, kImage.GetData()[i*3 + 0]); - kResult.set(i*4 + 2, kImage.GetData()[i*3 + 1]); - kResult.set(i*4 + 3, kImage.GetData()[i*3 + 2]); - } - return kResult; - } - - /** - * Memory cleanup. - */ - public void dispose() { - if (m_kImage == null) { - return; - } - m_kImage.disposeLocal(); - m_kImage = null; - - for (final GraphicsImage element : m_kVolume) { - element.dispose(); - } - m_kVolume = null; - m_kVolumeTarget.dispose(); - m_kVolumeTarget = null; - - if ( m_kNormal != null ) - { - for (final GraphicsImage element : m_kNormal) { - element.dispose(); - } - m_kNormal = null; - } - if ( m_kNormalMapTarget != null ) - { - m_kNormalMapTarget.dispose(); - m_kNormalMapTarget = null; - } - - m_kScratchTarget.dispose(); - m_kScratchTarget = null; - - m_kColorMap.dispose(); - m_kColorMap = null; - m_kColorMapTarget.dispose(); - m_kColorMapTarget = null; - - if ( m_kImageGM != null ) - { - m_kImageGM.disposeLocal(); - m_kImageGM = null; - } - - for (final GraphicsImage element : m_kVolumeGM) { - if ( element != null ) - element.dispose(); - } - m_kVolumeGM = null; - m_kVolumeGMTarget.dispose(); - m_kVolumeGMTarget = null; - - - m_kOpacityMap_GM.dispose(); - m_kOpacityMap_GM = null; - m_kOpacityMapTarget_GM.dispose(); - m_kOpacityMapTarget_GM = null; - - if (m_kSurfaceImage != null) { - m_kSurfaceImage.dispose(); - m_kSurfaceImage = null; - m_kSurfaceTarget.dispose(); - m_kSurfaceTarget = null; - } - - m_kLUT = null; - m_kPostfix = null; - if ( m_kHisto != null ) - { - for (final GraphicsImage element : m_kHisto) { - if ( element != null ) - { - element.dispose(); - } - } - m_kHisto = null; - } - m_akHistoTCoord = null; - } - - - /** - * This function is called when the user selects the Surface or Composite Surface volume rendering option. - * If the normals have already been initialized the function returns. Otherwise the function checks if the - * normals are available in a file on disk, and if so if they match the parameters (size, units, resolutions) of - * the original ModelImage. If the files match they are used and the Normal map is read from file. Otherwise this - * function launches the GPU-based Normal calculation. That calculation when finished calls the CopyNormalFiles - * which writes the calculated normals to disk and updates the Normal map on the GPU for rendering. - */ - public void GenerateNormalFiles( VolumeTriPlanarInterface parentFrame ) { - if ( m_bNormalsInit ) - { - return; - } - if ( !m_bNormalsInit ) - { - int dimX = m_kImage.getExtents().length > 0 ? m_kImage.getExtents()[0] : 1; - int dimY = m_kImage.getExtents().length > 1 ? m_kImage.getExtents()[1] : 1; - int dimZ = m_kImage.getExtents().length > 2 ? m_kImage.getExtents()[2] : 1; - ModelImage outputImage = new ModelImage( ModelStorageBase.ARGB_FLOAT, new int[]{dimX,dimY,dimZ}, "temp" ); - for (int i = 0; i < m_iTimeSteps; i++) { - OpenCLAlgorithmVolumeNormals oclNormals = new OpenCLAlgorithmVolumeNormals( m_kImage, outputImage, CL.CL_DEVICE_TYPE_GPU ); - oclNormals.setTime(i); - oclNormals.run(); - if ( m_kImage.isColorImage() ) - { - m_kNormal[i] = initVolumeData(outputImage, 0, m_kNormalMapTarget, outputImage.getImageName(), true, true); - } - else - { - addNormals(outputImage, i); - } - } - m_bNormalsInit = true; - - if ( m_kNormal != null) - { - m_kNormalMapTarget.SetImage(m_kNormal[m_iTimeSlice]); - m_kNormalMapTarget.Reload(true); - } - outputImage.disposeLocal(); - } - } - - /** - * Return the Color Map Texture. - * @return Volume color map Texture. - */ - public Texture GetColorMapTarget() { - return m_kColorMapTarget; - } - - /** - * Return the normalization factor for DDR rendering mode. - * @return normalization factor for DDR rendering mode. - */ - public float getDRRNorm() { - return m_fDRRNormalize; - } - - /** - * Return the Gradient Magnitude Texture. - * @return Gradient Magnitude Texture. - */ - public Texture GetGradientMapTarget() { - return m_kVolumeGMTarget; - } - - /** - * Returns true if the multi-histogram histogram texture has been initialized, false otherwise. - * @return true if the multi-histogram histogram texture has been initialized, false otherwise. - */ - public boolean isHistoInit() - { - return m_bHistoInit; - } - - /** - * Returns the multi-histogram histogram Texture. - * @return the multi-histogram histogram Texture. - */ - public Texture GetHistoTarget() { - return m_kHistoTarget; - } - - -// private ModelImage[] m_akHistogram; -// public ModelImage GetHistogram() { -// -// if ( !m_bHistoInit ) -// { -// SetGradientMagnitude(null, true, m_kPostfix); -// } -// if ( m_akHistogram == null ) -// { -// m_akHistogram = new ModelImage[m_akImages.length]; -// } -// if ( m_akHistogram[m_iTimeSlice] == null ) -// { -// m_akHistogram[m_iTimeSlice] = new ModelImage(ModelStorageBase.INTEGER, new int[]{256,256}, "JointHisto" + m_iTimeSlice); -// try { -// m_akHistogram[m_iTimeSlice].importData(m_kHisto[m_iTimeSlice].GetData()); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } -// return m_akHistogram[m_iTimeSlice]; -// } - - /** - * Return the texture coordinates for the multi-histogram histogram texture. - * @return the texture coordinates for the multi-histogram histogram texture. - */ - public Vector2f[] GetHistoTCoords() { - return m_akHistoTCoord; - } - - public ModelImage GetGradientMagnitudeImage() - { - return m_kImageGM; - } - - public Vector2f GetGradientMagnitudeMinMax() - { - return m_akGradientMagMinMax[m_iTimeSlice]; - } - - public float GetGradientMagnitudeMin() - { - return m_akGradientMagMinMax[m_iTimeSlice].X; - } - - public float GetGradientMagnitudeMax() - { - return m_akGradientMagMinMax[m_iTimeSlice].Y; - } - - /** - * Return the ModelImage volume data. - * @return ModelImage volume data. - */ - public ModelImage GetImage() { - return m_kImage; - } - - /** - * Return the ModelImage LUT. - * @return Volume LUT. - */ - public ModelLUT GetLUT() { - return m_kLUT; - } - - /** - * Return the Normal map Texture. - * @return Normal map Texture. - */ - public Texture GetNormalMapTarget() { - return m_kNormalMapTarget; - } - - public Texture GetScratchTarget() { - return m_kScratchTarget; - } - - /** - * Return the gradient magnitude opacity transfer function Texture. - * @return gradient magnitude opacity transfer function Texture. - */ - public Texture GetOpacityMapGMTarget() { - return m_kOpacityMapTarget_GM; - } - - /** - * Return the postfix for this VolumeImage. - * @return postfix for this VolumeImage. - */ - public String GetPostfix() { - return m_kPostfix; - } - - /** - * Return the Volume RGBT. - * @return Volume RGBT. - */ - public ModelStorageBase getLUT() { - return (m_kImage != null ) ? m_kImage.isColorImage() ? m_kRGBT : m_kLUT : null; - } - - /** - * Return the Volume RGBT. - * @return Volume RGBT. - */ - public ModelRGB GetRGB() { - return m_kRGBT; - } - - - public float GetTransferedValue( int x, int y, int z ) - { - int dimX = m_kImage.getExtents().length > 0 ? m_kImage.getExtents()[0] : 1; - int dimY = m_kImage.getExtents().length > 1 ? m_kImage.getExtents()[1] : 1; - int dimZ = m_kImage.getExtents().length > 2 ? m_kImage.getExtents()[2] : 1; - if ( x < 0 || x >= dimX || y < 0 || y >= dimY || z < 0 || z >= dimZ ) return -1; - - if ( m_kImage.isColorImage() ) { - float r = m_kRGBT.getROn() ? TransferValue(m_kImage.getFloat(x, y, z, 1)) : -1; - float g = m_kRGBT.getGOn() ? TransferValue(m_kImage.getFloat(x, y, z, 2)) : -1; - float b = m_kRGBT.getBOn() ? TransferValue(m_kImage.getFloat(x, y, z, 3)) : -1; - return Math.max( r, Math.max(g, b)); - } - float value = m_kImage.getFloat(x, y, z); - return TransferValue(value); - } - - - public ColorRGBA GetTransferedValueOld( float x, float y, float z ) - { - float value = m_kImage.getFloatTriLinearBounds(x, y, z); - - float min = (float) m_kImage.getMin(); - float max = (float) m_kImage.getMax(); - float diff = max - min; - byte index = 0; - if ( (diff > 1) && (diff <= 255) ) - { - index = (byte)(((value - min)/diff) * diff); - } - else - { - index = (byte)(((value - min)/diff) * 255); - } - if ( (index >= 0) && (index < 255) && (m_kColorMap != null) && (m_kColorMap.GetData() != null) ) - { - byte r = m_kColorMap.GetData()[index * 4 + 0]; - byte g = m_kColorMap.GetData()[index * 4 + 1]; - byte b = m_kColorMap.GetData()[index * 4 + 2]; - byte a = m_kColorMap.GetData()[index * 4 + 3]; - return new ColorRGBA(r, g, b, a); - } - return new ColorRGBA(0,0,0,0); - } - - - private float TransferValue(float value) { - float min = (float) m_kImage.getMin(); - float max = (float) m_kImage.getMax(); - float diff = max - min; - byte index = 0; - if ( (diff > 1) && (diff <= 255) ) - { - index = (byte)(((value - min)/diff) * diff); - } - else - { - index = (byte)(((value - min)/diff) * 255); - } - if ( (index >= 0) && (index < 255) && (m_kColorMap != null) && (m_kColorMap.GetData() != null) ) - { - byte r = m_kColorMap.GetData()[index * 4 + 0]; - byte g = m_kColorMap.GetData()[index * 4 + 1]; - byte b = m_kColorMap.GetData()[index * 4 + 2]; - byte a = m_kColorMap.GetData()[index * 4 + 3]; - return Math.max(r*a, Math.max(g*a, b*a)); - } - return -1; - } - - - - /** - * The ModelImage Volume max-scale factor. - * @return Volume max-scale factor. - */ - public float GetScaleMax() { - return m_fMax; - } - - public int GetMaxExtent() - { - return m_iMaxExtent; - } - - /** - * The ModelImage Volume x-scale factor. - * @return Volume x-scale factor. - */ - public float GetScaleX() { - return m_fX; - } - - /** - * The ModelImage Volume y-scale factor. - * @return Volume y-scale factor. - */ - public float GetScaleY() { - return m_fY; - } - - /** - * The ModelImage Volume z-scale factor. - * @return Volume z-scale factor. - */ - public float GetScaleZ() { - return m_fZ; - } - - /** - * Return the surface mask Texture. - * @return surface mask Texture. - */ - public Texture GetSurfaceTarget() { - return m_kSurfaceTarget; - } - - - - /** A vector of BitSet masks, one for each surface loaded into the viewer. */ - protected Vector surfaceMask; - /** A vector of the mask names, so they can be accessed by name: */ - protected Vector surfaceNames; - /** A vector of BitSet masks, one for each surface loaded into the viewer. */ - protected Vector surfaceColor; - /** - * Add a new surface mask. - * @param name surface name. - * @param mask surface mask volume. - */ - public void setSurfaceMask(String name, ColorRGB color, BitSet mask) - { - if ( surfaceMask == null ) - { - surfaceMask = new Vector(); - surfaceNames = new Vector(); - surfaceColor = new Vector(); - } - surfaceMask.add(mask); - surfaceNames.add(name); - surfaceColor.add(color); - updateMask(); - } - - private void updateMask() - { - boolean bUpdate = false; - final int iXBound = m_kImage.getExtents()[0]; - final int iYBound = m_kImage.getExtents()[1]; - final int iZBound = m_kImage.getExtents()[2]; - int length = iXBound * iYBound * iZBound; - for ( int i = 0; i < length; i++ ) - { - boolean color = false; - for ( int surface = 0; surface < surfaceMask.size(); surface++ ) - { - if ( surfaceMask.elementAt(surface).get(i) ) - { - m_kSurfaceImage.GetData()[i * 4 + 0] = (byte) (surfaceColor.elementAt(surface).R * 255); - m_kSurfaceImage.GetData()[i * 4 + 1] = (byte) (surfaceColor.elementAt(surface).G * 255); - m_kSurfaceImage.GetData()[i * 4 + 2] = (byte) (surfaceColor.elementAt(surface).B * 255); - m_kSurfaceImage.GetData()[i * 4 + 3] = (byte) (255); - bUpdate = true; - color = true; - } - } - if ( !color ) - { - m_kSurfaceImage.GetData()[i * 4 + 0] = (byte) (0); - m_kSurfaceImage.GetData()[i * 4 + 1] = (byte) (0); - m_kSurfaceImage.GetData()[i * 4 + 2] = (byte) (0); - m_kSurfaceImage.GetData()[i * 4 + 3] = (byte) (0); - } - } - if ( bUpdate ) - { - m_kSurfaceTarget.Reload(true); - } - } - - /** - * Delete the surface mask, using the name of the mask as reference. - * @param name the surface name. - */ - public void removeSurfaceMask(String name) - { - boolean bUpdate = false; - if ( surfaceMask != null && surfaceNames != null) - { - if ( surfaceNames.contains(name) ) - { - surfaceMask.remove( surfaceNames.indexOf(name) ); - surfaceColor.remove( surfaceNames.indexOf(name) ); - surfaceNames.remove(name); - bUpdate = true; - } - } - if ( bUpdate ) - { - updateMask(); - m_kSurfaceTarget.Reload(true); - } - } - - /** - * Delete the surface mask, using the name of the mask as reference. - * @param name the surface name. - */ - public void setSurfaceMaskColor(String name, ColorRGB color) - { - boolean bUpdate = false; - if ( surfaceMask != null && surfaceNames != null) - { - if ( surfaceNames.contains(name) ) - { - surfaceColor.elementAt( surfaceNames.indexOf(name) ).Copy(color); - bUpdate = true; - } - } - if ( bUpdate ) - { - updateMask(); - } - } - - - /** - * Returns the current rendered time-slice for 4D images. Otherwise returns 0. - * @return the current rendered time-slice for 4D images. Otherwise returns 0. - */ - public int GetTimeSlice() { - return m_iTimeSlice; - } - - /** - * Return the Texture containing the volume data. - * @return Texture containing the volume data. - */ - public Texture GetVolumeTarget() { - return m_kVolumeTarget; - } - - /** - * Return the Buffer containing the volume data, which is stored in the Texture GrapicsImage. - * @return Buffer containing the volume data. - */ - public Buffer GetVolumeTargetBuffer() { - return m_kVolumeTarget.GetImage().GetDataBuffer(); - } - - /** - * Initialize the GraphicsImage for the opacity lookup table. - * - * @param kImage the ModelImage the opacity transfer function applies to. - * @param kPostfix the string postfix to concatenate to the "OpacityMap" image name. - * @return GraphicsImage, the new GraphicsImage storing opacity lookup table. - */ - public GraphicsImage InitOpacityMap(final ModelImage kImage, final String kPostFix) { - final int iLutHeight = 256; - final float[] afData = new float[iLutHeight]; - final float fRange = (float) (kImage.getMax() - kImage.getMin()); - final float fStep = fRange / iLutHeight; - float fDataValue = (float) kImage.getMin(); - for (int i = 0; i < iLutHeight; i++) { - afData[i] = (float) (iLutHeight * (kImage.getMax() - fDataValue) / fRange); - fDataValue += fStep; - } - - return new GraphicsImage(GraphicsImage.FormatMode.IT_L8, iLutHeight, afData, - new String("OpacityMap" + kPostFix)); - } - - /** - * Return true if the Volume image is a color image. - * - * @return true if the Volume image is a color image. - */ - public boolean IsColorImage() { - return m_kImage.isColorImage(); - } - - /** - * Release the Textures containing the volume data. Once Textures are released, they will be re-loaded onto the GPU - * during the next frame. - */ - public void ReleaseVolume() { - m_kVolumeTarget.Reload(true); - } - - - - /** - * Called when the user selects the Gradient Magnitude option or the Multi-Histogram option - * in the Volume Renderer. - * @param kGradientMagnitude pre-computed GradientMagnitude image or null - * @param bComputeLaplace when true the Laplace image and multi-histogram histogram Textures are computed. - * @param kPostfix GraphicsImage postfix string. - */ - public void SetGradientMagnitude(ModelImage kGradientMagnitude, boolean bComputeLaplace, String kPostfix ) - { - int start = 0; - int end = m_kImage.getNDims() > 3 ? m_iTimeSteps : 1; - if ( !m_bGMInit ) - { - try { - // System.err.println( "SetGradientMagnitude " + 0 ); - m_kImageGM = getGradientMagnitude( m_kImage, 0 ); - if ( m_kImageGM != null ) - { - m_kVolumeGM[0] = createGM_Laplace(m_kImageGM, null, m_kVolumeGM[0], 0, true); - if ( m_kVolumeGM[0] != null ) - { - m_akGradientMagMinMax[0] = new Vector2f( (float)m_kImageGM.getMin(), (float)m_kImageGM.getMax() ); - m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); - m_kVolumeGMTarget.Reload(true); - m_bGMInit = true; - } - } - for (int i = 1; i < m_iTimeSteps; i++) - { - // System.err.println( "SetGradientMagnitude " + i ); - ModelImage gmImage = getGradientMagnitude( m_kImage, i ); - if ( gmImage != null ) - { - m_kVolumeGM[i] = createGM_Laplace(gmImage, null, m_kVolumeGM[i], i, true); - if ( m_kVolumeGM[i] != null ) - { - m_akGradientMagMinMax[i] = new Vector2f( (float)gmImage.getMin(), (float)gmImage.getMax() ); - gmImage.disposeLocal(); - end = i + 1; - } - } - } - } catch ( java.lang.OutOfMemoryError e ) {} - } - - if ( m_bGMInit && bComputeLaplace && (m_kImageGM != null)) - { - GenerateHistogram(m_kVolume, m_kVolumeGM, kPostfix, start, end ); - } - } - - /** - * Sets the ModelRGB for the iImage. - * - * @param kRGBT new ModelRGB - */ - public void SetRGBT(final ModelRGB kRGBT) { - if (kRGBT == null) { - return; - } - ModelLUT.exportIndexedLUTMin(kRGBT, m_kColorMap.GetData()); - m_kColorMapTarget.Reload(true); - m_kRGBT = kRGBT; - } - - /** - * Sets the time slices for 4D data. - * @param iSlice new time slice value. - */ - public void SetTimeSlice(final int iSlice) { - if (m_iTimeSlice != iSlice) { - m_iTimeSlice = iSlice; - update4D(); - } - } - - /** - * Updates the current time slice. - * @param bForward when true the time advances on step forward or wraps to the beginning. - * When false the time moves backward. - */ - public void update4D(final boolean bForward) { - if (m_iTimeSteps == 1) { - return; - } - if (bForward) { - m_iTimeSlice++; - } else { - m_iTimeSlice--; - } - if (m_iTimeSlice >= m_iTimeSteps) { - m_iTimeSlice = 0; - } - if (m_iTimeSlice < 0) { - m_iTimeSlice = m_iTimeSteps - 1; - } - - update4D(); - } - - /** - * Update the image data. - * - * @param kImage the modified ModelImage - * @param bCopytoCPU when true the data is copied from the GPU GraphicsImage into the ModelImage - */ - public void UpdateData(final ModelImage kImage, boolean reload) { - m_kImage = kImage; - if ( m_kVolume == null ) { - m_kPostfix = ""; - init(null, 0, false); - return; - } - initLUT(); - if ( reload ) - { - if ( m_kVolume[m_iTimeSlice] != null ) - { - m_kVolume[m_iTimeSlice].dispose(); - } - m_kVolumeTarget.Remove(); - m_kVolume[m_iTimeSlice] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); - m_kVolumeTarget.SetImage(m_kVolume[m_iTimeSlice]); - } - else - { - m_kVolume[m_iTimeSlice] = resetVolumeData(m_kImage, m_iTimeSlice, m_kVolume[m_iTimeSlice], m_kVolumeTarget, m_kImage - .getImageName(), true, false); - } - InitScale(); - } - - - /** - * Changes the underlying image data and LUT. If the new image data is a different size than - * then previous one, recreate the volume image on the GPU, otherwise just overwrite it with - * the new data. - * @param kImage - * @param kLUT - * @param reload - */ - public void UpdateData(final ModelImage kImage, ModelLUT kLUT, boolean reload) { - if ( kLUT == null && !kImage.isColorImage()) - { - UpdateData(kImage, reload); - return; - } - m_kImage = kImage; - m_kLUT = kLUT; - if ( reload ) - { - if ( m_kVolume[m_iTimeSlice] != null ) - { - m_kVolume[m_iTimeSlice].dispose(); - } - m_kVolumeTarget.Remove(); - m_kVolume[m_iTimeSlice] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); - m_kVolumeTarget.SetImage(m_kVolume[m_iTimeSlice]); - } - else - { - m_kVolume[m_iTimeSlice] = resetVolumeData(m_kImage, m_iTimeSlice, m_kVolume[m_iTimeSlice], m_kVolumeTarget, m_kImage - .getImageName(), true, false); - } - InitScale(); - } - - /** - * Update the LUT for the ModelImage. - * - * @param kLUT new LUT for ModelImage. - */ - public void UpdateImages(final ModelLUT kLUT) { - if (kLUT != null) { - VolumeImage.UpdateImages(m_kColorMapTarget, m_kColorMap, kLUT); - m_kLUT = kLUT; - } - } - - /** - * Update the LUT for the ModelImage. - * - * @param kLUT new LUT for ModelImage. - */ - public void UpdateImages(final ModelStorageBase kLUT) { - if ( (kLUT != null) && (kLUT instanceof ModelLUT)) { - VolumeImage.UpdateImages(m_kColorMapTarget, m_kColorMap, (ModelLUT)kLUT); - m_kLUT = (ModelLUT)kLUT; -// System.err.println("UpdateImages " + m_kColorMapTarget.GetName() + " " + kLUT. -// System.err.println(" " + m_kColorMapTarget.GetID() ); - - } - if ( (kLUT != null) && (kLUT instanceof ModelRGB)) { - ModelLUT.exportIndexedLUTMin((ModelRGB)kLUT, m_kColorMap.GetData()); - m_kColorMapTarget.Reload(true); - m_kRGBT = (ModelRGB)kLUT; - } - } - - /** - * Update the transfer function for the image iImage. - * - * @param kTransfer the new opacity transfer function - * @param iImage the image to modify (0 = volume image, 2 = gradient mag) - * @param kImage GradientMagitude image. - * @return boolean true when updated, false otherwise. - */ - public boolean UpdateImages(final TransferFunction kTransfer, final int iImage, final ModelImage kImage) { - if (iImage == 0) { - return UpdateImages2(m_kImage, m_kColorMapTarget, m_kColorMap, kTransfer); - } else if ( (iImage == 2) && (kImage != null) && (m_kOpacityMapTarget_GM != null) && (m_kOpacityMap_GM != null)) { - return UpdateImages(kImage, m_kOpacityMapTarget_GM, m_kOpacityMap_GM, kTransfer); - } - return false; - } - - /** - * In order to map line integrals of image intensity to RGB colors where each color channel is 8 bits, it is - * necessary to make sure that the integrals are in [0,255]. Producing a theoretical maximum value of a line - * integral is not tractable in an application. This method constructs an approximate maximum by integrating along - * each line of voxels in the image with line directions parallel to the coordinate axes. The 'processRay' call - * adjusts the line integrals using the estimate, but still clamps the integrals to 255 since the estimate might not - * be the true maximum. - * - * @return float Integral normalization factor. - */ - protected float computeIntegralNormalizationFactor() { - final int iXBound = m_kImage.getExtents()[0]; - final int iYBound = m_kImage.getExtents()[1]; - final int iZBound = m_kImage.getExtents()[2]; - - byte[] aucData = null; - int iSize = iXBound * iYBound * iZBound; - if (m_kImage.isColorImage()) { - iSize *= 4; - } - - aucData = new byte[iSize]; - - try { - m_kImage.exportDataUseMask(0, iSize, false, aucData); - } catch (final IOException e) { - e.printStackTrace(); - } - - // compute image normalization factor - int iX, iY, iZ, iBase, iSteps; - float fMaxIntegral = 0.0f; - float fTStep, fIntegral; - - // fix y and z, integrate over x - for (iY = 0; iY < iYBound; iY++) { - - for (iZ = 0; iZ < iZBound; iZ++) { - iBase = iXBound * (iY + (iYBound * iZ)); - iSteps = iXBound - 1; - fIntegral = 0.5f * ( (aucData[iBase] & 0x0ff) + (aucData[iBase + iSteps] & 0x0ff)); - fTStep = 1.0f / iSteps; - - for (iX = 1; iX < iSteps; iX++) { - fIntegral += (aucData[iBase + iX] & 0x0ff); - } - - fIntegral *= fTStep; - - if (fIntegral > fMaxIntegral) { - fMaxIntegral = fIntegral; - } - } - } - final int iXYProduct = iXBound * iYBound; - // fix x and z, integrate over y - for (iX = 0; iX < iXBound; iX++) { - - for (iZ = 0; iZ < iZBound; iZ++) { - iBase = iX + (iXYProduct * iZ); - iSteps = iYBound - 1; - fIntegral = 0.5f * ( (aucData[iBase] & 0x0ff) + (aucData[iBase + (iXBound * iSteps)] & 0x0ff)); - fTStep = 1.0f / iSteps; - - for (iY = 1; iY < iSteps; iY++) { - fIntegral += (aucData[iBase + (iXBound * iY)] & 0x0ff); - } - - fIntegral *= fTStep; - - if (fIntegral > fMaxIntegral) { - fMaxIntegral = fIntegral; - } - } - } - - // fix x and y, integrate over z - for (iX = 0; iX < iXBound; iX++) { - - for (iY = 0; iY < iYBound; iY++) { - iBase = iX + (iXBound * iY); - iSteps = iZBound - 1; - fIntegral = 0.5f * ( (aucData[iBase] & 0x0ff) + (aucData[iBase + (iXYProduct * iSteps)] & 0x0ff)); - fTStep = 1.0f / iSteps; - - for (iZ = 1; iZ < iSteps; iZ++) { - fIntegral += (aucData[iBase + (iXYProduct * iZ)] & 0x0ff); - } - - fIntegral *= fTStep; - - if (fIntegral > fMaxIntegral) { - fMaxIntegral = fIntegral; - } - } - } - aucData = null; - return (fMaxIntegral > 0.0f) ? (1.0f / fMaxIntegral) : 0.00f; - } - - /** - * Checks that the two input images match extents, units of measure and resolutions. The images - * may had different sizes (3D or 4D) the first 3-dimensions must match. - * @param kImage1 - * @param kImage2 - * @return true if the images match extends, units and resolutions. - */ - public static boolean checkImage(ModelImage kImage1, ModelImage kImage2 ) - { - for ( int i = 0; i < Math.min( kImage1.getExtents().length, kImage2.getExtents().length ); i++ ) - { - if ( kImage1.getExtents()[i] != kImage2.getExtents()[i] ) - { - return false; - } - if ( kImage1.getUnitsOfMeasure()[i] != kImage2.getUnitsOfMeasure()[i] ) - { - return false; - } - if ( kImage1.getResolutions(0)[i] != kImage2.getResolutions(0)[i] ) - { - return false; - } - } - return true; - } - - /** - * Generate 2D histogram from the input image and the gradient-magnitude - * - * @param kImage input GraphicsImage containing the ModelImage data - * @param kImageGM input GraphcisImage containing the Gradient Magnitude data. - * @param kPostFix post-fix for the image name. - */ - private void GenerateHistogram(final GraphicsImage[] kImage, final GraphicsImage[] kImageGM, final String kPostFix, - int start, int end ) - { - int iTMinX = 255, iTMaxX = 0; - int iTMinY = 255, iTMaxY = 0; - float max = Float.MIN_VALUE; - float min = Float.MAX_VALUE; - m_kHisto = new GraphicsImage[m_iTimeSteps]; - for (int t = start; t < end; t++) { - float[] afCount = new float[256 * 256]; - for (int i = 0; i < 256 * 256; i++) { - afCount[i] = 0; - } - - int a1; - int a2; - final byte[] abHistoData = kImageGM[t].GetData(); - final byte[] abData = kImage[t].GetData(); - if (m_kImage.isColorImage()) { - int iHisto = 0; - for (int i = 0; i < abData.length; i += 4) { - int iR = (abData[i]); - int iG = (abData[i + 1]); - int iB = (abData[i + 2]); - //a1 = (iR * 0.299 + iG * 0.587 + iB * 0.114); - a1 = (iR + iG + iB)/3; - a1 = (a1 & 0x00ff); - - iR = (abHistoData[i]); - iG = (abHistoData[i + 1]); - iB = (abHistoData[i + 2]); - //a2 = (short) (iR * 0.299 + iG * 0.587 + iB * 0.114); - a2 = (iR + iG + iB)/3; - a2 = (a2 & 0x00ff); - afCount[a1 + a2 * 256] += 1; - iHisto++; - } - } - else { - int iHisto = 0; - for (int i = 0; i < abData.length; i += 4) { - a1 = abData[i]; - a1 = (a1 & 0x00ff); - a2 = (abHistoData[iHisto]); - a2 = (a2 & 0x00ff); - afCount[a1 + a2 * 256] += 1; - iHisto += 4; - } - } - max = Float.MIN_VALUE; - min = Float.MAX_VALUE; - for (int i = 0; i < 256 * 256; ++i) { - afCount[i] = (float) Math.log(afCount[i]+1); - max = Math.max(afCount[i], max); - min = Math.min(afCount[i], min); - } - //System.err.println( min + " " + max ); - final byte[] abHisto = new byte[256 * 256]; - //int maxB = Integer.MIN_VALUE; - //int minB = Integer.MAX_VALUE; - for (int i = 0; i < 256 * 256; ++i) { - abHisto[i] = new Float((afCount[i] / max) * 255f).byteValue(); - //maxB = ( iVal > maxB ) ? iVal : maxB; - //minB = ( iVal < minB ) ? iVal : minB; - } - afCount = null; - - int iMinX = 255, iMaxX = 0; - int iIndex = 0; - for (int i = 0; i < 256; i++) { - for (int j = 0; j < 256; j++) { - iIndex = i * 256 + j; - if (abHisto[iIndex] > 50) { - if (iMinX > j) { - iMinX = j; - } - if (j > iMaxX) { - iMaxX = j; - } - } - } - } - - int iMinY = 255, iMaxY = 0; - for (int j = 0; j < 256; j++) { - for (int i = 0; i < 256; i++) { - iIndex = i * 256 + j; - if (abHisto[iIndex] > 50) { - if (iMinY > i) { - iMinY = i; - } - if (i > iMaxY) { - iMaxY = i; - } - } - } - } - if (iTMinX > iMinX) { - iTMinX = iMinX; - } - if (iTMaxX < iMaxX) { - iTMaxX = iMaxX; - } - - if (iTMinY > iMinY) { - iTMinY = iMinY; - } - if (iTMaxY < iMaxY) { - iTMaxY = iMaxY; - } - - // iMinX = 0; iMaxX = 255; - // iMinY = 0; iMaxY = 255; - - m_kHisto[t] = new GraphicsImage(GraphicsImage.FormatMode.IT_L8, 256, 256, (byte[]) null, new String( - "VolumeImageHisto" + kPostFix)); - m_kHisto[t].SetData(abHisto, 256, 256); - /* - ModelImage kTestHisto2D = new ModelImage( ModelStorageBase.UBYTE, new int[]{256,256}, "Histo2D" ); - try { - kTestHisto2D.importData(abHisto); - } catch (IOException e) { - e.printStackTrace(); - } - kTestHisto2D.calcMinMax(); - new ViewJFrameImage( kTestHisto2D ); */ - } - - m_kHistoTarget = new Texture(); - m_kHistoTarget.SetImage(m_kHisto[0]); - m_kHistoTarget.SetShared(true); - m_kHistoTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kHistoTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kHistoTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kHistoTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - iTMinX = 0; - iTMaxX = Math.max( iTMaxX, iTMaxY ); - m_akHistoTCoord = new Vector2f[4]; - m_akHistoTCoord[0] = new Vector2f(iTMinX / 255.0f, iTMinX / 255.0f); - m_akHistoTCoord[1] = new Vector2f(iTMaxX / 255.0f, iTMinX / 255.0f); - m_akHistoTCoord[2] = new Vector2f(iTMaxX / 255.0f, iTMaxX / 255.0f); - m_akHistoTCoord[3] = new Vector2f(iTMinX / 255.0f, iTMaxX / 255.0f); - //m_akHistoTCoord[0] = new Vector2f(0f, 0f); - //m_akHistoTCoord[1] = new Vector2f(1f, 0f); - //m_akHistoTCoord[2] = new Vector2f(1f, 1f); - //m_akHistoTCoord[3] = new Vector2f(0f, 1f); - m_bHistoInit = true; - } - - /** - * Calculates and stores the gradient magnitude images (3D or 4D) for the input image. Or reads from disk. - * The data is stored in the GraphicsImage data structures and will be passed to the GPU to use in rendering. - * - * @param kImage input image - * @param kGradientMagnitude input Gradient Magnitude image, or null. - * @param bComputeLaplace when true the Laplace image is also calculated or read from dis. - private void GradientMagnitudeImage(final ModelImage kImage, ModelImage kGradientMagnitude, - boolean bComputeLaplace) { - - - if ( !m_bGMInit ) - { - ModelImage[] kImageGM = new ModelImage[m_iTimeSteps]; - String[] kImageName = new String[m_iTimeSteps]; - for (int i = 0; i < m_iTimeSteps; i++) { - kImageName[i] = ModelImage.makeImageName(kImage.getFileInfo(0).getFileName(), new String("_GM_" + i)); - - if ( kGradientMagnitude != null && checkImage(kImage, kGradientMagnitude )) - { - m_kVolumeGM[i] = VolumeImage.UpdateData(kGradientMagnitude, i, null, m_kVolumeGM[i], - m_kVolumeGMTarget, m_kVolumeGM[i].GetName(), true, false); - ModelImage.saveImage( kGradientMagnitude, kImageName[i] + ".xml", m_kDir ); - } - else - { - kImageGM[i] = ReadFromDisk(kImageName[i] + ".xml", m_kDir); - if ( kImageGM[i] != null && !checkImage(kImage, kImageGM[i] ) ) - { - kImageGM[i].disposeLocal(); - kImageGM[i] = null; - } - if (kImageGM[i] == null) { - JDialogGradientMagnitude kCalcMagnitude = new JDialogGradientMagnitude(null, m_akImages[i]); - kCalcMagnitude.setVisible(false); - kCalcMagnitude.setOutputNewImage(true); - kCalcMagnitude.setDisplayProgressBar(true); - kCalcMagnitude.setSeparateThread(false); - kCalcMagnitude.setSeparable(true); - kCalcMagnitude.setUseOCL(true); - kCalcMagnitude.actionPerformed(new ActionEvent(this, 0, "OK")); - kImageGM[i] = kCalcMagnitude.getResultImage(); - kCalcMagnitude = null; - } - if (kImageGM[i] == null) { - System.err.println("Gradient magnitude calculation returned null"); - m_kVolumeGM[i] = VolumeImage.UpdateData(kImage, i, null, m_kVolumeGM[i], m_kVolumeGMTarget, kImageName[i], true, false); - } else { - kImageGM[i].calcMinMax(); - m_akGradientMagMinMax[i] = new Vector2f( (float)kImageGM[i].getMin(), (float)kImageGM[i].getMax() ); - - if ( !( bComputeLaplace && !m_kImage.isColorImage() ) ) - { - m_kVolumeGM[i] = VolumeImage.UpdateData(kImageGM[i], 0, null, m_kVolumeGM[i], m_kVolumeGMTarget, kImageName[i], true, false); - } - } - } - } - - - if ( bComputeLaplace && !m_kImage.isColorImage() ) - { - for (int i = 0; i < m_iTimeSteps; i++) { - final String kImageNameL = ModelImage.makeImageName(kImage.getFileInfo(0).getFileName(), new String( - "_Laplacian_" + i)); - ModelImage kImageGMGM = null; - kImageGMGM = ReadFromDisk(kImageNameL + ".xml", m_kDir); - if ( kImageGMGM != null && !checkImage(kImage, kImageGMGM ) ) - { - kImageGMGM.disposeLocal(); - kImageGMGM = null; - } - if (kImageGMGM == null) { - final JDialogLaplacian kCalcLaplacian = new JDialogLaplacian(null, m_akImages[i]); - kCalcLaplacian.setVisible(false); - kCalcLaplacian.setOutputNewImage(true); - kCalcLaplacian.setDisplayProgressBar(true); - kCalcLaplacian.setSeparateThread(false); - kCalcLaplacian.setUseOCL(true); - kCalcLaplacian.setSeparable(true); - kCalcLaplacian.actionPerformed(new ActionEvent(this, 0, "OK")); - kImageGMGM = kCalcLaplacian.getResultImage(); - } - if (kImageGMGM != null) { - m_kVolumeGM[i] = createGM_Laplace(kImageGM[i], kImageGMGM, m_kVolumeGM[i], i, true); - } else { - m_kVolumeGM[i] = VolumeImage.UpdateData(kImageGM[i], 0, null, m_kVolumeGM[i], m_kVolumeGMTarget, kImageName[i], true, false); - } - final ViewJFrameImage kImageFrame = ViewUserInterface.getReference().getFrameContainingImage(kImageGMGM); - if (kImageFrame != null) { - kImageFrame.close(); - } else if (kImageGMGM != null) { - kImageGMGM.disposeLocal(); - kImageGMGM = null; - } - } - } - - m_bGMInit = true; - m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); - m_kVolumeGMTarget.Reload(true); - - for ( int i = 0; i < kImageGM.length; i++ ) - { - if (kImageGM[i] != null) { - - kImageGM[i].setImageDirectory( m_kDir ); - kImageGM[i].setImageName( kImageName[i] + ".xml" ); - ModelImage.saveImage(kImageGM[i], kImageName[i] + ".xml", m_kDir ); - - - final ViewJFrameImage kImageFrame = ViewUserInterface.getReference().getFrameContainingImage(kImageGM[i]); - if (kImageFrame != null) { - kImageFrame.close(); - } - - kImageGM[i].disposeLocal(); - kImageGM[i] = null; - } - } - } - } - */ - - public static ModelImage getGradientMagnitude( ModelImage kImage, int i ) - { - if ( kImage == null ) - { - return null; - } - int index = kImage.getExtents()[2] / 2; - float xRes = kImage.getFileInfo(index).getResolutions()[0]; - float zRes = kImage.getFileInfo(index).getResolutions()[2]; - - float correction = xRes / zRes; - float[] sigmas = new float[]{1f,1f,correction}; - - int dimX = kImage.getExtents().length > 0 ? kImage.getExtents()[0] : 1; - int dimY = kImage.getExtents().length > 1 ? kImage.getExtents()[1] : 1; - int dimZ = kImage.getExtents().length > 2 ? kImage.getExtents()[2] : 1; - ModelImage outputImage = new ModelImage( kImage.getDataType(), new int[]{dimX,dimY,dimZ}, "temp" ); - AlgorithmGradientMagnitudeSep gradientMagAlgo = new AlgorithmGradientMagnitudeSep( kImage, sigmas, true, false ); -// OpenCLAlgorithmGradientMagnitude gradientMagAlgo = new OpenCLAlgorithmGradientMagnitude(outputImage, kImage, sigmas, -// true, true, false); - gradientMagAlgo.setRed(true); - gradientMagAlgo.setGreen(true); - gradientMagAlgo.setBlue(true); - gradientMagAlgo.setRunningInSeparateThread(false); - gradientMagAlgo.run(); - float[] resultBuffer = gradientMagAlgo.getResultBuffer(); - try { - outputImage.importData(0, resultBuffer, true); - } catch (IOException e) {} -// gradientMagAlgo.gradientMagnitudeSep3D( i ); - gradientMagAlgo.finalize(); - gradientMagAlgo = null; - return outputImage; - } - - -// private ModelImage getLaplace( ModelImage kImage, int i ) -// { -// String kImageName = ModelImage.makeImageName(kImage.getFileInfo(0).getFileName(), new String("_Laplacian_" + i)); -// ModelImage kImageL = ReadFromDisk(kImageName + ".xml", m_kDir); -// if ( kImageL != null && !checkImage(kImage, kImageL ) ) -// { -// kImageL.disposeLocal(); -// kImageL = null; -// } -// if (kImageL == null) { -// JDialogLaplacian kCalcLaplacian = new JDialogLaplacian(null, m_akImages[i]); -// kCalcLaplacian.setVisible(false); -// kCalcLaplacian.setOutputNewImage(true); -// kCalcLaplacian.setDisplayProgressBar(true); -// kCalcLaplacian.setSeparateThread(false); -// kCalcLaplacian.setUseOCL(true); -// kCalcLaplacian.setSeparable(true); -// kCalcLaplacian.actionPerformed(new ActionEvent(this, 0, "OK")); -// kImageL = kCalcLaplacian.getResultImage(); -// kCalcLaplacian = null; -// -// kImageL.setImageDirectory( m_kDir ); -// kImageL.setImageName( kImageName + ".xml" ); -// JDialogBase.updateFileInfo( kImage, kImageL ); -// ModelImage.saveImage(kImageL, kImageName + ".xml", m_kDir ); -// final ViewJFrameImage kImageFrame = ViewUserInterface.getReference().getFrameContainingImage(kImageL); -// if (kImageFrame != null) { -// kImageFrame.setVisible(false); -// } -// } -// return kImageL; -// } - - /** - * Initialize the VolumeImage with the ModelImage data. - * @param kProgress progress bar - * @param iProgress progress bar increment - */ - private void init(final ViewJProgressBar kProgress, final int iProgress, boolean initGradientMagnitude) { - // Create LUTS for the ModelImage: - initLUT(); - // Initialize Texture Maps: - if ( !m_kImage.isColorImage() ) - { - initImages(); - } - else - { - initImagesColor(); - } - if ( initGradientMagnitude ) - { - SetGradientMagnitude(null, true, m_kPostfix); - } - if (kProgress != null) { - kProgress.updateValueImmed(kProgress.getValue() + iProgress); - } - } - - /** - * Intializes the Textures and GraphicsImages used to render the ModelImage this - * VolumeImage represents. - */ - private void initImages() { - m_fDRRNormalize = computeIntegralNormalizationFactor(); - // Initialize Color Map GraphicsImage: - m_kColorMap = initColorMap(); - // Initialize Opacity Map for the GradientMagnitude image: - m_kOpacityMap_GM = InitOpacityMap(m_kImage, new String(m_kPostfix + "_GM")); - - final int iXBound = m_kImage.getExtents()[0]; - final int iYBound = m_kImage.getExtents()[1]; - final int iZBound = m_kImage.getExtents()[2]; - - /* - * Map the ModelImage volume data to a texture image, including for the ModelImage gradient magnitude data: - */ - final int[] aiExtents = m_kImage.getExtents(); - final int iNDims = aiExtents.length; - String kImageName; - GraphicsImage.FormatMode type = GraphicsImage.FormatMode.IT_RGBA8888 ; - - - if (iNDims == 3) { // ModelImage is 3D: - m_iTimeSteps = 1; - } - else { // ModelImage is 4D: - m_iTimeSteps = aiExtents[3]; - } - // Allocate a 3D GraphicsImage for each 3D Volume - m_kVolume = new GraphicsImage[m_iTimeSteps]; - m_kVolumeGM = new GraphicsImage[m_iTimeSteps]; - m_akGradientMagMinMax = new Vector2f[m_iTimeSteps]; - - final int[] aiSubset = new int[] {aiExtents[0], aiExtents[1], aiExtents[2]}; - - for (int i = 0; i < m_iTimeSteps; i++) { -// System.err.println( "initiImages : " + i ); - if ( m_iTimeSteps > 1 ) - { - // Will generate the ModelImage GraphicsImage representation and separate the 4D ModelImage into - // the 3D Subset image. - m_kVolume[i] = initVolumeData(m_kImage, i, m_kVolumeTarget, m_kImage.getImageName(), true, false); - } - else - { - // Already 3D, just generate the GraphicsImage: - m_kVolume[0] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); - } - - // Allocate GraphcisImage for Gradient Magnitude Texture: - kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), - new String("_GM_" + i)); - m_kVolumeGM[i] = new GraphicsImage(type, iXBound, iYBound, iZBound, - (byte[])null, kImageName); - - } - // Initialize the Gradient Magnitude Texture and set its GraphicsImage: - m_kVolumeGMTarget = new Texture(); - m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); - m_kVolumeGMTarget.SetShared(true); - m_kVolumeGMTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kVolumeGMTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kVolumeGMTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kVolumeGMTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Initialize the ModelImage Texture and set its GraphicsImage: - m_kVolumeTarget = new Texture(); - m_kVolumeTarget.SetImage(m_kVolume[0]); - m_kVolumeTarget.SetShared(true); - m_kVolumeTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kVolumeTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kVolumeTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kVolumeTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Initialize the ColorMap Texture and set its GraphicsImage: - m_kColorMapTarget = new Texture(); - m_kColorMapTarget.SetImage(m_kColorMap); - m_kColorMapTarget.SetShared(true); - - // Initialize the Normal Map Texture and set its GraphicsImage: - m_kScratchTarget = new Texture(); - m_kScratchTarget.SetImage(new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, - (byte[])null, "ScratchBuffer")); - m_kScratchTarget.SetShared(true); - m_kScratchTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kScratchTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kScratchTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kScratchTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Initialize the Opacity Map for the Gradient Magnitude Texture and set its GraphicsImage: - m_kOpacityMapTarget_GM = new Texture(); - m_kOpacityMapTarget_GM.SetImage(m_kOpacityMap_GM); - m_kOpacityMapTarget_GM.SetShared(true); - - // Initialize the Surface Mask Texture and set its GraphicsImage: - m_kSurfaceImage = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, - new byte[4* iXBound * iYBound * iZBound], "SurfaceImage"); - m_kSurfaceTarget = new Texture(); - m_kSurfaceTarget.SetImage(m_kSurfaceImage); - m_kSurfaceTarget.SetShared(true); - m_kSurfaceTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kSurfaceTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kSurfaceTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kSurfaceTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Calculate the scale factors for rendering the volume with a unit cube: - InitScale(); - } - - - private void initImagesColor() { - m_fDRRNormalize = computeIntegralNormalizationFactor(); - // Initialize Color Map GraphicsImage: - m_kColorMap = initColorMap(); - // Initialize Opacity Map for the GradientMagnitude image: - m_kOpacityMap_GM = InitOpacityMap(m_kImage, new String(m_kPostfix + "_GM")); - - final int iXBound = m_kImage.getExtents()[0]; - final int iYBound = m_kImage.getExtents()[1]; - final int iZBound = m_kImage.getExtents()[2]; - - /* - * Map the ModelImage volume data to a texture image, including for the ModelImage gradient magnitude data: - */ - final int[] aiExtents = m_kImage.getExtents(); - final int iNDims = aiExtents.length; - String kImageName; - GraphicsImage.FormatMode type = GraphicsImage.FormatMode.IT_RGBA8888 ; - - - if (iNDims == 3) { // ModelImage is 3D: - m_iTimeSteps = 1; - } - else { // ModelImage is 4D: - m_iTimeSteps = aiExtents[3]; - } - // A 4D ModelImage is separated into the 3D Volumes: -// m_akImages = new ModelImage[m_iTimeSteps]; - // Allocate a 3D GraphicsImage for each 3D Volume - m_kVolume = new GraphicsImage[m_iTimeSteps]; - m_kVolumeGM = new GraphicsImage[m_iTimeSteps]; - m_kNormal = new GraphicsImage[m_iTimeSteps]; - m_akGradientMagMinMax = new Vector2f[m_iTimeSteps]; - - final int[] aiSubset = new int[] {aiExtents[0], aiExtents[1], aiExtents[2]}; - for (int i = 0; i < m_iTimeSteps; i++) { - - if ( m_iTimeSteps > 1 ) - { - // Will generate the ModelImage GraphicsImage representation and separate the 4D ModelImage into - // the 3D Subset image. -// m_akImages[i] = new ModelImage(m_kImage.getType(), aiSubset, JDialogBase.makeImageName(m_kImage -// .getImageName(), "_" + i)); -// JDialogBase.updateFileInfo( m_kImage, m_akImages[i] ); - m_kVolume[i] = initVolumeData(m_kImage, i, m_kVolumeTarget, m_kImage.getImageName(), true, false); -// m_akImages[i].copyFileTypeInfo(m_kImage); -// m_akImages[i].calcMinMax(); - } - else - { - // Already 3D, just generate the GraphicsImage: -// m_akImages[0] = m_kImage; - m_kVolume[0] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); - } - // Allocate GraphcisImage for Normal Map Texture: - kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), - new String("_Normal_" + i)); - m_kNormal[i] = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, - (byte[])null, kImageName); - - // Allocate GraphcisImage for Gradient Magnitude Texture: - kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), - new String("_GM_" + i)); - m_kVolumeGM[i] = new GraphicsImage(type, iXBound, iYBound, iZBound, - (byte[])null, kImageName); - } - // Initialize the Gradient Magnitude Texture and set its GraphicsImage: - m_kVolumeGMTarget = new Texture(); - m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); - m_kVolumeGMTarget.SetShared(true); - m_kVolumeGMTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kVolumeGMTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kVolumeGMTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kVolumeGMTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Initialize the ModelImage Texture and set its GraphicsImage: - m_kVolumeTarget = new Texture(); - m_kVolumeTarget.SetImage(m_kVolume[0]); - m_kVolumeTarget.SetShared(true); - m_kVolumeTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kVolumeTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kVolumeTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kVolumeTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Initialize the ColorMap Texture and set its GraphicsImage: - m_kColorMapTarget = new Texture(); - m_kColorMapTarget.SetImage(m_kColorMap); - m_kColorMapTarget.SetShared(true); - - // Initialize the Normal Map Texture and set its GraphicsImage: - m_kNormalMapTarget = new Texture(); - m_kNormalMapTarget.SetImage(m_kNormal[0]); - m_kNormalMapTarget.SetShared(true); - m_kNormalMapTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kNormalMapTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kNormalMapTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kNormalMapTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - - // Initialize the Normal Map Texture and set its GraphicsImage: - m_kScratchTarget = new Texture(); - m_kScratchTarget.SetImage(new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, - (byte[])null, "ScratchBuffer")); - m_kScratchTarget.SetShared(true); - m_kScratchTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kScratchTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kScratchTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kScratchTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Initialize the Opacity Map for the Gradient Magnitude Texture and set its GraphicsImage: - m_kOpacityMapTarget_GM = new Texture(); - m_kOpacityMapTarget_GM.SetImage(m_kOpacityMap_GM); - m_kOpacityMapTarget_GM.SetShared(true); - - // Initialize the Surface Mask Texture and set its GraphicsImage: - m_kSurfaceImage = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, - new byte[4* iXBound * iYBound * iZBound], "SurfaceImage"); - m_kSurfaceTarget = new Texture(); - m_kSurfaceTarget.SetImage(m_kSurfaceImage); - m_kSurfaceTarget.SetShared(true); - m_kSurfaceTarget.SetFilterType(Texture.FilterType.LINEAR); - m_kSurfaceTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); - m_kSurfaceTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); - m_kSurfaceTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); - - // Calculate the scale factors for rendering the volume with a unit cube: - InitScale(); - } - - /** - * Create a new LUT for the input image. - * - * @param kImage ModelImage. - */ - private void initLUT() { - - if (m_kImage.isColorImage()) { - final float[] x = new float[4]; - final float[] y = new float[4]; - final Dimension dim = new Dimension(256, 256); - - // Set ModelRGB min max values; - x[0] = 0; - y[0] = dim.height - 1; - - x[1] = 255 * 0.333f; - y[1] = (dim.height - 1) - ( (dim.height - 1) / 3.0f); - - x[2] = 255 * 0.667f; - y[2] = (dim.height - 1) - ( (dim.height - 1) * 0.67f); - - x[3] = 255; - y[3] = 0; - - final int[] RGBExtents = new int[2]; - RGBExtents[0] = 4; - RGBExtents[1] = 256; - m_kRGBT = new ModelRGB(RGBExtents); - m_kRGBT.getRedFunction().importArrays(x, y, 4); - m_kRGBT.getGreenFunction().importArrays(x, y, 4); - m_kRGBT.getBlueFunction().importArrays(x, y, 4); - m_kRGBT.makeRGB( -1); - } else { - final int[] dimExtentsLUT = new int[2]; - - dimExtentsLUT[0] = 4; - dimExtentsLUT[1] = 256; - - m_kLUT = new ModelLUT(ModelLUT.GRAY, 256, dimExtentsLUT); - - float min, max; - - if (m_kImage.getType() == ModelStorageBase.UBYTE) { - min = 0; - max = 255; - } else if (m_kImage.getType() == ModelStorageBase.BYTE) { - min = -128; - max = 127; - } else { - min = (float) m_kImage.getMin(); - max = (float) m_kImage.getMax(); - } - - final float imgMin = (float) m_kImage.getMin(); - final float imgMax = (float) m_kImage.getMax(); - - m_kLUT.resetTransferLine(min, imgMin, max, imgMax); - } - } - - /** - * Initialize the scale factors. Based on the ModelImage Volume. - */ - private void InitScale() { - - int dimX = m_kImage.getExtents().length > 0 ? m_kImage.getExtents()[0] : 1; - int dimY = m_kImage.getExtents().length > 1 ? m_kImage.getExtents()[1] : 1; - int dimZ = m_kImage.getExtents().length > 2 ? m_kImage.getExtents()[2] : 1; - m_iMaxExtent = Math.max( dimX, Math.max( dimY, dimZ ) ); - - final float fMaxX = (m_kImage.getExtents()[0] - 1) * m_kImage.getFileInfo(0).getResolutions()[0]; - final float fMaxY = (m_kImage.getExtents()[1] - 1) * m_kImage.getFileInfo(0).getResolutions()[1]; - final float fMaxZ = (m_kImage.getExtents()[2] - 1) * m_kImage.getFileInfo(0).getResolutions()[2]; - - m_fMax = fMaxX; - if (fMaxY > m_fMax) { - m_fMax = fMaxY; - } - if (fMaxZ > m_fMax) { - m_fMax = fMaxZ; - } - m_fX = fMaxX / m_fMax; - m_fY = fMaxY / m_fMax; - m_fZ = fMaxZ / m_fMax; - } - - /** - * Reads an image from disk. - * - * @param kImageName image name - * @param kDir directory - * @return ModelImage - */ - private static ModelImage ReadFromDisk(final String kImageName, final String kDir) { - - final File kFile = new File(kDir, kImageName); - if ( !kFile.exists()) { - return null; - } - - final FileIO fileIO = new FileIO(); - return fileIO.readImage( kImageName, kDir ); - //return fileIO.readXML(kImageName + ".xml", kDir, false, false); - } - - private void readObject(final java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { - m_kDir = (String) in.readObject(); - if ( !m_kDir.equals("null")) { - final String kImageName = (String) in.readObject(); - m_kPostfix = (String) in.readObject(); - m_kImage = ReadFromDisk(kImageName, m_kDir); - init(null, 0, true); - } - } - - - /** - * Go to the next 3D volume sub-image for the 4D animation. - * Updates the Textures and causes them to be reloaded onto the GPU. - */ - private void update4D() { - if ( m_kImage == null ) return; - - m_kVolumeTarget.SetImage(m_kVolume[m_iTimeSlice]); - m_kVolumeTarget.Reload(true); - if ( m_bGMInit ) - { - if ( m_kVolumeGM[m_iTimeSlice] == null ) - { - ModelImage gmImage = getGradientMagnitude( m_kImage, m_iTimeSlice ); - m_akGradientMagMinMax[m_iTimeSlice] = new Vector2f( (float)gmImage.getMin(), (float)gmImage.getMax() ); - gmImage.disposeLocal(); - m_kVolumeGMTarget.SetImage(createGM_Laplace(gmImage, null, null, 0, true)); - m_kVolumeGMTarget.Reload(true); - } - else - { - m_kVolumeGMTarget.SetImage(m_kVolumeGM[m_iTimeSlice]); - m_kVolumeGMTarget.Reload(true); - } - } - if ( m_bNormalsInit && m_kImage.isColorImage() ) - { - m_kNormalMapTarget.SetImage(m_kNormal[m_iTimeSlice]); - m_kNormalMapTarget.Reload(true); - } - if ( m_bHistoInit && (m_kHisto[m_iTimeSlice] != null )) - { - m_kHistoTarget.SetImage(m_kHisto[m_iTimeSlice]); - m_kHistoTarget.Reload(true); - } - - m_kImage.setTimeSlice(m_iTimeSlice); - } - - /** - * Called when the opacity transfer function changes. This function updates the Texture - * and causes the data to be reloaded onto the GPU. - * - * @param kImage the ModelImage the transfer function applies to. - * @param kOpacityTexture the opacity Texture passed to the GPU - * @param kOpacityMap the opacity data stored in the GraphicsImage - * @param kTransfer the new transfer function. - */ - private boolean UpdateImages(final ModelImage kImage, final Texture kOpacityTexture, - final GraphicsImage kOpacityMap, final TransferFunction kTransfer) { - final int iLutHeight = 256; - final float[] afData = kOpacityMap.GetFloatData(); - - final float fRange = (float) (kImage.getMax() - kImage.getMin()); - final float fStep = fRange / iLutHeight; - float fDataValue = (float) kImage.getMin(); - for (int i = 0; i < iLutHeight; i++) { - afData[i] = (kTransfer.getRemappedValue(fDataValue, iLutHeight) / 255.0f); - fDataValue += fStep; - } - kOpacityTexture.Reload(true); - return true; - } - - public TransferFunction getOpacityFn() { - return opacityTransferFn; - } - - /** - * Update the opacity transfer function. - * - * @param kImage the ModelImage the transfer function applies to. - * @param kOpacityTexture the opacity Texture passed to the GPU - * @param kOpacityMap the opacity data stored in the GraphicsImage - * @param kTransfer the new transfer function. - */ - private boolean UpdateImages2(final ModelImage kImage, final Texture kOpacityTexture, - final GraphicsImage kOpacityMap, final TransferFunction kTransfer) { - opacityTransferFn = new TransferFunction(kTransfer); - final int iLutHeight = kOpacityMap.GetBound(0); - final byte[] abData = kOpacityMap.GetData(); - - final float fRange = (float) (kImage.getMax() - kImage.getMin()); - final float fStep = fRange / iLutHeight; - float fDataValue = (float) kImage.getMin(); - float fVal; - for (int i = 0; i < iLutHeight; i++) { - fVal = (kTransfer.getRemappedValue(fDataValue, iLutHeight) / 255.0f); - abData[i * 4 + 3] = (byte) (fVal * 255); - fDataValue += fStep; - } - kOpacityTexture.Reload(true); - return true; - } - - private void writeObject(final java.io.ObjectOutputStream out) throws IOException { - if (m_kImage != null) { - out.writeObject(m_kDir); - out.writeObject(m_kImage.getImageFileName()); - out.writeObject(m_kPostfix); - m_kImage.saveImage(m_kDir, m_kImage.getImageFileName(), FileUtility.XML, false, false); - } else { - out.writeObject("null"); - } - } -} +package gov.nih.mipav.view.renderer.WildMagic.Render; + + +import static java.lang.System.nanoTime; +import static java.lang.System.out; +import gov.nih.mipav.model.algorithms.filters.AlgorithmGradientMagnitudeSep; +import gov.nih.mipav.model.algorithms.filters.OpenCL.filters.OpenCLAlgorithmGradientMagnitude; +import gov.nih.mipav.model.algorithms.filters.OpenCL.filters.OpenCLAlgorithmVolumeNormals; +import gov.nih.mipav.model.file.*; +import gov.nih.mipav.model.structures.*; + +import gov.nih.mipav.view.*; +import gov.nih.mipav.view.dialogs.*; +import gov.nih.mipav.view.renderer.WildMagic.VolumeTriPlanarInterface; + +import java.awt.Dimension; +import java.awt.event.ActionEvent; +import java.io.*; +import java.nio.Buffer; +import java.util.BitSet; +import java.util.Vector; + + +import org.jocl.CL; + +import WildMagic.LibFoundation.Mathematics.ColorRGB; +import WildMagic.LibFoundation.Mathematics.ColorRGBA; +import WildMagic.LibFoundation.Mathematics.Vector2f; +import WildMagic.LibGraphics.Rendering.*; + +/** * + * The VolumeImage class provides an interface between the MIPAV ModelImage and the 2D and 3D Textures used to render + * the ModelImage on the GPU. The VolumeImage creates the supporting Texture and GraphicImage objects that pass + * the ModelImage data to the GPU. It also creates Texture and GraphicsImage objects for the ModelImage Look-up Table (LUT) + * and the ModelImage opacity transfer function. Other textures that are used for advanced volume rendering, such as + * a normal map for surface rendering, and the gradient-magnitude and laplace images for the multi-histogram rendering are + * calculated and passed on-demand to the GPU when the user selects these options in the Volume-Renderer user-interface. + * + * The VolumeImage data structure handles all GPU content for rendering one ModelImage. All Textures and GraphicsImages + * are initialized and stored in the VolumeImage. When needed by the renderer they are loaded onto the GPU. Any images + * that are derived from the ModelImage: Normal map, Gradient Magnitude, Laplace, are either read from file or calculated + * and then written to file. The supporting files are stored in a directory on disk located next to the original ModelImage. + * The directory is named with the ModelImage name followed by "_RenderFiles". + * + * + */ +public class VolumeImage implements Serializable { + /** */ + private static final long serialVersionUID = -7254697711265907746L; + + /** Reference to ModelImage image */ + private ModelImage m_kImage; + private ModelImage m_kImageGM; + + /** GraphicsImage contains GM opacity transfer function data: */ + private GraphicsImage m_kOpacityMap_GM = null; + + /** + * Texture contains texture filter modes and GraphicsImage for opacity transfer function: + */ + private Texture m_kOpacityMapTarget_GM = null; + + /** Data storage for volume: */ + private GraphicsImage[] m_kVolume; + + /** Texture object for data: */ + private Texture m_kVolumeTarget; + + /** Data storage for normals: */ + private GraphicsImage[] m_kNormal; + /** Set to true if the Normal Map has been initialized. */ + private boolean m_bNormalsInit = false; + + /** Texture object for normal map: */ + private Texture m_kNormalMapTarget; + + /** Texture object for GPU computations: */ + private Texture m_kScratchTarget; + + /** Data storage for color map: */ + private GraphicsImage m_kColorMap; + + /** Texture object for color map: */ + private Texture m_kColorMapTarget; + + /** Data storage for volume gradient magnitude: */ + private GraphicsImage[] m_kVolumeGM; + /** Set to true if the Gradient Magnitude texture map has been initialized. */ + private boolean m_bGMInit = false; + + /** Texture object for volume gradient magnitude data: */ + private Texture m_kVolumeGMTarget; + + /** Data storage for surfaces: */ + private GraphicsImage m_kSurfaceImage; + + /** Texture object for surfaces: */ + private Texture m_kSurfaceTarget; + + /** ModelLUT */ + private ModelLUT m_kLUT = null; + + /** ModelRGB */ + private ModelRGB m_kRGBT = null; + + /** Image scale factors for display in 3D */ + private float m_fX = 1, m_fY = 1, m_fZ = 1, m_fMax = 1; + private int m_iMaxExtent = 1; + + /** Image name post-fix typically either 'A' or 'B' */ + private String m_kPostfix = null; + + /** Directory for calculated images */ + private String m_kDir = null; + + /** Histogram data for multi-histogram interface */ + private GraphicsImage[] m_kHisto = null; + /** Set to true when the multi-histogram histogram texture has been initialized. */ + private boolean m_bHistoInit = false; + + /** Texture object for data: */ + private Texture m_kHistoTarget; + + /** Texture coordinates for displaying histogram in 2D */ + private Vector2f[] m_akHistoTCoord = null; + + private float m_fDRRNormalize = 255.0f; + + /** Current position in time (4D data) */ + private int m_iTimeSlice = 0; + + /** Total number of time-slices (4D data) */ + private int m_iTimeSteps = 0; + + /** 3D sub-images (4D data) */ +// private ModelImage[] m_akImages; +// private ModelImage[] m_akImagesGM; + + private Vector2f[] m_akGradientMagMinMax; + + private TransferFunction opacityTransferFn; + + /* Default Constructor */ + public VolumeImage() {} + + /** + * Create a Volume image with the input ModelImage. The supporting images for advanced volume rendering, such as + * the normal map, gradient magnitude and laplace images are generated on-demand and stored in a directory for + * later use. The directory is created if it does not already exist, with the ModelImage name + "_RenderFiles" as + * the directory name. + * + * @param bClone, when true clone the input ModelImage, when false reference the ModelImage + * @param kImage input ModelImage + * @param kPostfix Postfix for images 'A' or 'B' + * @param kProgress progress bar + * @param iProgress progress bar increment + */ + public VolumeImage(boolean bClone, final ModelImage kImage, final String kPostfix, final ViewJProgressBar kProgress, final int iProgress) { + this( bClone, kImage, kPostfix, kProgress, iProgress, true ); + } + + public VolumeImage(boolean bClone, final ModelImage kImage, final String kPostfix, final ViewJProgressBar kProgress, final int iProgress, boolean initGradientMagnitude) { + m_kPostfix = new String(kPostfix); + // clone the input image, in the future this might be a reference. + if ( bClone ) + { + m_kImage = (ModelImage)kImage.clone(); + } + else + { + m_kImage = kImage; + } + // Initialize the Texture maps. + init(kProgress, iProgress, initGradientMagnitude); + } + + /** + * Copy the data from the input GraphicsImage and return a new ModelImage of that data. + * Any changes to the GraphicsImage that occur only on the GPU can first be written from + * the GPU back into the GraphicsImage CPU data storage. This enables calculations that + * are performed on the GPU to be written back into a ModelImage data structure. + * + * @param kImage Graphics Image to copy + * @param bSwap when true convert from RGBA (graphics format) to ARGB (ModelImage format) + * @return new ModelImage from Volume Texture on GPU. + */ + public static ModelImage CreateImageFromTexture(final GraphicsImage kImage, final boolean bSwap) { + final int iXBound = kImage.GetBound(0); + final int iYBound = kImage.GetBound(1); + final int iZBound = kImage.GetBound(2); + final int iSize = iXBound * iYBound * iZBound; + final int[] extents = new int[] {iXBound, iYBound, iZBound}; + + ModelImage kResult = null; + if (kImage.GetFormat() == GraphicsImage.FormatMode.IT_RGBA8888) { + byte[] aucData = kImage.GetData(); + if (bSwap) { + byte bVal = 0; + aucData = new byte[4 * iXBound * iYBound * iZBound]; + for (int i = 0; i < iSize; i += 4) { + if (kImage.GetData()[i + 1] > bVal) { + bVal = kImage.GetData()[i + 1]; + } + aucData[i] = kImage.GetData()[i + 3]; + aucData[i + 1] = kImage.GetData()[i + 1]; + aucData[i + 2] = kImage.GetData()[i + 2]; + aucData[i + 3] = kImage.GetData()[i]; + //System.err.println( kImage.GetData()[i + 3] + " " + kImage.GetData()[i + 1] + " " + kImage.GetData()[i + 2] ); + } + // System.err.println( bVal ); + } + try { + kResult = new ModelImage(ModelStorageBase.ARGB, extents, ""); + kResult.importData(0, aucData, true); + } catch (final IOException e) { + e.printStackTrace(); + } + } else { + final byte[] aiImageData = kImage.GetData(); + try { + kResult = new ModelImage(ModelStorageBase.UBYTE, extents, ""); + kResult.importData(0, aiImageData, true); + } catch (final IOException e) { + e.printStackTrace(); + } + } + return kResult; + } + + /** + * Initialize the textures for the color lookup table. + * + * @param kLUT the new LUT. + * @param kRGBT the new RGB table. + * @param kPostfix the string postfix to concatenate to the "ColorMap" image name. + * @return GraphicsImage, the new GraphicsImage storing the colormap lookup table. + */ + public static GraphicsImage InitColorMap( Texture kTexture, GraphicsImage kImage, final ModelStorageBase kLUT, final String kPostFix) { + byte[] aucData; + if ( kImage == null ) + { + aucData = new byte[256 * 4]; + } + else + { + aucData = kImage.GetData(); + } + if (kLUT instanceof ModelLUT ) { + // ModelImage is Color, initialize the ModelRGB + ModelLUT.exportIndexedLUTMin((ModelLUT)kLUT, aucData); + } + else if (kLUT instanceof ModelRGB ) { + // Initialize the ModelLUT + ModelLUT.exportIndexedLUTMin((ModelRGB)kLUT, aucData); + } + if ( kImage == null ) + { + // Return the new GraphicsImage containing the table data: + return new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, 256, aucData, new String("ColorMap" + kPostFix)); + } + if ( kTexture != null ) + { + kTexture.Reload(true); + } + return kImage; + } + + + private GraphicsImage initColorMap() { + final byte[] aucData = new byte[256 * 4]; + if (m_kRGBT != null) + { + // ModelImage is Color, initialize the ModelRGB + ModelLUT.exportIndexedLUTMin(m_kRGBT, aucData); + } else if ( m_kLUT != null ) + { + // Initialize the ModelLUT + ModelLUT.exportIndexedLUTMin(m_kLUT, aucData); + } + // Return the new GraphicsImage containing the table data: + return new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, 256, 1, aucData, new String("ColorMap" + m_kImage.getImageName() + m_kPostfix)); + } + + + /** + * When a ModelImage changes on the CPU, this function is used to update the ModelImage + * data on the CPU. + * + * @param kImage Modified ModelImage to copy into the GPU Texture and GraphicsImage + * @param iTimeSlice time value for 4D image, 0 otherwise + * @param kNewImage a new ModelImage (always 3D) that the data or data subset for 4D image can be copied into (when non-null). + * @param kVolumeImage GraphicsImage that will hold the ModelImage data + * @param kVolumeTexture Texture object containing the GraphicsImage + * @param kImageName new image name for the new ModelImage. + * @param bSwap when true swap the ARGB (ModelImage) color data representation to a RGBA (GPU) color representation. + * @return + */ + public static GraphicsImage UpdateData(final ModelImage kImage, final int iTimeSlice, final ModelImage kNewImage, + final GraphicsImage kVolumeImage, final Texture kVolumeTexture, final String kImageName, + final boolean bSwap, final boolean bRescale) { + GraphicsImage kReturn = kVolumeImage; + final int iXBound = kImage.getExtents()[0]; + final int iYBound = kImage.getExtents()[1]; + final int iZBound = kImage.getExtents()[2]; + + byte[] aucData = null; + int iSize = iXBound * iYBound * iZBound; + if (kImage.isColorImage()) { + iSize *= 4; + aucData = new byte[iSize]; + try { + kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); + if (bSwap) { + for (int i = 0; i < iSize; i += 4) { + final byte tmp = aucData[i]; + aucData[i] = aucData[i + 1]; + aucData[i + 1] = aucData[i + 2]; + aucData[i + 2] = aucData[i + 3]; + aucData[i + 3] = tmp; + } + } + } catch (final IOException e) { + e.printStackTrace(); + } + if (kReturn == null) { + kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData, + kImageName); + } else { + kReturn.SetData(aucData, iXBound, iYBound, iZBound); + } + } else { + aucData = new byte[iSize]; + try { + kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); + // Temporary make the texture an RGBA texture until JOGL2 fixes NPOT textures. + byte[] aucData2 = new byte[iSize*4]; + for (int i = 0; i < iSize; i++) { + aucData2[i * 4 + 0] = aucData[i]; + aucData2[i * 4 + 1] = aucData[i]; + aucData2[i * 4 + 2] = aucData[i]; + aucData2[i * 4 + 3] = 1; + } + + if (kReturn == null) { + kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData2, + kImageName); + } else { + kReturn.SetData(aucData2, iXBound, iYBound, iZBound); + } + } catch (final IOException e) { + e.printStackTrace(); + } + + } + if (kNewImage != null) { + try { + kNewImage.importData(0, aucData, true); + } catch (final IOException e) {} + } + if (kVolumeTexture != null) { + kVolumeTexture.Reload(true); + } + return kReturn; + } + + private GraphicsImage initVolumeData(final ModelImage kImage, final int iTimeSlice, + final Texture kVolumeTexture, final String kImageName, final boolean bSwap, final boolean bRescale) + { + GraphicsImage kReturn = null; + final int iXBound = kImage.getExtents()[0]; + final int iYBound = kImage.getExtents()[1]; + final int iZBound = kImage.getExtents()[2]; + + byte[] aucData = null; + int iSize = iXBound * iYBound * iZBound; + if (kImage.isColorImage()) { + iSize *= 4; + aucData = new byte[iSize]; + try { + kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); + if (bSwap) { + for (int i = 0; i < iSize; i += 4) { + final byte tmp = aucData[i]; + aucData[i] = aucData[i + 1]; + aucData[i + 1] = aucData[i + 2]; + aucData[i + 2] = aucData[i + 3]; + aucData[i + 3] = tmp; + } + } + } catch (final IOException e) { + e.printStackTrace(); + } + kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData, + kImageName); + } else { + aucData = new byte[iSize]; + try { + kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); + // Temporary make the texture an RGBA texture until JOGL2 fixes NPOT textures. + byte[] aucData2 = new byte[iSize*4]; + for (int i = 0; i < iSize; i++) { + aucData2[i * 4 + 0] = aucData[i]; + aucData2[i * 4 + 1] = aucData[i]; + aucData2[i * 4 + 2] = aucData[i]; + aucData2[i * 4 + 3] = 1; + } + + kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData2, + kImageName); + } catch (final IOException e) { + e.printStackTrace(); + } + + } + if (kVolumeTexture != null) { + kVolumeTexture.Reload(true); + } + return kReturn; + } + + private GraphicsImage resetVolumeData(final ModelImage kImage, final int iTimeSlice, GraphicsImage kGraphicsImage, + final Texture kVolumeTexture, final String kImageName, final boolean bSwap, final boolean bRescale) + { + final int iXBound = kImage.getExtents()[0]; + final int iYBound = kImage.getExtents()[1]; + final int iZBound = kImage.getExtents()[2]; + int iSize = iXBound * iYBound * iZBound; + + byte[] aucData = null; + if (kImage.isColorImage()) { + iSize *= 4; + aucData = kGraphicsImage.GetData(); + try { + kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); + if (bSwap) { + for (int i = 0; i < iSize; i += 4) { + final byte tmp = aucData[i]; + aucData[i] = aucData[i + 1]; + aucData[i + 1] = aucData[i + 2]; + aucData[i + 2] = aucData[i + 3]; + aucData[i + 3] = tmp; + } + } + } catch (final IOException e) { + e.printStackTrace(); + } + } + else { + aucData = new byte[iSize]; + try { + kImage.exportDataUseMask(iTimeSlice * iSize, iSize, bRescale, aucData); + byte[] aucData2 = kGraphicsImage.GetData(); + for (int i = 0; i < iSize; i++) { + aucData2[i * 4 + 0] = aucData[i]; + aucData2[i * 4 + 1] = aucData[i]; + aucData2[i * 4 + 2] = aucData[i]; + aucData2[i * 4 + 3] = 1; + } + } catch (final IOException e) { + e.printStackTrace(); + } + + } + if (kVolumeTexture != null) { + kVolumeTexture.Reload(true); + } + return kGraphicsImage; + } + + private void addNormals(final ModelImage kImage, final int iTimeSlice) { + final int iXBound = kImage.getExtents()[0]; + final int iYBound = kImage.getExtents()[1]; + final int iZBound = kImage.getExtents()[2]; + + int iSize = iXBound * iYBound * iZBound; + byte[] aucData = new byte[iSize * 4]; + try { + kImage.exportDataUseMask(0, iSize * 4, true, aucData); + byte[] volumeData = m_kVolume[iTimeSlice].GetData(); + for (int i = 0; i < iSize; i++) { + volumeData[i*4 + 1] = aucData[i*4 + 1]; + volumeData[i*4 + 2] = aucData[i*4 + 2]; + volumeData[i*4 + 3] = aucData[i*4 + 3]; + } + } catch (final IOException e) { + e.printStackTrace(); + } + m_kVolumeTarget.Reload(true); + } + + + private GraphicsImage createGM_Laplace(final ModelImage kImageGM, final ModelImage kImageL, + final GraphicsImage kVolumeImage, + final int iTimeSlice, final boolean bSwap) { + + GraphicsImage kReturn = kVolumeImage; + final int iXBound = kImageGM.getExtents()[0]; + final int iYBound = kImageGM.getExtents()[1]; + final int iZBound = kImageGM.getExtents()[2]; + + int iSize = iXBound * iYBound * iZBound; + byte[] aucDataL = new byte[iSize]; + + if ( kImageL != null ) + { + try { + kImageL.exportDataUseMask(0, iSize, false, aucDataL); + } catch (final IOException e) { + e.printStackTrace(); + } + } + + byte[] aucDataGM = null; + if (kImageGM.isColorImage()) { + iSize *= 4; + aucDataGM = new byte[iSize]; + try { + kImageGM.exportDataUseMask(0, iSize, false, aucDataGM); + if (bSwap) { + for (int i = 0, j = 0; i < iSize; i += 4) { + aucDataGM[i] = aucDataGM[i + 1]; + aucDataGM[i + 1] = aucDataGM[i + 2]; + aucDataGM[i + 2] = aucDataGM[i + 3]; + if ( kImageL != null ) + { + aucDataGM[i + 3] = aucDataL[j++]; + } + } + } + kImageGM.importData( 0, aucDataGM, false ); + } catch (final IOException e) { + e.printStackTrace(); + } + if (kReturn == null) { + kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucDataGM, + kImageGM.getImageName()); + } else { + kReturn.SetData(aucDataGM, iXBound, iYBound, iZBound); + } + } + else + { + try { + aucDataGM = new byte[iSize]; + kImageGM.exportDataUseMask(0, iSize, false, aucDataGM); + byte[] aucData2 = new byte[iSize*4]; + for (int i = 0; i < iSize; i++) { + aucData2[i * 4 + 0] = aucDataGM[i]; + aucData2[i * 4 + 1] = aucDataGM[i]; + aucData2[i * 4 + 2] = aucDataGM[i]; + if ( kImageL != null ) + { + aucData2[i * 4 + 3] = aucDataL[i]; + } + } + + if (kReturn == null) { + kReturn = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, aucData2, + kImageGM.getImageName()); + } else { + kReturn.SetData(aucData2, iXBound, iYBound, iZBound); + } + } catch (final IOException e) { + e.printStackTrace(); + } catch ( java.lang.OutOfMemoryError e ) { + return null; + } + aucDataGM = null; + } + return kReturn; + } + + + + /** + * Creates a new GraphicsImage for the input ModelSimpleImage. The ModelSimpleImage data is + * referenced by the new GraphicsImage and will be passed to the GPU as a texture. + * @param kImage input ModelSimpleImage. + * @param kImageName name for the GraphicsImage. + * @return a new GraphcisImage. + */ + public static GraphicsImage UpdateData(final ModelSimpleImage kImage, final String kImageName) { + final GraphicsImage.FormatMode eType = GraphicsImage.FormatMode.IT_L32F; + + if (kImage.nDims == 3) { + return new GraphicsImage(eType, kImage.extents[0], kImage.extents[1], kImage.extents[2], kImage.data, + kImageName); + } + return new GraphicsImage(eType, kImage.extents[0], kImage.extents[1], 1, kImage.data, kImageName); + } + + /** + * When the LUT changes, this function updates the LUT data on the GPU. + * + * @param kColorTexture the color-map Texture object. + * @param kColorMap the color-map GraphicsImage object (stores data). + * @param kLUT the updated or new LUT. + */ + public static void UpdateImages(final Texture kColorTexture, final GraphicsImage kColorMap, final ModelLUT kLUT) { + if (kLUT == null) { + return; + } + ModelLUT.exportIndexedLUTMin(kLUT, kColorMap.GetData()); + kColorTexture.Reload(true); + } + + /** + * When the ModelImage data is rendered as a solid surface, the Normal map is used in the rendering. + * The Normal map is calculated on the GPU by one of the GLSL shader programs. This function is called + * after the GPU calculation has finished and the GPU data has been copied into a new ModelImage on the CPU + * the new ModelImage then contains the Normal map information, which is written into a file and + * copied into the Normal map GraphicsImage used to render the original ModelImage. + * + * @param i current 3D sub-image for 4D data. If the data is 3D this value should be 0. + * @param kImage a new ModelImage containing the calculated Normals. + */ + public void CopyNormalFiles(final int i, final ModelImage kImage) { + final String kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), "_Normal_" + + i); + JDialogBase.updateFileInfo( m_kImage, kImage ); + ModelImage.saveImage( kImage, kImageName + ".xml", m_kDir, false ); + if ( m_kImage.isColorImage() ) + { + m_kNormal[i] = initVolumeData(kImage, 0, m_kNormalMapTarget, kImage.getImageName(), true, true); + } + else + { + addNormals(kImage, i); + } + } + + /** + * Read the current Volume Texture from the GPU and return a new ModelImage of that data. + * + * @return new ModelImage from Volume Texture on GPU. + */ + public static ModelImage CreateImageFromTexture(final GraphicsImage kImage) { + final int[] extents = new int[ kImage.GetDimension() ]; + for ( int i = 0; i < extents.length; i++ ) + { + extents[i] = kImage.GetBound(i); + } + + //GraphicsImage.Type eType = kImage.GetType(); + int type = ModelStorageBase.ARGB; + /* + switch ( eType ) + { + case IT_BYTE : type = ModelStorageBase.BYTE; break; + case IT_UBYTE : type = ModelStorageBase.UBYTE; break; + case IT_SHORT : type = ModelStorageBase.SHORT; break; + case IT_USHORT : type = ModelStorageBase.USHORT; break; + case IT_INT : type = ModelStorageBase.INTEGER; break; + case IT_UINT : type = ModelStorageBase.UINTEGER; break; + case IT_LONG : type = ModelStorageBase.LONG; break; + case IT_FLOAT : type = ModelStorageBase.FLOAT; break; + case IT_DOUBLE : type = ModelStorageBase.DOUBLE; break; + } + */ + final ModelImage kResult = new ModelImage(type, extents, kImage.GetName() ); + int size = kImage.GetQuantity(); + for ( int i = 0; i < size;i++ ) + { + kResult.set(i*4 + 1, kImage.GetData()[i*3 + 0]); + kResult.set(i*4 + 2, kImage.GetData()[i*3 + 1]); + kResult.set(i*4 + 3, kImage.GetData()[i*3 + 2]); + } + return kResult; + } + + /** + * Memory cleanup. + */ + public void dispose() { + if (m_kImage == null) { + return; + } + m_kImage.disposeLocal(); + m_kImage = null; + + for (final GraphicsImage element : m_kVolume) { + element.dispose(); + } + m_kVolume = null; + m_kVolumeTarget.dispose(); + m_kVolumeTarget = null; + + if ( m_kNormal != null ) + { + for (final GraphicsImage element : m_kNormal) { + element.dispose(); + } + m_kNormal = null; + } + if ( m_kNormalMapTarget != null ) + { + m_kNormalMapTarget.dispose(); + m_kNormalMapTarget = null; + } + + m_kScratchTarget.dispose(); + m_kScratchTarget = null; + + m_kColorMap.dispose(); + m_kColorMap = null; + m_kColorMapTarget.dispose(); + m_kColorMapTarget = null; + + if ( m_kImageGM != null ) + { + m_kImageGM.disposeLocal(); + m_kImageGM = null; + } + + for (final GraphicsImage element : m_kVolumeGM) { + if ( element != null ) + element.dispose(); + } + m_kVolumeGM = null; + m_kVolumeGMTarget.dispose(); + m_kVolumeGMTarget = null; + + + m_kOpacityMap_GM.dispose(); + m_kOpacityMap_GM = null; + m_kOpacityMapTarget_GM.dispose(); + m_kOpacityMapTarget_GM = null; + + if (m_kSurfaceImage != null) { + m_kSurfaceImage.dispose(); + m_kSurfaceImage = null; + m_kSurfaceTarget.dispose(); + m_kSurfaceTarget = null; + } + + m_kLUT = null; + m_kPostfix = null; + if ( m_kHisto != null ) + { + for (final GraphicsImage element : m_kHisto) { + if ( element != null ) + { + element.dispose(); + } + } + m_kHisto = null; + } + m_akHistoTCoord = null; + } + + + /** + * This function is called when the user selects the Surface or Composite Surface volume rendering option. + * If the normals have already been initialized the function returns. Otherwise the function checks if the + * normals are available in a file on disk, and if so if they match the parameters (size, units, resolutions) of + * the original ModelImage. If the files match they are used and the Normal map is read from file. Otherwise this + * function launches the GPU-based Normal calculation. That calculation when finished calls the CopyNormalFiles + * which writes the calculated normals to disk and updates the Normal map on the GPU for rendering. + */ + public void GenerateNormalFiles( VolumeTriPlanarInterface parentFrame ) { + if ( m_bNormalsInit ) + { + return; + } + if ( !m_bNormalsInit ) + { + int dimX = m_kImage.getExtents().length > 0 ? m_kImage.getExtents()[0] : 1; + int dimY = m_kImage.getExtents().length > 1 ? m_kImage.getExtents()[1] : 1; + int dimZ = m_kImage.getExtents().length > 2 ? m_kImage.getExtents()[2] : 1; + ModelImage outputImage = new ModelImage( ModelStorageBase.ARGB_FLOAT, new int[]{dimX,dimY,dimZ}, "temp" ); + for (int i = 0; i < m_iTimeSteps; i++) { + OpenCLAlgorithmVolumeNormals oclNormals = new OpenCLAlgorithmVolumeNormals( m_kImage, outputImage, CL.CL_DEVICE_TYPE_GPU ); + oclNormals.setTime(i); + oclNormals.run(); + if ( m_kImage.isColorImage() ) + { + m_kNormal[i] = initVolumeData(outputImage, 0, m_kNormalMapTarget, outputImage.getImageName(), true, true); + } + else + { + addNormals(outputImage, i); + } + } + m_bNormalsInit = true; + + if ( m_kNormal != null) + { + m_kNormalMapTarget.SetImage(m_kNormal[m_iTimeSlice]); + m_kNormalMapTarget.Reload(true); + } + outputImage.disposeLocal(); + } + } + + /** + * Return the Color Map Texture. + * @return Volume color map Texture. + */ + public Texture GetColorMapTarget() { + return m_kColorMapTarget; + } + + /** + * Return the normalization factor for DDR rendering mode. + * @return normalization factor for DDR rendering mode. + */ + public float getDRRNorm() { + return m_fDRRNormalize; + } + + /** + * Return the Gradient Magnitude Texture. + * @return Gradient Magnitude Texture. + */ + public Texture GetGradientMapTarget() { + return m_kVolumeGMTarget; + } + + /** + * Returns true if the multi-histogram histogram texture has been initialized, false otherwise. + * @return true if the multi-histogram histogram texture has been initialized, false otherwise. + */ + public boolean isHistoInit() + { + return m_bHistoInit; + } + + /** + * Returns the multi-histogram histogram Texture. + * @return the multi-histogram histogram Texture. + */ + public Texture GetHistoTarget() { + return m_kHistoTarget; + } + + +// private ModelImage[] m_akHistogram; +// public ModelImage GetHistogram() { +// +// if ( !m_bHistoInit ) +// { +// SetGradientMagnitude(null, true, m_kPostfix); +// } +// if ( m_akHistogram == null ) +// { +// m_akHistogram = new ModelImage[m_akImages.length]; +// } +// if ( m_akHistogram[m_iTimeSlice] == null ) +// { +// m_akHistogram[m_iTimeSlice] = new ModelImage(ModelStorageBase.INTEGER, new int[]{256,256}, "JointHisto" + m_iTimeSlice); +// try { +// m_akHistogram[m_iTimeSlice].importData(m_kHisto[m_iTimeSlice].GetData()); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// return m_akHistogram[m_iTimeSlice]; +// } + + /** + * Return the texture coordinates for the multi-histogram histogram texture. + * @return the texture coordinates for the multi-histogram histogram texture. + */ + public Vector2f[] GetHistoTCoords() { + return m_akHistoTCoord; + } + + public ModelImage GetGradientMagnitudeImage() + { + return m_kImageGM; + } + + public Vector2f GetGradientMagnitudeMinMax() + { + return m_akGradientMagMinMax[m_iTimeSlice]; + } + + public float GetGradientMagnitudeMin() + { + return m_akGradientMagMinMax[m_iTimeSlice].X; + } + + public float GetGradientMagnitudeMax() + { + return m_akGradientMagMinMax[m_iTimeSlice].Y; + } + + /** + * Return the ModelImage volume data. + * @return ModelImage volume data. + */ + public ModelImage GetImage() { + return m_kImage; + } + + /** + * Return the ModelImage LUT. + * @return Volume LUT. + */ + public ModelLUT GetLUT() { + return m_kLUT; + } + + /** + * Return the Normal map Texture. + * @return Normal map Texture. + */ + public Texture GetNormalMapTarget() { + return m_kNormalMapTarget; + } + + public Texture GetScratchTarget() { + return m_kScratchTarget; + } + + /** + * Return the gradient magnitude opacity transfer function Texture. + * @return gradient magnitude opacity transfer function Texture. + */ + public Texture GetOpacityMapGMTarget() { + return m_kOpacityMapTarget_GM; + } + + /** + * Return the postfix for this VolumeImage. + * @return postfix for this VolumeImage. + */ + public String GetPostfix() { + return m_kPostfix; + } + + /** + * Return the Volume RGBT. + * @return Volume RGBT. + */ + public ModelStorageBase getLUT() { + return (m_kImage != null ) ? m_kImage.isColorImage() ? m_kRGBT : m_kLUT : null; + } + + /** + * Return the Volume RGBT. + * @return Volume RGBT. + */ + public ModelRGB GetRGB() { + return m_kRGBT; + } + + public float GetTransferedValue( int x, int y, int z ) + { + int dimX = m_kImage.getExtents().length > 0 ? m_kImage.getExtents()[0] : 1; + int dimY = m_kImage.getExtents().length > 1 ? m_kImage.getExtents()[1] : 1; + int dimZ = m_kImage.getExtents().length > 2 ? m_kImage.getExtents()[2] : 1; + if ( x < 0 || x >= dimX || y < 0 || y >= dimY || z < 0 || z >= dimZ ) return -1; + + if ( m_kImage.isColorImage() ) { + float r = m_kRGBT.getROn() ? TransferValue(m_kImage.getFloat(x, y, z, 1)) : -1; + float g = m_kRGBT.getGOn() ? TransferValue(m_kImage.getFloat(x, y, z, 2)) : -1; + float b = m_kRGBT.getBOn() ? TransferValue(m_kImage.getFloat(x, y, z, 3)) : -1; + return Math.max( r, Math.max(g, b)); + } + float value = m_kImage.getFloat(x, y, z); + return TransferValue(value); + } + + private float TransferValue(float value) { + float min = (float) m_kImage.getMin(); + float max = (float) m_kImage.getMax(); + float diff = max - min; + byte index = 0; + if ( (diff > 1) && (diff <= 255) ) + { + index = (byte)(((value - min)/diff) * diff); + } + else + { + index = (byte)(((value - min)/diff) * 255); + } + if ( (index >= 0) && (index < 255) && (m_kColorMap != null) && (m_kColorMap.GetData() != null) ) + { + byte r = m_kColorMap.GetData()[index * 4 + 0]; + byte g = m_kColorMap.GetData()[index * 4 + 1]; + byte b = m_kColorMap.GetData()[index * 4 + 2]; + byte a = m_kColorMap.GetData()[index * 4 + 3]; + return Math.max(r*a, Math.max(g*a, b*a)); + } + return -1; + } + + + /** + * The ModelImage Volume max-scale factor. + * @return Volume max-scale factor. + */ + public float GetScaleMax() { + return m_fMax; + } + + public int GetMaxExtent() + { + return m_iMaxExtent; + } + + /** + * The ModelImage Volume x-scale factor. + * @return Volume x-scale factor. + */ + public float GetScaleX() { + return m_fX; + } + + /** + * The ModelImage Volume y-scale factor. + * @return Volume y-scale factor. + */ + public float GetScaleY() { + return m_fY; + } + + /** + * The ModelImage Volume z-scale factor. + * @return Volume z-scale factor. + */ + public float GetScaleZ() { + return m_fZ; + } + + /** + * Return the surface mask Texture. + * @return surface mask Texture. + */ + public Texture GetSurfaceTarget() { + return m_kSurfaceTarget; + } + + + + /** A vector of BitSet masks, one for each surface loaded into the viewer. */ + protected Vector surfaceMask; + /** A vector of the mask names, so they can be accessed by name: */ + protected Vector surfaceNames; + /** A vector of BitSet masks, one for each surface loaded into the viewer. */ + protected Vector surfaceColor; + /** + * Add a new surface mask. + * @param name surface name. + * @param mask surface mask volume. + */ + public void setSurfaceMask(String name, ColorRGB color, BitSet mask) + { + if ( surfaceMask == null ) + { + surfaceMask = new Vector(); + surfaceNames = new Vector(); + surfaceColor = new Vector(); + } + surfaceMask.add(mask); + surfaceNames.add(name); + surfaceColor.add(color); + updateMask(); + } + + private void updateMask() + { + boolean bUpdate = false; + final int iXBound = m_kImage.getExtents()[0]; + final int iYBound = m_kImage.getExtents()[1]; + final int iZBound = m_kImage.getExtents()[2]; + int length = iXBound * iYBound * iZBound; + for ( int i = 0; i < length; i++ ) + { + boolean color = false; + for ( int surface = 0; surface < surfaceMask.size(); surface++ ) + { + if ( surfaceMask.elementAt(surface).get(i) ) + { + m_kSurfaceImage.GetData()[i * 4 + 0] = (byte) (surfaceColor.elementAt(surface).R * 255); + m_kSurfaceImage.GetData()[i * 4 + 1] = (byte) (surfaceColor.elementAt(surface).G * 255); + m_kSurfaceImage.GetData()[i * 4 + 2] = (byte) (surfaceColor.elementAt(surface).B * 255); + m_kSurfaceImage.GetData()[i * 4 + 3] = (byte) (255); + bUpdate = true; + color = true; + } + } + if ( !color ) + { + m_kSurfaceImage.GetData()[i * 4 + 0] = (byte) (0); + m_kSurfaceImage.GetData()[i * 4 + 1] = (byte) (0); + m_kSurfaceImage.GetData()[i * 4 + 2] = (byte) (0); + m_kSurfaceImage.GetData()[i * 4 + 3] = (byte) (0); + } + } + if ( bUpdate ) + { + m_kSurfaceTarget.Reload(true); + } + } + + /** + * Delete the surface mask, using the name of the mask as reference. + * @param name the surface name. + */ + public void removeSurfaceMask(String name) + { + boolean bUpdate = false; + if ( surfaceMask != null && surfaceNames != null) + { + if ( surfaceNames.contains(name) ) + { + surfaceMask.remove( surfaceNames.indexOf(name) ); + surfaceColor.remove( surfaceNames.indexOf(name) ); + surfaceNames.remove(name); + bUpdate = true; + } + } + if ( bUpdate ) + { + updateMask(); + m_kSurfaceTarget.Reload(true); + } + } + + /** + * Delete the surface mask, using the name of the mask as reference. + * @param name the surface name. + */ + public void setSurfaceMaskColor(String name, ColorRGB color) + { + boolean bUpdate = false; + if ( surfaceMask != null && surfaceNames != null) + { + if ( surfaceNames.contains(name) ) + { + surfaceColor.elementAt( surfaceNames.indexOf(name) ).Copy(color); + bUpdate = true; + } + } + if ( bUpdate ) + { + updateMask(); + } + } + + + /** + * Returns the current rendered time-slice for 4D images. Otherwise returns 0. + * @return the current rendered time-slice for 4D images. Otherwise returns 0. + */ + public int GetTimeSlice() { + return m_iTimeSlice; + } + + /** + * Return the Texture containing the volume data. + * @return Texture containing the volume data. + */ + public Texture GetVolumeTarget() { + return m_kVolumeTarget; + } + + /** + * Return the Buffer containing the volume data, which is stored in the Texture GrapicsImage. + * @return Buffer containing the volume data. + */ + public Buffer GetVolumeTargetBuffer() { + return m_kVolumeTarget.GetImage().GetDataBuffer(); + } + + /** + * Initialize the GraphicsImage for the opacity lookup table. + * + * @param kImage the ModelImage the opacity transfer function applies to. + * @param kPostfix the string postfix to concatenate to the "OpacityMap" image name. + * @return GraphicsImage, the new GraphicsImage storing opacity lookup table. + */ + public GraphicsImage InitOpacityMap(final ModelImage kImage, final String kPostFix) { + final int iLutHeight = 256; + final float[] afData = new float[iLutHeight]; + final float fRange = (float) (kImage.getMax() - kImage.getMin()); + final float fStep = fRange / iLutHeight; + float fDataValue = (float) kImage.getMin(); + for (int i = 0; i < iLutHeight; i++) { + afData[i] = (float) (iLutHeight * (kImage.getMax() - fDataValue) / fRange); + fDataValue += fStep; + } + + return new GraphicsImage(GraphicsImage.FormatMode.IT_L8, iLutHeight, afData, + new String("OpacityMap" + kPostFix)); + } + + /** + * Return true if the Volume image is a color image. + * + * @return true if the Volume image is a color image. + */ + public boolean IsColorImage() { + return m_kImage.isColorImage(); + } + + /** + * Release the Textures containing the volume data. Once Textures are released, they will be re-loaded onto the GPU + * during the next frame. + */ + public void ReleaseVolume() { + m_kVolumeTarget.Reload(true); + } + + + + /** + * Called when the user selects the Gradient Magnitude option or the Multi-Histogram option + * in the Volume Renderer. + * @param kGradientMagnitude pre-computed GradientMagnitude image or null + * @param bComputeLaplace when true the Laplace image and multi-histogram histogram Textures are computed. + * @param kPostfix GraphicsImage postfix string. + */ + public void SetGradientMagnitude(ModelImage kGradientMagnitude, boolean bComputeLaplace, String kPostfix ) + { + int start = 0; + int end = m_kImage.getNDims() > 3 ? m_iTimeSteps : 1; + if ( !m_bGMInit ) + { + try { + // System.err.println( "SetGradientMagnitude " + 0 ); + m_kImageGM = getGradientMagnitude( m_kImage, 0 ); + if ( m_kImageGM != null ) + { + m_kVolumeGM[0] = createGM_Laplace(m_kImageGM, null, m_kVolumeGM[0], 0, true); + if ( m_kVolumeGM[0] != null ) + { + m_akGradientMagMinMax[0] = new Vector2f( (float)m_kImageGM.getMin(), (float)m_kImageGM.getMax() ); + m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); + m_kVolumeGMTarget.Reload(true); + m_bGMInit = true; + } + } + for (int i = 1; i < m_iTimeSteps; i++) + { + // System.err.println( "SetGradientMagnitude " + i ); + ModelImage gmImage = getGradientMagnitude( m_kImage, i ); + if ( gmImage != null ) + { + m_kVolumeGM[i] = createGM_Laplace(gmImage, null, m_kVolumeGM[i], i, true); + if ( m_kVolumeGM[i] != null ) + { + m_akGradientMagMinMax[i] = new Vector2f( (float)gmImage.getMin(), (float)gmImage.getMax() ); + gmImage.disposeLocal(); + end = i + 1; + } + } + } + } catch ( java.lang.OutOfMemoryError e ) {} + } + + if ( m_bGMInit && bComputeLaplace && (m_kImageGM != null)) + { + GenerateHistogram(m_kVolume, m_kVolumeGM, kPostfix, start, end ); + } + } + + /** + * Sets the ModelRGB for the iImage. + * + * @param kRGBT new ModelRGB + */ + public void SetRGBT(final ModelRGB kRGBT) { + if (kRGBT == null) { + return; + } + ModelLUT.exportIndexedLUTMin(kRGBT, m_kColorMap.GetData()); + m_kColorMapTarget.Reload(true); + m_kRGBT = kRGBT; + } + + /** + * Sets the time slices for 4D data. + * @param iSlice new time slice value. + */ + public void SetTimeSlice(final int iSlice) { + if (m_iTimeSlice != iSlice) { + m_iTimeSlice = iSlice; + update4D(); + } + } + + /** + * Updates the current time slice. + * @param bForward when true the time advances on step forward or wraps to the beginning. + * When false the time moves backward. + */ + public void update4D(final boolean bForward) { + if (m_iTimeSteps == 1) { + return; + } + if (bForward) { + m_iTimeSlice++; + } else { + m_iTimeSlice--; + } + if (m_iTimeSlice >= m_iTimeSteps) { + m_iTimeSlice = 0; + } + if (m_iTimeSlice < 0) { + m_iTimeSlice = m_iTimeSteps - 1; + } + + update4D(); + } + + /** + * Update the image data. + * + * @param kImage the modified ModelImage + * @param bCopytoCPU when true the data is copied from the GPU GraphicsImage into the ModelImage + */ + public void UpdateData(final ModelImage kImage, boolean reload) { + m_kImage = kImage; + if ( m_kVolume == null ) { + m_kPostfix = ""; + init(null, 0, false); + return; + } + initLUT(); + if ( reload ) + { + if ( m_kVolume[m_iTimeSlice] != null ) + { + m_kVolume[m_iTimeSlice].dispose(); + } + m_kVolumeTarget.Remove(); + m_kVolume[m_iTimeSlice] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); + m_kVolumeTarget.SetImage(m_kVolume[m_iTimeSlice]); + } + else + { + m_kVolume[m_iTimeSlice] = resetVolumeData(m_kImage, m_iTimeSlice, m_kVolume[m_iTimeSlice], m_kVolumeTarget, m_kImage + .getImageName(), true, false); + } + InitScale(); + } + + + /** + * Changes the underlying image data and LUT. If the new image data is a different size than + * then previous one, recreate the volume image on the GPU, otherwise just overwrite it with + * the new data. + * @param kImage + * @param kLUT + * @param reload + */ + public void UpdateData(final ModelImage kImage, ModelLUT kLUT, boolean reload) { + if ( kLUT == null && !kImage.isColorImage()) + { + UpdateData(kImage, reload); + return; + } + m_kImage = kImage; + m_kLUT = kLUT; + if ( reload ) + { + if ( m_kVolume[m_iTimeSlice] != null ) + { + m_kVolume[m_iTimeSlice].dispose(); + } + m_kVolumeTarget.Remove(); + m_kVolume[m_iTimeSlice] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); + m_kVolumeTarget.SetImage(m_kVolume[m_iTimeSlice]); + } + else + { + m_kVolume[m_iTimeSlice] = resetVolumeData(m_kImage, m_iTimeSlice, m_kVolume[m_iTimeSlice], m_kVolumeTarget, m_kImage + .getImageName(), true, false); + } + InitScale(); + } + + /** + * Update the LUT for the ModelImage. + * + * @param kLUT new LUT for ModelImage. + */ + public void UpdateImages(final ModelLUT kLUT) { + if (kLUT != null) { + VolumeImage.UpdateImages(m_kColorMapTarget, m_kColorMap, kLUT); + m_kLUT = kLUT; + } + } + + /** + * Update the LUT for the ModelImage. + * + * @param kLUT new LUT for ModelImage. + */ + public void UpdateImages(final ModelStorageBase kLUT) { + if ( (kLUT != null) && (kLUT instanceof ModelLUT)) { + VolumeImage.UpdateImages(m_kColorMapTarget, m_kColorMap, (ModelLUT)kLUT); + m_kLUT = (ModelLUT)kLUT; +// System.err.println("UpdateImages " + m_kColorMapTarget.GetName() + " " + kLUT. +// System.err.println(" " + m_kColorMapTarget.GetID() ); + + } + if ( (kLUT != null) && (kLUT instanceof ModelRGB)) { + ModelLUT.exportIndexedLUTMin((ModelRGB)kLUT, m_kColorMap.GetData()); + m_kColorMapTarget.Reload(true); + m_kRGBT = (ModelRGB)kLUT; + } + } + + /** + * Update the transfer function for the image iImage. + * + * @param kTransfer the new opacity transfer function + * @param iImage the image to modify (0 = volume image, 2 = gradient mag) + * @param kImage GradientMagitude image. + * @return boolean true when updated, false otherwise. + */ + public boolean UpdateImages(final TransferFunction kTransfer, final int iImage, final ModelImage kImage) { + if (iImage == 0) { + return UpdateImages2(m_kImage, m_kColorMapTarget, m_kColorMap, kTransfer); + } else if ( (iImage == 2) && (kImage != null) && (m_kOpacityMapTarget_GM != null) && (m_kOpacityMap_GM != null)) { + return UpdateImages(kImage, m_kOpacityMapTarget_GM, m_kOpacityMap_GM, kTransfer); + } + return false; + } + + /** + * In order to map line integrals of image intensity to RGB colors where each color channel is 8 bits, it is + * necessary to make sure that the integrals are in [0,255]. Producing a theoretical maximum value of a line + * integral is not tractable in an application. This method constructs an approximate maximum by integrating along + * each line of voxels in the image with line directions parallel to the coordinate axes. The 'processRay' call + * adjusts the line integrals using the estimate, but still clamps the integrals to 255 since the estimate might not + * be the true maximum. + * + * @return float Integral normalization factor. + */ + protected float computeIntegralNormalizationFactor() { + final int iXBound = m_kImage.getExtents()[0]; + final int iYBound = m_kImage.getExtents()[1]; + final int iZBound = m_kImage.getExtents()[2]; + + byte[] aucData = null; + int iSize = iXBound * iYBound * iZBound; + if (m_kImage.isColorImage()) { + iSize *= 4; + } + + aucData = new byte[iSize]; + + try { + m_kImage.exportDataUseMask(0, iSize, false, aucData); + } catch (final IOException e) { + e.printStackTrace(); + } + + // compute image normalization factor + int iX, iY, iZ, iBase, iSteps; + float fMaxIntegral = 0.0f; + float fTStep, fIntegral; + + // fix y and z, integrate over x + for (iY = 0; iY < iYBound; iY++) { + + for (iZ = 0; iZ < iZBound; iZ++) { + iBase = iXBound * (iY + (iYBound * iZ)); + iSteps = iXBound - 1; + fIntegral = 0.5f * ( (aucData[iBase] & 0x0ff) + (aucData[iBase + iSteps] & 0x0ff)); + fTStep = 1.0f / iSteps; + + for (iX = 1; iX < iSteps; iX++) { + fIntegral += (aucData[iBase + iX] & 0x0ff); + } + + fIntegral *= fTStep; + + if (fIntegral > fMaxIntegral) { + fMaxIntegral = fIntegral; + } + } + } + final int iXYProduct = iXBound * iYBound; + // fix x and z, integrate over y + for (iX = 0; iX < iXBound; iX++) { + + for (iZ = 0; iZ < iZBound; iZ++) { + iBase = iX + (iXYProduct * iZ); + iSteps = iYBound - 1; + fIntegral = 0.5f * ( (aucData[iBase] & 0x0ff) + (aucData[iBase + (iXBound * iSteps)] & 0x0ff)); + fTStep = 1.0f / iSteps; + + for (iY = 1; iY < iSteps; iY++) { + fIntegral += (aucData[iBase + (iXBound * iY)] & 0x0ff); + } + + fIntegral *= fTStep; + + if (fIntegral > fMaxIntegral) { + fMaxIntegral = fIntegral; + } + } + } + + // fix x and y, integrate over z + for (iX = 0; iX < iXBound; iX++) { + + for (iY = 0; iY < iYBound; iY++) { + iBase = iX + (iXBound * iY); + iSteps = iZBound - 1; + fIntegral = 0.5f * ( (aucData[iBase] & 0x0ff) + (aucData[iBase + (iXYProduct * iSteps)] & 0x0ff)); + fTStep = 1.0f / iSteps; + + for (iZ = 1; iZ < iSteps; iZ++) { + fIntegral += (aucData[iBase + (iXYProduct * iZ)] & 0x0ff); + } + + fIntegral *= fTStep; + + if (fIntegral > fMaxIntegral) { + fMaxIntegral = fIntegral; + } + } + } + aucData = null; + return (fMaxIntegral > 0.0f) ? (1.0f / fMaxIntegral) : 0.00f; + } + + /** + * Checks that the two input images match extents, units of measure and resolutions. The images + * may had different sizes (3D or 4D) the first 3-dimensions must match. + * @param kImage1 + * @param kImage2 + * @return true if the images match extends, units and resolutions. + */ + public static boolean checkImage(ModelImage kImage1, ModelImage kImage2 ) + { + for ( int i = 0; i < Math.min( kImage1.getExtents().length, kImage2.getExtents().length ); i++ ) + { + if ( kImage1.getExtents()[i] != kImage2.getExtents()[i] ) + { + return false; + } + if ( kImage1.getUnitsOfMeasure()[i] != kImage2.getUnitsOfMeasure()[i] ) + { + return false; + } + if ( kImage1.getResolutions(0)[i] != kImage2.getResolutions(0)[i] ) + { + return false; + } + } + return true; + } + + /** + * Generate 2D histogram from the input image and the gradient-magnitude + * + * @param kImage input GraphicsImage containing the ModelImage data + * @param kImageGM input GraphcisImage containing the Gradient Magnitude data. + * @param kPostFix post-fix for the image name. + */ + private void GenerateHistogram(final GraphicsImage[] kImage, final GraphicsImage[] kImageGM, final String kPostFix, + int start, int end ) + { + int iTMinX = 255, iTMaxX = 0; + int iTMinY = 255, iTMaxY = 0; + float max = Float.MIN_VALUE; + float min = Float.MAX_VALUE; + m_kHisto = new GraphicsImage[m_iTimeSteps]; + for (int t = start; t < end; t++) { + float[] afCount = new float[256 * 256]; + for (int i = 0; i < 256 * 256; i++) { + afCount[i] = 0; + } + + int a1; + int a2; + final byte[] abHistoData = kImageGM[t].GetData(); + final byte[] abData = kImage[t].GetData(); + if (m_kImage.isColorImage()) { + int iHisto = 0; + for (int i = 0; i < abData.length; i += 4) { + int iR = (abData[i]); + int iG = (abData[i + 1]); + int iB = (abData[i + 2]); + //a1 = (iR * 0.299 + iG * 0.587 + iB * 0.114); + a1 = (iR + iG + iB)/3; + a1 = (a1 & 0x00ff); + + iR = (abHistoData[i]); + iG = (abHistoData[i + 1]); + iB = (abHistoData[i + 2]); + //a2 = (short) (iR * 0.299 + iG * 0.587 + iB * 0.114); + a2 = (iR + iG + iB)/3; + a2 = (a2 & 0x00ff); + afCount[a1 + a2 * 256] += 1; + iHisto++; + } + } + else { + int iHisto = 0; + for (int i = 0; i < abData.length; i += 4) { + a1 = abData[i]; + a1 = (a1 & 0x00ff); + a2 = (abHistoData[iHisto]); + a2 = (a2 & 0x00ff); + afCount[a1 + a2 * 256] += 1; + iHisto += 4; + } + } + max = Float.MIN_VALUE; + min = Float.MAX_VALUE; + for (int i = 0; i < 256 * 256; ++i) { + afCount[i] = (float) Math.log(afCount[i]+1); + max = Math.max(afCount[i], max); + min = Math.min(afCount[i], min); + } + //System.err.println( min + " " + max ); + final byte[] abHisto = new byte[256 * 256]; + //int maxB = Integer.MIN_VALUE; + //int minB = Integer.MAX_VALUE; + for (int i = 0; i < 256 * 256; ++i) { + abHisto[i] = new Float((afCount[i] / max) * 255f).byteValue(); + //maxB = ( iVal > maxB ) ? iVal : maxB; + //minB = ( iVal < minB ) ? iVal : minB; + } + afCount = null; + + int iMinX = 255, iMaxX = 0; + int iIndex = 0; + for (int i = 0; i < 256; i++) { + for (int j = 0; j < 256; j++) { + iIndex = i * 256 + j; + if (abHisto[iIndex] > 50) { + if (iMinX > j) { + iMinX = j; + } + if (j > iMaxX) { + iMaxX = j; + } + } + } + } + + int iMinY = 255, iMaxY = 0; + for (int j = 0; j < 256; j++) { + for (int i = 0; i < 256; i++) { + iIndex = i * 256 + j; + if (abHisto[iIndex] > 50) { + if (iMinY > i) { + iMinY = i; + } + if (i > iMaxY) { + iMaxY = i; + } + } + } + } + if (iTMinX > iMinX) { + iTMinX = iMinX; + } + if (iTMaxX < iMaxX) { + iTMaxX = iMaxX; + } + + if (iTMinY > iMinY) { + iTMinY = iMinY; + } + if (iTMaxY < iMaxY) { + iTMaxY = iMaxY; + } + + // iMinX = 0; iMaxX = 255; + // iMinY = 0; iMaxY = 255; + + m_kHisto[t] = new GraphicsImage(GraphicsImage.FormatMode.IT_L8, 256, 256, (byte[]) null, new String( + "VolumeImageHisto" + kPostFix)); + m_kHisto[t].SetData(abHisto, 256, 256); + /* + ModelImage kTestHisto2D = new ModelImage( ModelStorageBase.UBYTE, new int[]{256,256}, "Histo2D" ); + try { + kTestHisto2D.importData(abHisto); + } catch (IOException e) { + e.printStackTrace(); + } + kTestHisto2D.calcMinMax(); + new ViewJFrameImage( kTestHisto2D ); */ + } + + m_kHistoTarget = new Texture(); + m_kHistoTarget.SetImage(m_kHisto[0]); + m_kHistoTarget.SetShared(true); + m_kHistoTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kHistoTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kHistoTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kHistoTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + iTMinX = 0; + iTMaxX = Math.max( iTMaxX, iTMaxY ); + m_akHistoTCoord = new Vector2f[4]; + m_akHistoTCoord[0] = new Vector2f(iTMinX / 255.0f, iTMinX / 255.0f); + m_akHistoTCoord[1] = new Vector2f(iTMaxX / 255.0f, iTMinX / 255.0f); + m_akHistoTCoord[2] = new Vector2f(iTMaxX / 255.0f, iTMaxX / 255.0f); + m_akHistoTCoord[3] = new Vector2f(iTMinX / 255.0f, iTMaxX / 255.0f); + //m_akHistoTCoord[0] = new Vector2f(0f, 0f); + //m_akHistoTCoord[1] = new Vector2f(1f, 0f); + //m_akHistoTCoord[2] = new Vector2f(1f, 1f); + //m_akHistoTCoord[3] = new Vector2f(0f, 1f); + m_bHistoInit = true; + } + + /** + * Calculates and stores the gradient magnitude images (3D or 4D) for the input image. Or reads from disk. + * The data is stored in the GraphicsImage data structures and will be passed to the GPU to use in rendering. + * + * @param kImage input image + * @param kGradientMagnitude input Gradient Magnitude image, or null. + * @param bComputeLaplace when true the Laplace image is also calculated or read from dis. + private void GradientMagnitudeImage(final ModelImage kImage, ModelImage kGradientMagnitude, + boolean bComputeLaplace) { + + + if ( !m_bGMInit ) + { + ModelImage[] kImageGM = new ModelImage[m_iTimeSteps]; + String[] kImageName = new String[m_iTimeSteps]; + for (int i = 0; i < m_iTimeSteps; i++) { + kImageName[i] = ModelImage.makeImageName(kImage.getFileInfo(0).getFileName(), new String("_GM_" + i)); + + if ( kGradientMagnitude != null && checkImage(kImage, kGradientMagnitude )) + { + m_kVolumeGM[i] = VolumeImage.UpdateData(kGradientMagnitude, i, null, m_kVolumeGM[i], + m_kVolumeGMTarget, m_kVolumeGM[i].GetName(), true, false); + ModelImage.saveImage( kGradientMagnitude, kImageName[i] + ".xml", m_kDir ); + } + else + { + kImageGM[i] = ReadFromDisk(kImageName[i] + ".xml", m_kDir); + if ( kImageGM[i] != null && !checkImage(kImage, kImageGM[i] ) ) + { + kImageGM[i].disposeLocal(); + kImageGM[i] = null; + } + if (kImageGM[i] == null) { + JDialogGradientMagnitude kCalcMagnitude = new JDialogGradientMagnitude(null, m_akImages[i]); + kCalcMagnitude.setVisible(false); + kCalcMagnitude.setOutputNewImage(true); + kCalcMagnitude.setDisplayProgressBar(true); + kCalcMagnitude.setSeparateThread(false); + kCalcMagnitude.setSeparable(true); + kCalcMagnitude.setUseOCL(true); + kCalcMagnitude.actionPerformed(new ActionEvent(this, 0, "OK")); + kImageGM[i] = kCalcMagnitude.getResultImage(); + kCalcMagnitude = null; + } + if (kImageGM[i] == null) { + System.err.println("Gradient magnitude calculation returned null"); + m_kVolumeGM[i] = VolumeImage.UpdateData(kImage, i, null, m_kVolumeGM[i], m_kVolumeGMTarget, kImageName[i], true, false); + } else { + kImageGM[i].calcMinMax(); + m_akGradientMagMinMax[i] = new Vector2f( (float)kImageGM[i].getMin(), (float)kImageGM[i].getMax() ); + + if ( !( bComputeLaplace && !m_kImage.isColorImage() ) ) + { + m_kVolumeGM[i] = VolumeImage.UpdateData(kImageGM[i], 0, null, m_kVolumeGM[i], m_kVolumeGMTarget, kImageName[i], true, false); + } + } + } + } + + + if ( bComputeLaplace && !m_kImage.isColorImage() ) + { + for (int i = 0; i < m_iTimeSteps; i++) { + final String kImageNameL = ModelImage.makeImageName(kImage.getFileInfo(0).getFileName(), new String( + "_Laplacian_" + i)); + ModelImage kImageGMGM = null; + kImageGMGM = ReadFromDisk(kImageNameL + ".xml", m_kDir); + if ( kImageGMGM != null && !checkImage(kImage, kImageGMGM ) ) + { + kImageGMGM.disposeLocal(); + kImageGMGM = null; + } + if (kImageGMGM == null) { + final JDialogLaplacian kCalcLaplacian = new JDialogLaplacian(null, m_akImages[i]); + kCalcLaplacian.setVisible(false); + kCalcLaplacian.setOutputNewImage(true); + kCalcLaplacian.setDisplayProgressBar(true); + kCalcLaplacian.setSeparateThread(false); + kCalcLaplacian.setUseOCL(true); + kCalcLaplacian.setSeparable(true); + kCalcLaplacian.actionPerformed(new ActionEvent(this, 0, "OK")); + kImageGMGM = kCalcLaplacian.getResultImage(); + } + if (kImageGMGM != null) { + m_kVolumeGM[i] = createGM_Laplace(kImageGM[i], kImageGMGM, m_kVolumeGM[i], i, true); + } else { + m_kVolumeGM[i] = VolumeImage.UpdateData(kImageGM[i], 0, null, m_kVolumeGM[i], m_kVolumeGMTarget, kImageName[i], true, false); + } + final ViewJFrameImage kImageFrame = ViewUserInterface.getReference().getFrameContainingImage(kImageGMGM); + if (kImageFrame != null) { + kImageFrame.close(); + } else if (kImageGMGM != null) { + kImageGMGM.disposeLocal(); + kImageGMGM = null; + } + } + } + + m_bGMInit = true; + m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); + m_kVolumeGMTarget.Reload(true); + + for ( int i = 0; i < kImageGM.length; i++ ) + { + if (kImageGM[i] != null) { + + kImageGM[i].setImageDirectory( m_kDir ); + kImageGM[i].setImageName( kImageName[i] + ".xml" ); + ModelImage.saveImage(kImageGM[i], kImageName[i] + ".xml", m_kDir ); + + + final ViewJFrameImage kImageFrame = ViewUserInterface.getReference().getFrameContainingImage(kImageGM[i]); + if (kImageFrame != null) { + kImageFrame.close(); + } + + kImageGM[i].disposeLocal(); + kImageGM[i] = null; + } + } + } + } + */ + + public static ModelImage getGradientMagnitude( ModelImage kImage, int i ) + { + if ( kImage == null ) + { + return null; + } + int index = kImage.getExtents()[2] / 2; + float xRes = kImage.getFileInfo(index).getResolutions()[0]; + float zRes = kImage.getFileInfo(index).getResolutions()[2]; + + float correction = xRes / zRes; + float[] sigmas = new float[]{1f,1f,correction}; + + int dimX = kImage.getExtents().length > 0 ? kImage.getExtents()[0] : 1; + int dimY = kImage.getExtents().length > 1 ? kImage.getExtents()[1] : 1; + int dimZ = kImage.getExtents().length > 2 ? kImage.getExtents()[2] : 1; + ModelImage outputImage = new ModelImage( kImage.getDataType(), new int[]{dimX,dimY,dimZ}, "temp" ); + AlgorithmGradientMagnitudeSep gradientMagAlgo = new AlgorithmGradientMagnitudeSep( kImage, sigmas, true, false ); +// OpenCLAlgorithmGradientMagnitude gradientMagAlgo = new OpenCLAlgorithmGradientMagnitude(outputImage, kImage, sigmas, +// true, true, false); + gradientMagAlgo.setRed(true); + gradientMagAlgo.setGreen(true); + gradientMagAlgo.setBlue(true); + gradientMagAlgo.setRunningInSeparateThread(false); + gradientMagAlgo.run(); + float[] resultBuffer = gradientMagAlgo.getResultBuffer(); + try { + outputImage.importData(0, resultBuffer, true); + } catch (IOException e) {} +// gradientMagAlgo.gradientMagnitudeSep3D( i ); + gradientMagAlgo.finalize(); + gradientMagAlgo = null; + return outputImage; + } + + +// private ModelImage getLaplace( ModelImage kImage, int i ) +// { +// String kImageName = ModelImage.makeImageName(kImage.getFileInfo(0).getFileName(), new String("_Laplacian_" + i)); +// ModelImage kImageL = ReadFromDisk(kImageName + ".xml", m_kDir); +// if ( kImageL != null && !checkImage(kImage, kImageL ) ) +// { +// kImageL.disposeLocal(); +// kImageL = null; +// } +// if (kImageL == null) { +// JDialogLaplacian kCalcLaplacian = new JDialogLaplacian(null, m_akImages[i]); +// kCalcLaplacian.setVisible(false); +// kCalcLaplacian.setOutputNewImage(true); +// kCalcLaplacian.setDisplayProgressBar(true); +// kCalcLaplacian.setSeparateThread(false); +// kCalcLaplacian.setUseOCL(true); +// kCalcLaplacian.setSeparable(true); +// kCalcLaplacian.actionPerformed(new ActionEvent(this, 0, "OK")); +// kImageL = kCalcLaplacian.getResultImage(); +// kCalcLaplacian = null; +// +// kImageL.setImageDirectory( m_kDir ); +// kImageL.setImageName( kImageName + ".xml" ); +// JDialogBase.updateFileInfo( kImage, kImageL ); +// ModelImage.saveImage(kImageL, kImageName + ".xml", m_kDir ); +// final ViewJFrameImage kImageFrame = ViewUserInterface.getReference().getFrameContainingImage(kImageL); +// if (kImageFrame != null) { +// kImageFrame.setVisible(false); +// } +// } +// return kImageL; +// } + + /** + * Initialize the VolumeImage with the ModelImage data. + * @param kProgress progress bar + * @param iProgress progress bar increment + */ + private void init(final ViewJProgressBar kProgress, final int iProgress, boolean initGradientMagnitude) { + // Create LUTS for the ModelImage: + initLUT(); + // Initialize Texture Maps: + if ( !m_kImage.isColorImage() ) + { + initImages(); + } + else + { + initImagesColor(); + } + if ( initGradientMagnitude ) + { + SetGradientMagnitude(null, true, m_kPostfix); + } + if (kProgress != null) { + kProgress.updateValueImmed(kProgress.getValue() + iProgress); + } + } + + /** + * Intializes the Textures and GraphicsImages used to render the ModelImage this + * VolumeImage represents. + */ + private void initImages() { + m_fDRRNormalize = computeIntegralNormalizationFactor(); + // Initialize Color Map GraphicsImage: + m_kColorMap = initColorMap(); + // Initialize Opacity Map for the GradientMagnitude image: + m_kOpacityMap_GM = InitOpacityMap(m_kImage, new String(m_kPostfix + "_GM")); + + final int iXBound = m_kImage.getExtents()[0]; + final int iYBound = m_kImage.getExtents()[1]; + final int iZBound = m_kImage.getExtents()[2]; + + /* + * Map the ModelImage volume data to a texture image, including for the ModelImage gradient magnitude data: + */ + final int[] aiExtents = m_kImage.getExtents(); + final int iNDims = aiExtents.length; + String kImageName; + GraphicsImage.FormatMode type = GraphicsImage.FormatMode.IT_RGBA8888 ; + + + if (iNDims == 3) { // ModelImage is 3D: + m_iTimeSteps = 1; + } + else { // ModelImage is 4D: + m_iTimeSteps = aiExtents[3]; + } + // Allocate a 3D GraphicsImage for each 3D Volume + m_kVolume = new GraphicsImage[m_iTimeSteps]; + m_kVolumeGM = new GraphicsImage[m_iTimeSteps]; + m_akGradientMagMinMax = new Vector2f[m_iTimeSteps]; + + final int[] aiSubset = new int[] {aiExtents[0], aiExtents[1], aiExtents[2]}; + + for (int i = 0; i < m_iTimeSteps; i++) { +// System.err.println( "initiImages : " + i ); + if ( m_iTimeSteps > 1 ) + { + // Will generate the ModelImage GraphicsImage representation and separate the 4D ModelImage into + // the 3D Subset image. + m_kVolume[i] = initVolumeData(m_kImage, i, m_kVolumeTarget, m_kImage.getImageName(), true, false); + } + else + { + // Already 3D, just generate the GraphicsImage: + m_kVolume[0] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); + } + + // Allocate GraphcisImage for Gradient Magnitude Texture: + kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), + new String("_GM_" + i)); + m_kVolumeGM[i] = new GraphicsImage(type, iXBound, iYBound, iZBound, + (byte[])null, kImageName); + + } + // Initialize the Gradient Magnitude Texture and set its GraphicsImage: + m_kVolumeGMTarget = new Texture(); + m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); + m_kVolumeGMTarget.SetShared(true); + m_kVolumeGMTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kVolumeGMTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kVolumeGMTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kVolumeGMTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Initialize the ModelImage Texture and set its GraphicsImage: + m_kVolumeTarget = new Texture(); + m_kVolumeTarget.SetImage(m_kVolume[0]); + m_kVolumeTarget.SetShared(true); + m_kVolumeTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kVolumeTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kVolumeTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kVolumeTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Initialize the ColorMap Texture and set its GraphicsImage: + m_kColorMapTarget = new Texture(); + m_kColorMapTarget.SetImage(m_kColorMap); + m_kColorMapTarget.SetShared(true); + + // Initialize the Normal Map Texture and set its GraphicsImage: + m_kScratchTarget = new Texture(); + m_kScratchTarget.SetImage(new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, + (byte[])null, "ScratchBuffer")); + m_kScratchTarget.SetShared(true); + m_kScratchTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kScratchTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kScratchTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kScratchTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Initialize the Opacity Map for the Gradient Magnitude Texture and set its GraphicsImage: + m_kOpacityMapTarget_GM = new Texture(); + m_kOpacityMapTarget_GM.SetImage(m_kOpacityMap_GM); + m_kOpacityMapTarget_GM.SetShared(true); + + // Initialize the Surface Mask Texture and set its GraphicsImage: + m_kSurfaceImage = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, + new byte[4* iXBound * iYBound * iZBound], "SurfaceImage"); + m_kSurfaceTarget = new Texture(); + m_kSurfaceTarget.SetImage(m_kSurfaceImage); + m_kSurfaceTarget.SetShared(true); + m_kSurfaceTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kSurfaceTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kSurfaceTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kSurfaceTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Calculate the scale factors for rendering the volume with a unit cube: + InitScale(); + } + + + private void initImagesColor() { + m_fDRRNormalize = computeIntegralNormalizationFactor(); + // Initialize Color Map GraphicsImage: + m_kColorMap = initColorMap(); + // Initialize Opacity Map for the GradientMagnitude image: + m_kOpacityMap_GM = InitOpacityMap(m_kImage, new String(m_kPostfix + "_GM")); + + final int iXBound = m_kImage.getExtents()[0]; + final int iYBound = m_kImage.getExtents()[1]; + final int iZBound = m_kImage.getExtents()[2]; + + /* + * Map the ModelImage volume data to a texture image, including for the ModelImage gradient magnitude data: + */ + final int[] aiExtents = m_kImage.getExtents(); + final int iNDims = aiExtents.length; + String kImageName; + GraphicsImage.FormatMode type = GraphicsImage.FormatMode.IT_RGBA8888 ; + + + if (iNDims == 3) { // ModelImage is 3D: + m_iTimeSteps = 1; + } + else { // ModelImage is 4D: + m_iTimeSteps = aiExtents[3]; + } + // A 4D ModelImage is separated into the 3D Volumes: +// m_akImages = new ModelImage[m_iTimeSteps]; + // Allocate a 3D GraphicsImage for each 3D Volume + m_kVolume = new GraphicsImage[m_iTimeSteps]; + m_kVolumeGM = new GraphicsImage[m_iTimeSteps]; + m_kNormal = new GraphicsImage[m_iTimeSteps]; + m_akGradientMagMinMax = new Vector2f[m_iTimeSteps]; + + final int[] aiSubset = new int[] {aiExtents[0], aiExtents[1], aiExtents[2]}; + for (int i = 0; i < m_iTimeSteps; i++) { + + if ( m_iTimeSteps > 1 ) + { + // Will generate the ModelImage GraphicsImage representation and separate the 4D ModelImage into + // the 3D Subset image. +// m_akImages[i] = new ModelImage(m_kImage.getType(), aiSubset, JDialogBase.makeImageName(m_kImage +// .getImageName(), "_" + i)); +// JDialogBase.updateFileInfo( m_kImage, m_akImages[i] ); + m_kVolume[i] = initVolumeData(m_kImage, i, m_kVolumeTarget, m_kImage.getImageName(), true, false); +// m_akImages[i].copyFileTypeInfo(m_kImage); +// m_akImages[i].calcMinMax(); + } + else + { + // Already 3D, just generate the GraphicsImage: +// m_akImages[0] = m_kImage; + m_kVolume[0] = initVolumeData(m_kImage, m_iTimeSlice, m_kVolumeTarget, m_kImage.getImageName(), true, false); + } + // Allocate GraphcisImage for Normal Map Texture: + kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), + new String("_Normal_" + i)); + m_kNormal[i] = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, + (byte[])null, kImageName); + + // Allocate GraphcisImage for Gradient Magnitude Texture: + kImageName = ModelImage.makeImageName(m_kImage.getFileInfo(0).getFileName(), + new String("_GM_" + i)); + m_kVolumeGM[i] = new GraphicsImage(type, iXBound, iYBound, iZBound, + (byte[])null, kImageName); + } + // Initialize the Gradient Magnitude Texture and set its GraphicsImage: + m_kVolumeGMTarget = new Texture(); + m_kVolumeGMTarget.SetImage(m_kVolumeGM[0]); + m_kVolumeGMTarget.SetShared(true); + m_kVolumeGMTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kVolumeGMTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kVolumeGMTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kVolumeGMTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Initialize the ModelImage Texture and set its GraphicsImage: + m_kVolumeTarget = new Texture(); + m_kVolumeTarget.SetImage(m_kVolume[0]); + m_kVolumeTarget.SetShared(true); + m_kVolumeTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kVolumeTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kVolumeTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kVolumeTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Initialize the ColorMap Texture and set its GraphicsImage: + m_kColorMapTarget = new Texture(); + m_kColorMapTarget.SetImage(m_kColorMap); + m_kColorMapTarget.SetShared(true); + + // Initialize the Normal Map Texture and set its GraphicsImage: + m_kNormalMapTarget = new Texture(); + m_kNormalMapTarget.SetImage(m_kNormal[0]); + m_kNormalMapTarget.SetShared(true); + m_kNormalMapTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kNormalMapTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kNormalMapTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kNormalMapTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + + // Initialize the Normal Map Texture and set its GraphicsImage: + m_kScratchTarget = new Texture(); + m_kScratchTarget.SetImage(new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, + (byte[])null, "ScratchBuffer")); + m_kScratchTarget.SetShared(true); + m_kScratchTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kScratchTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kScratchTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kScratchTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Initialize the Opacity Map for the Gradient Magnitude Texture and set its GraphicsImage: + m_kOpacityMapTarget_GM = new Texture(); + m_kOpacityMapTarget_GM.SetImage(m_kOpacityMap_GM); + m_kOpacityMapTarget_GM.SetShared(true); + + // Initialize the Surface Mask Texture and set its GraphicsImage: + m_kSurfaceImage = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, iXBound, iYBound, iZBound, + new byte[4* iXBound * iYBound * iZBound], "SurfaceImage"); + m_kSurfaceTarget = new Texture(); + m_kSurfaceTarget.SetImage(m_kSurfaceImage); + m_kSurfaceTarget.SetShared(true); + m_kSurfaceTarget.SetFilterType(Texture.FilterType.LINEAR); + m_kSurfaceTarget.SetWrapType(0, Texture.WrapType.CLAMP_BORDER); + m_kSurfaceTarget.SetWrapType(1, Texture.WrapType.CLAMP_BORDER); + m_kSurfaceTarget.SetWrapType(2, Texture.WrapType.CLAMP_BORDER); + + // Calculate the scale factors for rendering the volume with a unit cube: + InitScale(); + } + + /** + * Create a new LUT for the input image. + * + * @param kImage ModelImage. + */ + private void initLUT() { + + if (m_kImage.isColorImage()) { + final float[] x = new float[4]; + final float[] y = new float[4]; + final Dimension dim = new Dimension(256, 256); + + // Set ModelRGB min max values; + x[0] = 0; + y[0] = dim.height - 1; + + x[1] = 255 * 0.333f; + y[1] = (dim.height - 1) - ( (dim.height - 1) / 3.0f); + + x[2] = 255 * 0.667f; + y[2] = (dim.height - 1) - ( (dim.height - 1) * 0.67f); + + x[3] = 255; + y[3] = 0; + + final int[] RGBExtents = new int[2]; + RGBExtents[0] = 4; + RGBExtents[1] = 256; + m_kRGBT = new ModelRGB(RGBExtents); + m_kRGBT.getRedFunction().importArrays(x, y, 4); + m_kRGBT.getGreenFunction().importArrays(x, y, 4); + m_kRGBT.getBlueFunction().importArrays(x, y, 4); + m_kRGBT.makeRGB( -1); + } else { + final int[] dimExtentsLUT = new int[2]; + + dimExtentsLUT[0] = 4; + dimExtentsLUT[1] = 256; + + m_kLUT = new ModelLUT(ModelLUT.GRAY, 256, dimExtentsLUT); + + float min, max; + + if (m_kImage.getType() == ModelStorageBase.UBYTE) { + min = 0; + max = 255; + } else if (m_kImage.getType() == ModelStorageBase.BYTE) { + min = -128; + max = 127; + } else { + min = (float) m_kImage.getMin(); + max = (float) m_kImage.getMax(); + } + + final float imgMin = (float) m_kImage.getMin(); + final float imgMax = (float) m_kImage.getMax(); + + m_kLUT.resetTransferLine(min, imgMin, max, imgMax); + } + } + + /** + * Initialize the scale factors. Based on the ModelImage Volume. + */ + private void InitScale() { + + int dimX = m_kImage.getExtents().length > 0 ? m_kImage.getExtents()[0] : 1; + int dimY = m_kImage.getExtents().length > 1 ? m_kImage.getExtents()[1] : 1; + int dimZ = m_kImage.getExtents().length > 2 ? m_kImage.getExtents()[2] : 1; + m_iMaxExtent = Math.max( dimX, Math.max( dimY, dimZ ) ); + + final float fMaxX = (m_kImage.getExtents()[0] - 1) * m_kImage.getFileInfo(0).getResolutions()[0]; + final float fMaxY = (m_kImage.getExtents()[1] - 1) * m_kImage.getFileInfo(0).getResolutions()[1]; + final float fMaxZ = (m_kImage.getExtents()[2] - 1) * m_kImage.getFileInfo(0).getResolutions()[2]; + + m_fMax = fMaxX; + if (fMaxY > m_fMax) { + m_fMax = fMaxY; + } + if (fMaxZ > m_fMax) { + m_fMax = fMaxZ; + } + m_fX = fMaxX / m_fMax; + m_fY = fMaxY / m_fMax; + m_fZ = fMaxZ / m_fMax; + } + + /** + * Reads an image from disk. + * + * @param kImageName image name + * @param kDir directory + * @return ModelImage + */ + private static ModelImage ReadFromDisk(final String kImageName, final String kDir) { + + final File kFile = new File(kDir, kImageName); + if ( !kFile.exists()) { + return null; + } + + final FileIO fileIO = new FileIO(); + return fileIO.readImage( kImageName, kDir ); + //return fileIO.readXML(kImageName + ".xml", kDir, false, false); + } + + private void readObject(final java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { + m_kDir = (String) in.readObject(); + if ( !m_kDir.equals("null")) { + final String kImageName = (String) in.readObject(); + m_kPostfix = (String) in.readObject(); + m_kImage = ReadFromDisk(kImageName, m_kDir); + init(null, 0, true); + } + } + + + /** + * Go to the next 3D volume sub-image for the 4D animation. + * Updates the Textures and causes them to be reloaded onto the GPU. + */ + private void update4D() { + if ( m_kImage == null ) return; + + m_kVolumeTarget.SetImage(m_kVolume[m_iTimeSlice]); + m_kVolumeTarget.Reload(true); + if ( m_bGMInit ) + { + if ( m_kVolumeGM[m_iTimeSlice] == null ) + { + ModelImage gmImage = getGradientMagnitude( m_kImage, m_iTimeSlice ); + m_akGradientMagMinMax[m_iTimeSlice] = new Vector2f( (float)gmImage.getMin(), (float)gmImage.getMax() ); + gmImage.disposeLocal(); + m_kVolumeGMTarget.SetImage(createGM_Laplace(gmImage, null, null, 0, true)); + m_kVolumeGMTarget.Reload(true); + } + else + { + m_kVolumeGMTarget.SetImage(m_kVolumeGM[m_iTimeSlice]); + m_kVolumeGMTarget.Reload(true); + } + } + if ( m_bNormalsInit && m_kImage.isColorImage() ) + { + m_kNormalMapTarget.SetImage(m_kNormal[m_iTimeSlice]); + m_kNormalMapTarget.Reload(true); + } + if ( m_bHistoInit && (m_kHisto[m_iTimeSlice] != null )) + { + m_kHistoTarget.SetImage(m_kHisto[m_iTimeSlice]); + m_kHistoTarget.Reload(true); + } + + m_kImage.setTimeSlice(m_iTimeSlice); + } + + /** + * Called when the opacity transfer function changes. This function updates the Texture + * and causes the data to be reloaded onto the GPU. + * + * @param kImage the ModelImage the transfer function applies to. + * @param kOpacityTexture the opacity Texture passed to the GPU + * @param kOpacityMap the opacity data stored in the GraphicsImage + * @param kTransfer the new transfer function. + */ + private boolean UpdateImages(final ModelImage kImage, final Texture kOpacityTexture, + final GraphicsImage kOpacityMap, final TransferFunction kTransfer) { + final int iLutHeight = 256; + final float[] afData = kOpacityMap.GetFloatData(); + + final float fRange = (float) (kImage.getMax() - kImage.getMin()); + final float fStep = fRange / iLutHeight; + float fDataValue = (float) kImage.getMin(); + for (int i = 0; i < iLutHeight; i++) { + afData[i] = (kTransfer.getRemappedValue(fDataValue, iLutHeight) / 255.0f); + fDataValue += fStep; + } + kOpacityTexture.Reload(true); + return true; + } + + public TransferFunction getOpacityFn() { + return opacityTransferFn; + } + + /** + * Update the opacity transfer function. + * + * @param kImage the ModelImage the transfer function applies to. + * @param kOpacityTexture the opacity Texture passed to the GPU + * @param kOpacityMap the opacity data stored in the GraphicsImage + * @param kTransfer the new transfer function. + */ + private boolean UpdateImages2(final ModelImage kImage, final Texture kOpacityTexture, + final GraphicsImage kOpacityMap, final TransferFunction kTransfer) { + opacityTransferFn = new TransferFunction(kTransfer); + final int iLutHeight = kOpacityMap.GetBound(0); + final byte[] abData = kOpacityMap.GetData(); + + final float fRange = (float) (kImage.getMax() - kImage.getMin()); + final float fStep = fRange / iLutHeight; + float fDataValue = (float) kImage.getMin(); + float fVal; + for (int i = 0; i < iLutHeight; i++) { + fVal = (kTransfer.getRemappedValue(fDataValue, iLutHeight) / 255.0f); + abData[i * 4 + 3] = (byte) (fVal * 255); + fDataValue += fStep; + } + kOpacityTexture.Reload(true); + return true; + } + + private void writeObject(final java.io.ObjectOutputStream out) throws IOException { + if (m_kImage != null) { + out.writeObject(m_kDir); + out.writeObject(m_kImage.getImageFileName()); + out.writeObject(m_kPostfix); + m_kImage.saveImage(m_kDir, m_kImage.getImageFileName(), FileUtility.XML, false, false); + } else { + out.writeObject("null"); + } + } +} From 9c6ec522eb8fb17b8f58e36b856bccd7b6639351 Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 14 May 2024 16:55:01 -0400 Subject: [PATCH 11/45] Added updateSelectionPanel to fix the issue of clicking accurateMode between 2 different images side by side --- .../VOI/VOILatticeManagerInterface.java | 19 ++++++++++++------- .../PlugInDialogVolumeRenderDualJanelia.java | 14 ++++++++++++-- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java b/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java index 58201fe4f2..933e948e85 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java @@ -1133,18 +1133,23 @@ public boolean isAccurateMode() { return accurateMode; } - public void toggleAccurateMode() { - accurateMode = !accurateMode; - for (AccurateModeListener listener : listeners) { - listener.accurateModeChanged(accurateMode); - - } - } + public void toggleAccurateMode() { + accurateMode = !accurateMode; + setAccurateMode(accurateMode); + } + + public void setAccurateMode(boolean accurateMode) { + this.accurateMode = accurateMode; + for (AccurateModeListener listener : listeners) { + listener.accurateModeChanged(accurateMode); + } + } public void addAccurateModeListener(AccurateModeListener listener) { listeners.add(listener); } + public void keyReleased(KeyEvent e) { isShiftSelected = e.isShiftDown(); movingPickedPoint = false; diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 7b45b43a02..88f80e81a3 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -1007,6 +1007,8 @@ else if ( activeImage.latticeTwisted != null ) { updateHistoLUTPanels(activeImage); updateClipPanel(activeImage, activeRenderer, true); updateSurfacePanels(); + updateSelectionPanel(); + if (activeImage.currentTab != -1) { tabbedPane.setSelectedIndex(activeImage.currentTab); @@ -1074,6 +1076,7 @@ public void setActiveRenderer(VolumeTriPlanarRenderBase renderer) { updateSurfacePanels(); updateClipPanel(activeImage, activeRenderer, true); updateHistoLUTPanels(activeImage); + updateSelectionPanel(); if (editMode == EditLattice) { leftImage.voiManager.editLattice(); @@ -1326,9 +1329,9 @@ public boolean updateImages(ModelLUT LUTa, ModelLUT LUTb, boolean flag, int inte } - @Override + @Override public void accurateModeChanged(boolean isAccurateMode) { - accurateModeButton.setSelected(isAccurateMode); + accurateModeButton.setSelected(isAccurateMode); accurateModeButton.setText(isAccurateMode ? "Accurate Mode is now On" : "Accurate Mode is now Off"); } @@ -3333,6 +3336,13 @@ private void updateSurfacePanels() { // tabbedPane.addTab("Surface", null, lightsPanel); // } } + + private void updateSelectionPanel() { + // accurateModeChanged(activeImage.voiManager.isAccurateMode()); + + VOILatticeManagerInterface voiManager = activeImage.voiManager; + voiManager.setAccurateMode(voiManager.isAccurateMode()); + } /* * private VOIVector autoLattice() { VOIVector latticeContainer = new From fd0980b21a7d0ee8d9b917fb9255d018b82ab967 Mon Sep 17 00:00:00 2001 From: chend Date: Wed, 15 May 2024 16:45:33 -0400 Subject: [PATCH 12/45] Added block comments --- .../worm/untwisting/AccurateModeListener.java | 17 +++++++++++++++-- .../PlugInAlgorithmWormUntwistingJanelia.java | 11 +++++++---- .../PlugInDialogVolumeRenderDualJanelia.java | 2 +- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/AccurateModeListener.java b/src/org/janelia/mipav/plugins/worm/untwisting/AccurateModeListener.java index 2b59754ceb..61dba10b75 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/AccurateModeListener.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/AccurateModeListener.java @@ -1,7 +1,20 @@ package org.janelia.mipav.plugins.worm.untwisting; - +/** + * The listener interface for receiving changes to accurateMode. + * The class that is interested in processing an action event + * implements this interface, and the object created with that + * class is registered with a component, using the component's + * {@code addAccurateModeListener} method. When the action event + * occurs, that object's {@code accurateModeChanged} method is + * invoked. + * + * @author diyi chen + */ public interface AccurateModeListener { - // Add this method for responding to the accurateModeListener + /** + * Add this method for responding to the accurateModeListener + * @param isAccurateMode true if the state of the mode is accurate + */ void accurateModeChanged(boolean isAccurateMode); } \ No newline at end of file diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInAlgorithmWormUntwistingJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInAlgorithmWormUntwistingJanelia.java index 3e41fe34f0..eb2f05eb54 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInAlgorithmWormUntwistingJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInAlgorithmWormUntwistingJanelia.java @@ -494,17 +494,20 @@ public static void batchFlipLattices( JProgressBar batchProgress, final Vector includeRange, final String[] baseFileDir, final String baseFileName, final String outputDir, final int paddingFactor, final boolean segmentLattice) { diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 88f80e81a3..2d10a29c91 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -1114,7 +1114,7 @@ public void dispose() { * lattice, or annotations. The next step in the straightening process is * automatically enabled and selected. * - * @param mode + * @param mode TODO */ public void enableNext(int mode) { closeAll(); From ffc8804da7f02144115f4e21555da096d85a4a86 Mon Sep 17 00:00:00 2001 From: chend Date: Wed, 22 May 2024 10:04:02 -0400 Subject: [PATCH 13/45] Created a plot corresponding to each clicking reflects the maximum intensity. --- .../WildMagic/VolumeTriPlanarRender.java | 53 +- .../plugins/worm/untwisting/PlotListener.java | 27 + .../PlugInDialogVolumeRenderDualJanelia.java | 755 ++++++++++-------- 3 files changed, 484 insertions(+), 351 deletions(-) create mode 100644 src/org/janelia/mipav/plugins/worm/untwisting/PlotListener.java diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java index e4857baed1..3d7c722c48 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java @@ -53,7 +53,11 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import java.util.Vector; import com.jogamp.opengl.GLAutoDrawable; @@ -61,6 +65,9 @@ import com.jogamp.opengl.awt.GLCanvas; import javax.swing.KeyStroke; +import org.janelia.mipav.plugins.worm.untwisting.AccurateModeListener; +import org.janelia.mipav.plugins.worm.untwisting.PlotListener; +import org.janelia.mipav.plugins.worm.untwisting.PlugInDialogVolumeRenderDualJanelia; import org.janelia.mipav.test.ValueOutput; import WildMagic.LibFoundation.Mathematics.ColorRGBA; @@ -846,8 +853,13 @@ else if ( m_bErase ) m_bMouseDrag = false; } + + private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPtAccurate) { + List plotAccurateValues = new ArrayList<>(); + List plotValues = new ArrayList<>(); + m_kPicker.Execute(m_kVolumeRayCast.GetScene(),kPos,kDir,0.0f, Float.MAX_VALUE); @@ -956,6 +968,7 @@ private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPtAccurate) maxValueAccurate = valueAccurate; maxPtAccurate.copy(p0); } + plotAccurateValues.add(valueAccurate); // Write data to CSV outputAccurate.writeData(p0.X, p0.Y, p0.Z, valueAccurate); @@ -990,10 +1003,12 @@ private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPtAccurate) maxValue = value; maxPt.copy(p0); } + plotValues.add(value); output.writeData(p0.X, p0.Y, p0.Z, value); } } + output.writeData(maxPt.X, maxPt.Y, maxPt.Z, maxValue); outputAccurate.writeData(maxPtAccurate.X, maxPtAccurate.Y, maxPtAccurate.Z, maxValueAccurate); @@ -1056,16 +1071,38 @@ else if ( !doAutomaticLabels() ) m_kVOIInterface.updateDisplay(); } } - } -} + } + if (m_kVOIInterface.isAccurateMode()) { + setPlot(plotAccurateValues, "Accurate Values"); + } else { + setPlot(plotValues, "3-Color Values"); + } + } + + // Create a Set to hold PlotListener instances + private Set listeners = new HashSet<>(); + + // update all listeners with new plot values and title. + public void setPlot(List values, String title) { + for (PlotListener listener : listeners) { + listener.updatePlotPanel(values, title); + } + } + + // add a new PlotListener + public void addPlotListener(PlotListener listener) { + listeners.add(listener); + } - private boolean PickSlice3D(Vector3f kPos, Vector3f kDir, Vector3f maxPt) - { + // remove an existing PlotListener + public void removePlotListener(PlotListener listener) { + listeners.remove(listener); + } + + private boolean PickSlice3D(Vector3f kPos, Vector3f kDir, Vector3f maxPt) { // pick on the slices - m_kPicker.Execute(m_kSlices.GetScene(),kPos,kDir,0.0f, - Float.MAX_VALUE); - if (m_kPicker.Records.size() > 0) - { + m_kPicker.Execute(m_kSlices.GetScene(), kPos, kDir, 0.0f, Float.MAX_VALUE); + if (m_kPicker.Records.size() > 0) { PickRecord kPickPoint = m_kPicker.GetClosestNonnegative(); TriMesh kMesh = (TriMesh)kPickPoint.Intersected; int iPlane = m_kSlices.whichPlane(kMesh); diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlotListener.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlotListener.java new file mode 100644 index 0000000000..b080398fa8 --- /dev/null +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlotListener.java @@ -0,0 +1,27 @@ +package org.janelia.mipav.plugins.worm.untwisting; + +import java.util.List; + +/** + * Interface for handling updates to a plot panel. Classes that need to respond + * to plot data changes should implement this interface. An instance of a class + * implementing this interface can be registered with components that generate + * plot data updates. When plot data changes occur, the {@code updatePlotPanel} + * method of each registered listener is called, allowing the implementing class + * to update the plot display accordingly. + * + * @author diyi chen + */ +public interface PlotListener { + + /** + * Invoked to update the plot panel with new data. + * + * @param values The list of data values to plot. Each value represents a data + * point on the plot. + * @param title The title of the plot, describing the data or context of what + * is being displayed + */ + void updatePlotPanel(List values, String title); + +} diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 2d10a29c91..7e56055a31 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -1,6 +1,5 @@ package org.janelia.mipav.plugins.worm.untwisting; - //MIPAV is freely available from http://mipav.cit.nih.gov //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, @@ -68,11 +67,13 @@ import static org.jocl.CL.CL_DEVICE_TYPE_GPU; +import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; +import java.awt.Graphics2D; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; @@ -82,6 +83,7 @@ import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; +import java.awt.image.BufferedImage; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.BufferedReader; @@ -112,9 +114,20 @@ import javax.swing.JTabbedPane; import javax.swing.JTextField; import javax.swing.JToggleButton; +import javax.swing.SwingUtilities; +import javax.swing.border.TitledBorder; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; - +import javax.swing.ImageIcon; + +import org.janelia.mipav.test.Plot; +import org.jfree.chart.ChartFactory; +import org.jfree.chart.JFreeChart; +import org.jfree.chart.plot.PlotOrientation; +import org.jfree.chart.plot.XYPlot; +import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; +import org.jfree.data.xy.XYSeries; +import org.jfree.data.xy.XYSeriesCollection; import org.jocl.Sizeof; import WildMagic.LibFoundation.Mathematics.Mathf; @@ -129,14 +142,15 @@ import WildMagic.LibGraphics.SceneGraph.TriMesh; /** -* Implements the user-interface for the semi-automatic straightening of the -* worm. Provides batch-process algorithms for segmenting the seam cells and -* building lattices. Provides the framework for enabling the user to step -* through the selected image volumes and view/edit results from the automatic -* processes. Provides framework for animating the annotations after untwisting. -*/ -public class PlugInDialogVolumeRenderDualJanelia extends JFrame implements ActionListener, RendererListener, - PropertyChangeListener, ViewImageUpdateInterface, WindowListener, ChangeListener, AccurateModeListener { + * Implements the user-interface for the semi-automatic straightening of the + * worm. Provides batch-process algorithms for segmenting the seam cells and + * building lattices. Provides the framework for enabling the user to step + * through the selected image volumes and view/edit results from the automatic + * processes. Provides framework for animating the annotations after untwisting. + */ +public class PlugInDialogVolumeRenderDualJanelia extends JFrame + implements ActionListener, RendererListener, PropertyChangeListener, ViewImageUpdateInterface, WindowListener, + ChangeListener, AccurateModeListener, PlotListener { private static final long serialVersionUID = -9056581285643263551L; @@ -217,7 +231,7 @@ public class PlugInDialogVolumeRenderDualJanelia extends JFrame implements Actio private JTabbedPane opacityTab; private JPanel clipPanel; private JPanel accuratePanel; - //private JButton accurateModeButton; + // private JButton accurateModeButton; private JToggleButton accurateModeButton; private PlugInDialogVolumeRenderDualJanelia parent; @@ -311,15 +325,15 @@ public PlugInDialogVolumeRenderDualJanelia() { public void actionPerformed(ActionEvent event) { String command = event.getActionCommand(); Object source = event.getSource(); - - if ( command.equals("BrowseConclude") ) { + + if (command.equals("BrowseConclude")) { UntwistDialog inputs = new UntwistDialog(baseFileLocText.getText()); - if ( inputs.latticeOutputDir != null ) { + if (inputs.latticeOutputDir != null) { latticeFileDir = new String(inputs.latticeOutputDir.getText()); setDefaultInputList(latticeFileDir); } } - + if (currentSize == null) { currentSize = new Dimension(getSize()); System.err.println(currentSize); @@ -334,8 +348,7 @@ public void actionPerformed(ActionEvent event) { this.setVisible(false); annotationAnimationFromSpreadSheet(); return; - } - else { + } else { // this.setVisible(false); // testForceGraph(); MipavUtil.displayError("Please specify a range of images."); @@ -346,8 +359,8 @@ public void actionPerformed(ActionEvent event) { if (batchFlipLattice.isSelected()) { try { // Batch Automatic Lattice-Building - PlugInAlgorithmWormUntwistingJanelia.batchFlipLattices(batchProgress, includeRange, latticeFileDir, - baseFileNameText.getText()); + PlugInAlgorithmWormUntwistingJanelia.batchFlipLattices(batchProgress, includeRange, + latticeFileDir, baseFileNameText.getText()); } catch (java.lang.OutOfMemoryError e) { MipavUtil .displayError("Error: Not enough memory. Unable to finish automatic lattice-building."); @@ -382,8 +395,7 @@ public void actionPerformed(ActionEvent event) { try { if (resliceImageCheck.isSelected()) { PlugInAlgorithmWormUntwistingJanelia.reslice(batchProgress, includeRange, baseFileDir, - baseFileNameText.getText(), resliceXValue, resliceYValue, - resliceZValue); + baseFileNameText.getText(), resliceXValue, resliceYValue, resliceZValue); } } catch (java.lang.OutOfMemoryError e) { MipavUtil.displayError("Error: Not enough memory. Unable to finish reslice calculation."); @@ -412,7 +424,8 @@ public void actionPerformed(ActionEvent event) { validate(); leftRenderer.setVisible(true); - if ( rightRenderer != null ) rightRenderer.setVisible(true); + if (rightRenderer != null) + rightRenderer.setVisible(true); } else { editMode = EditNONE; startButton.setEnabled(true); @@ -426,12 +439,13 @@ public void actionPerformed(ActionEvent event) { editCrossSections.setVisible(true); predict.setVisible(true); previewUntwisting.setVisible(true); - displayControls.setVisible(false); + displayControls.setVisible(false); imageChannels.setVisible(true); validate(); leftRenderer.setVisible(true); - if ( rightRenderer != null ) rightRenderer.setVisible(true); + if (rightRenderer != null) + rightRenderer.setVisible(true); } else { editMode = EditNONE; startButton.setEnabled(true); @@ -449,7 +463,8 @@ public void actionPerformed(ActionEvent event) { validate(); leftRenderer.setVisible(true); - if ( rightRenderer != null ) rightRenderer.setVisible(true); + if (rightRenderer != null) + rightRenderer.setVisible(true); } else { editMode = EditNONE; startButton.setEnabled(true); @@ -552,12 +567,12 @@ public void actionPerformed(ActionEvent event) { // Closes the editing: else if (command.equals("done")) { if (!displayControls.isVisible()) { - displayControls.setVisible(true); + displayControls.setVisible(true); imageChannels.setVisible(false); validate(); } - //mkitti 2023_03_01: this is where we save when "done" + // mkitti 2023_03_01: this is where we save when "done" saveAll(); if (parent != null) { parent.enableNext(editMode); @@ -566,10 +581,9 @@ else if (command.equals("done")) { } else { enableNext(editMode); } - } - else if (command.equals("demo")) { + } else if (command.equals("demo")) { updateSurfacePanels(); - activeRenderer.addAnimationLattice( activeImage.voiManager.getLattice() ); + activeRenderer.addAnimationLattice(activeImage.voiManager.getLattice()); } // Enables user to generate a new lattice (when none of the automatic ones match // well) @@ -645,16 +659,15 @@ else if (command.equals("newLattice")) { // activeImage.opacity[i] = activeImage.volOpacityPanel[i].getCompA().getOpacityTransferFunction(); //// activeImage.hyperstack[i].UpdateImages(activeImage.opacity[i], 0, null); // } - + if (previewUntwisting.getText().equals("preview")) { previewUntwisting.setText("return"); - + previewCount++; - + // save relative contours here upon returning from preview activeImage.voiManager.saveCrossSections(); - // save image orientation: activeImage.volumeMatrix = new Matrix3f(activeRenderer.GetSceneRotation()); @@ -665,28 +678,25 @@ else if (command.equals("newLattice")) { activeImage.annotationsTwisted = null; } activeImage.latticeTwisted = new VOIVector(activeImage.voiManager.getLattice()); - - if (activeImage.previewHS != null) { - for ( int i = 0; i < activeImage.previewHS.length; i++ ) { + for (int i = 0; i < activeImage.previewHS.length; i++) { activeImage.previewHS[i].GetImage().disposeLocal(false); } } activeImage.previewHS = untwistingTest(); - for ( int i = 0; i < activeImage.previewHS.length; i++ ) { - activeImage.previewHS[i].UpdateImages( activeImage.hyperstack[i].GetLUT()); + for (int i = 0; i < activeImage.previewHS.length; i++) { + activeImage.previewHS[i].UpdateImages(activeImage.hyperstack[i].GetLUT()); } activeImage.voiManager.removeListeners(); activeImage.voiManager.setImage(activeImage.previewHS[0].GetImage(), null); activeImage.volumeImage = activeImage.previewHS[0]; activeRenderer.setHyperStack(activeImage.previewHS, activeImage.colormap); - } - else { + } else { // "return" previewCount--; previewUntwisting.setText("preview"); - + // save relative contours here upon returning from preview activeImage.voiManager.saveCrossSections(); @@ -694,8 +704,6 @@ else if (command.equals("newLattice")) { activeImage.voiManager.setImage(activeImage.hyperstack[0].GetImage(), null); activeImage.volumeImage = activeImage.hyperstack[0]; - - // restore twisted annotations and lattice: activeImage.wormImage.unregisterAllVOIs(); VOIVector newLatticeTwisted = activeImage.voiManager.retwistLattice(activeImage.latticeTwisted); @@ -745,18 +753,15 @@ else if (command.equals("newLattice")) { } } } - - - + if (activeImage.previewHS != null) { - for ( int i = 0; i < activeImage.previewHS.length; i++ ) { + for (int i = 0; i < activeImage.previewHS.length; i++) { activeImage.previewHS[i].GetImage().disposeLocal(false); } activeImage.previewHS = null; } activeRenderer.setHyperStack(activeImage.hyperstack, activeImage.colormap); - - + // activeImage.voiManager.setImage(activeImage.wormImage, null); // activeImage.volumeImage.UpdateData(activeImage.wormImage, activeImage.volumeImage.GetLUT(), true); // activeRenderer.resetAxis(); @@ -823,44 +828,44 @@ else if (command.equals("newLattice")) { if (activeImage.voiManager != null) { activeImage.voiManager.setPaddingFactor(paddingFactor); } - } - - if ( source instanceof JCheckBox ) { - boolean selected = ((JCheckBox)source).isSelected(); - int which = imageChannel(command); + } + + if (source instanceof JCheckBox) { + boolean selected = ((JCheckBox) source).isSelected(); + int which = imageChannel(command); // System.err.println(which + " " + selected ); - if ( which != -1 ) { - activeRenderer.setImageOn(which, selected); + if (which != -1) { + activeRenderer.setImageOn(which, selected); } - if(opacityTab != null && opacityTab.getTabCount() > 0) { + if (opacityTab != null && opacityTab.getTabCount() > 0) { which = opacityTab.getSelectedIndex(); - for(int i = 0; i < opacityTab.getTabCount(); ++i) { - if( opacityTab.getTitleAt(i).startsWith(command) ) { + for (int i = 0; i < opacityTab.getTabCount(); ++i) { + if (opacityTab.getTitleAt(i).startsWith(command)) { opacityTab.setEnabledAt(i, selected); - if( !selected && i == which) { + if (!selected && i == which) { opacityTab.setSelectedIndex((which + 1) % opacityTab.getTabCount()); } - if( selected ) { + if (selected) { opacityTab.setSelectedIndex(i); } } } } - if(lutTab != null && lutTab.getTabCount() > 0) { + if (lutTab != null && lutTab.getTabCount() > 0) { which = lutTab.getSelectedIndex(); - for(int i = 0; i < lutTab.getTabCount(); ++i) { - if( lutTab.getTitleAt(i).startsWith(command) ) { + for (int i = 0; i < lutTab.getTabCount(); ++i) { + if (lutTab.getTitleAt(i).startsWith(command)) { lutTab.setEnabledAt(i, selected); - if( !selected && i == which) { + if (!selected && i == which) { lutTab.setSelectedIndex((which + 1) % lutTab.getTabCount()); } - if ( selected ) { + if (selected) { lutTab.setSelectedIndex(i); } } } } - + } } @@ -882,7 +887,6 @@ private void checkAnnotations() { } } - private String resultsDir(String sharedDir, ModelImage image) { String imageName = image.getImageFileName(); if (imageName.contains("_clone")) { @@ -891,13 +895,13 @@ private String resultsDir(String sharedDir, ModelImage image) { if (imageName.contains("_straight")) { imageName = imageName.replaceAll("_straight", ""); } - String outputDir = sharedDir + File.separator + JDialogBase.makeImageName(imageName, "") + - File.separator + JDialogBase.makeImageName(imageName, "_results") + File.separator; + String outputDir = sharedDir + File.separator + JDialogBase.makeImageName(imageName, "") + File.separator + + JDialogBase.makeImageName(imageName, "_results") + File.separator; return outputDir; } - + public void rendererConfigured(VolumeTriPlanarRenderBase renderer) { - + if ((annotationList != null) && (annotationNames != null) && (triVolume != null)) { triVolume.addVOIS(annotationList, annotationNames); triVolume.displayAnnotationSpheres(); @@ -918,6 +922,7 @@ public void rendererConfigured(VolumeTriPlanarRenderBase renderer) { leftDisplayPanel.setBorder(JDialogBase.buildTitledBorder(leftImage.wormImage.getImageName())); rightDisplayPanel.setBorder(JDialogBase.buildTitledBorder(rightImage.wormImage.getImageName(), Color.red)); } + activeRenderer.addPlotListener(this); if (activeImage.voiManager == null) { activeImage.voiManager = new VOILatticeManagerInterface(null, activeRenderer.getVolumeImage().GetImage(), @@ -925,29 +930,26 @@ public void rendererConfigured(VolumeTriPlanarRenderBase renderer) { } activeRenderer.setVOILatticeManager(activeImage.voiManager); - if ( activeImage.previewHS != null ) { + if (activeImage.previewHS != null) { activeImage.voiManager.setPreviewMode(true, activeImage.voiManager.getLatticeStraight(), activeImage.voiManager.getAnnotationsStraight()); activeRenderer.resetAxisXInv(); - } - else if ( activeImage.latticeTwisted != null ) { - activeImage.voiManager.setPreviewMode(false, activeImage.latticeTwisted, - activeImage.annotationsTwisted); + } else if (activeImage.latticeTwisted != null) { + activeImage.voiManager.setPreviewMode(false, activeImage.latticeTwisted, activeImage.annotationsTwisted); activeRenderer.SetSceneRotation(activeImage.volumeMatrix); - } - else { - if (editMode == ReviewResults) { - activeImage.voiManager.setLattice(WormData.readStraightLattice( resultsDir(latticeFileDir, activeImage.wormImage))); - } - else { + } else { + if (editMode == ReviewResults) { + activeImage.voiManager + .setLattice(WormData.readStraightLattice(resultsDir(latticeFileDir, activeImage.wormImage))); + } else { if (loadLegacyLatticeCheck.isSelected()) { activeImage.wormImage.setResolutions(originalResolutions); } final String dir = resultsDir(latticeFileDir, activeImage.wormImage); - activeImage.voiManager - .setLattice(WormData.readFinalLattice(dir, - loadLegacyLatticeCheck.isSelected(), activeImage.wormImage), dir); + activeImage.voiManager.setLattice( + WormData.readFinalLattice(dir, loadLegacyLatticeCheck.isSelected(), activeImage.wormImage), + dir); if (loadLegacyLatticeCheck.isSelected()) { activeImage.wormImage.setResolutions(new float[] { 1f, 1f, 1 }); @@ -961,17 +963,19 @@ else if ( activeImage.latticeTwisted != null ) { activeImage.annotations = null; } VOI annotations = activeImage.voiManager.getAnnotations(); - // System.err.println( activeImage.wormImage.getImageName() + " " + annotations); + // System.err.println( activeImage.wormImage.getImageName() + " " + + // annotations); if (annotations != null) { for (int i = 0; i < annotations.getCurves().size(); i++) { final VOIText text = (VOIText) annotations.getCurves().elementAt(i); - // System.err.println( " " + i + " " + text.getText() + " " + text.elementAt(0)); + // System.err.println( " " + i + " " + text.getText() + " " + + // text.elementAt(0)); text.createVolumeVOI(activeImage.volumeImage, activeRenderer.getTranslate()); } } } - + activeRenderer.displayVOIs(true); activeImage.voiManager.editAnnotations(editMode == EditSeamCells); activeImage.voiManager.colorAnnotations(editMode == EditSeamCells); @@ -983,7 +987,7 @@ else if ( activeImage.latticeTwisted != null ) { activeImage.annotationPanelUI.setPreviewMode(activeImage.previewHS != null); activeImage.latticeTable.setPreviewMode(activeImage.previewHS != null); - + activeImage.voiManager.editAnnotations(false); // initDisplaySeamPanel(); } else if (editMode == EditLattice) { @@ -1002,18 +1006,16 @@ else if ( activeImage.latticeTwisted != null ) { renderer.resetAxisXInv(); } - initImageChannels(activeImage); updateHistoLUTPanels(activeImage); updateClipPanel(activeImage, activeRenderer, true); updateSurfacePanels(); updateSelectionPanel(); - if (activeImage.currentTab != -1) { tabbedPane.setSelectedIndex(activeImage.currentTab); } - + int nextStep = dualGPU == null ? 1 : 2; imageIndex = Math.min(includeRange.size() - 1, imageIndex); imageIndex = Math.max(0, imageIndex); @@ -1027,7 +1029,6 @@ else if ( activeImage.latticeTwisted != null ) { backButton.setEnabled(false); nextButton.setEnabled(false); } - setExtendedState(JFrame.MAXIMIZED_BOTH); if (dualGPU != null) { @@ -1048,7 +1049,7 @@ else if ( activeImage.latticeTwisted != null ) { public void setActiveRenderer(VolumeTriPlanarRenderBase renderer) { // System.err.println("setActiveRenderer"); - VolumeTriPlanarRenderBase previousActive = activeRenderer; + VolumeTriPlanarRender previousActive = activeRenderer; if (leftRenderer == renderer) { activeRenderer = leftRenderer; leftDisplayPanel.setBorder(JDialogBase.buildTitledBorder(leftImage.wormImage.getImageName(), Color.red)); @@ -1062,7 +1063,8 @@ public void setActiveRenderer(VolumeTriPlanarRenderBase renderer) { activeImage = rightImage; } - + activeRenderer.addPlotListener(this); + if (previousActive != activeRenderer) { if (activeImage.voiManager.isPreview()) { @@ -1086,6 +1088,8 @@ public void setActiveRenderer(VolumeTriPlanarRenderBase renderer) { tabbedPane.setSelectedIndex(activeImage.currentTab); stateChanged(null); } + previousActive.removePlotListener(this); + } int nextStep = dualGPU == null ? 1 : 2; if (includeRange != null) { @@ -1204,11 +1208,11 @@ private void closeAll() { if (imageStack[i].voiManager != null) { imageStack[i].voiManager = null; } - if ( imageStack[i].hyperstack != null ) { - for ( int j = 0; j < imageStack[i].hyperstack.length; j++ ) { - if ( imageStack[i].hyperstack[j] != null ) { + if (imageStack[i].hyperstack != null) { + for (int j = 0; j < imageStack[i].hyperstack.length; j++) { + if (imageStack[i].hyperstack[j] != null) { imageStack[i].hyperstack[j].dispose(); - imageStack[i].hyperstack[j] = null; + imageStack[i].hyperstack[j] = null; } } } @@ -1237,8 +1241,9 @@ public void propertyChange(PropertyChangeEvent event) { if (propertyName.equals("Opacity")) { int which = opacityTab.getSelectedIndex(); // System.err.println("propertyChange " + which); - if ( which != -1 ) { - final TransferFunction kTransfer = activeImage.volOpacityPanel[which].getCompA().getOpacityTransferFunction(); + if (which != -1) { + final TransferFunction kTransfer = activeImage.volOpacityPanel[which].getCompA() + .getOpacityTransferFunction(); updateImages(activeImage.colormap, activeImage.hyperstack[which].GetImage(), kTransfer, which); activeImage.hyperstack[which].UpdateImages(kTransfer, 0, null); // @@ -1267,8 +1272,8 @@ public boolean updateImages() { // System.err.println("updateImages" ); if (activeImage.hyperstack != null && lutTab != null) { int which = lutTab.getSelectedIndex(); - if ( which != -1 ) { - updateImages(activeImage.colormap, activeImage.hyperstack[which].GetLUT(), which ); + if (which != -1) { + updateImages(activeImage.colormap, activeImage.hyperstack[which].GetLUT(), which); // System.err.println("updateImages " + which); activeImage.hyperstack[which].UpdateImages(activeImage.hyperstack[which].getLUT()); // if ( activeImage.previewHS != null ) { @@ -1281,14 +1286,14 @@ public boolean updateImages() { } return false; } - - private void updateImages(Texture texture, ModelLUT lut, int index ) { + + private void updateImages(Texture texture, ModelLUT lut, int index) { byte[] data = texture.GetImage().GetData(); ModelLUT.exportIndexedLUTMin(lut, data, index); texture.Reload(true); } - private void updateImages(Texture texture, ModelImage image, TransferFunction tf, int index ) { + private void updateImages(Texture texture, ModelImage image, TransferFunction tf, int index) { final int lutHeight = texture.GetImage().GetBound(0); final byte[] data = texture.GetImage().GetData(); int offset = index * lutHeight * 4; @@ -1304,6 +1309,7 @@ private void updateImages(Texture texture, ModelImage image, TransferFunction tf } texture.Reload(true); } + /* * (non-Javadoc) * @@ -1327,8 +1333,7 @@ public boolean updateImages(ModelLUT LUTa, ModelLUT LUTb, boolean flag, int inte // } return false; } - - + @Override public void accurateModeChanged(boolean isAccurateMode) { accurateModeButton.setSelected(isAccurateMode); @@ -1435,7 +1440,7 @@ public boolean trackMIPAV_Python() throws Exception { // rightImage.wormData.getAnnotationsPath() ); ProcessBuilder processBuilder = new ProcessBuilder("python", baseFileDir + File.separator + "track_MIPAV.py", - WormData.getStraightAnnotationsPath(resultsDir(latticeFileDir, leftImage.wormImage)), + WormData.getStraightAnnotationsPath(resultsDir(latticeFileDir, leftImage.wormImage)), WormData.getStraightAnnotationsPath(resultsDir(latticeFileDir, rightImage.wormImage)), WormData.getIntegratedMarkerAnnotationsPath(resultsDir(latticeFileDir, leftImage.wormImage)), WormData.getIntegratedMarkerAnnotationsPath(resultsDir(latticeFileDir, rightImage.wormImage))); @@ -1463,10 +1468,10 @@ public boolean restraightenMIPAV_Python(IntegratedWormData data) throws Exceptio // leftImage.wormData.getAnnotationsPath() + " " + // rightImage.wormData.getAnnotationsPath() ); - String predictedTwisted = resultsDir(latticeFileDir, data.wormImage) + File.separator + "prediction" + File.separator - + "predicted_annotations.csv"; - String predictedStraight = resultsDir(latticeFileDir, data.wormImage) + File.separator + "prediction" + File.separator - + "predicted_straightened_annotations.csv"; + String predictedTwisted = resultsDir(latticeFileDir, data.wormImage) + File.separator + "prediction" + + File.separator + "predicted_annotations.csv"; + String predictedStraight = resultsDir(latticeFileDir, data.wormImage) + File.separator + "prediction" + + File.separator + "predicted_straightened_annotations.csv"; File file = new File(predictedTwisted); if (!file.exists()) @@ -1477,7 +1482,7 @@ public boolean restraightenMIPAV_Python(IntegratedWormData data) throws Exceptio ProcessBuilder processBuilder = new ProcessBuilder("python", baseFileDir[0] + File.separator + "restraighten_MIPAV.py", predictedStraight, predictedTwisted, - WormData.getIntegratedMarkerAnnotationsPath( resultsDir(latticeFileDir, rightImage.wormImage))); + WormData.getIntegratedMarkerAnnotationsPath(resultsDir(latticeFileDir, rightImage.wormImage))); processBuilder.redirectErrorStream(true); Process process = processBuilder.start(); @@ -1495,8 +1500,8 @@ public boolean restraightenMIPAV_Python(IntegratedWormData data) throws Exceptio private void runPython() { // delete the predicted files for the right image: - String fileName = resultsDir(latticeFileDir, rightImage.wormImage) + File.separator + "prediction" + File.separator - + "predicted_straightened_annotations.csv"; + String fileName = resultsDir(latticeFileDir, rightImage.wormImage) + File.separator + "prediction" + + File.separator + "predicted_straightened_annotations.csv"; File straightFile = new File(fileName); if (straightFile.exists()) { straightFile.delete(); @@ -1511,7 +1516,8 @@ private void runPython() { // when user presses 'predict' // prototype: // 1. straighten the right image - left annotations remain fixed: - ModelImage contourImage = rightImage.voiManager.untwistAnnotations(resultsDir(latticeFileDir, rightImage.wormImage), rightImage.contourImage); + ModelImage contourImage = rightImage.voiManager + .untwistAnnotations(resultsDir(latticeFileDir, rightImage.wormImage), rightImage.contourImage); if (rightImage.contourImage != null && rightImage.contourImage != contourImage) { rightImage.contourImage.disposeLocal(false); rightImage.contourImage = null; @@ -1563,7 +1569,7 @@ private VolumeImage[] untwistingTest() { activeImage.voiManager.setPaddingFactor(paddingFactor); ModelImage[] images = activeImage.voiManager.untwistTest(activeImage.hyperstack); VolumeImage[] hyperstack = new VolumeImage[images.length]; - for ( int i = 0; i < images.length; i++ ) { + for (int i = 0; i < images.length; i++) { images[i].unregisterAllVOIs(); hyperstack[i] = new VolumeImage(false, images[i], "" + i, null, 0, false); } @@ -1582,19 +1588,19 @@ private boolean checkGPUMemory(ModelImage[] images) { OpenCLInfo.getMaxMemSize(CL_DEVICE_TYPE_GPU, maxMemSizeArray); long maxAllocSize = maxMemSizeArray[0]; long totalMemSize = maxMemSizeArray[1]; - + long memoryUsed = 0; - for ( int i = 0; i < images.length; i++ ) { - if ( images[i] != null ) { + for (int i = 0; i < images.length; i++) { + if (images[i] != null) { int dataSize = images[i].getDataSize(); - if ( dataSize > (maxAllocSize / (Sizeof.cl_float)) ) { + if (dataSize > (maxAllocSize / (Sizeof.cl_float))) { return false; } memoryUsed += dataSize; } } - if ( memoryUsed >= (totalMemSize / Sizeof.cl_float) ) { + if (memoryUsed >= (totalMemSize / Sizeof.cl_float)) { return false; } return true; @@ -1643,12 +1649,12 @@ private boolean openHyperStack() { long memoryInUse = MipavUtil.getUsedHeapMemory(); for (int i = 0; i < includeRange.size(); i++) { - + ModelImage[] images = new ModelImage[baseFileDir.length]; String fileName = baseFileName + "_" + includeRange.elementAt(i) + ".tif"; File[] imageFiles = new File[baseFileDir.length]; - for ( int j = 0; j < baseFileDir.length; j++ ) { + for (int j = 0; j < baseFileDir.length; j++) { if (editMode == ReviewResults) { fileName = baseFileName + "_" + includeRange.elementAt(i) + "_straight.tif"; String subDirName = baseFileName + "_" + includeRange.elementAt(i) + File.separator; @@ -1656,16 +1662,15 @@ private boolean openHyperStack() { + File.separator; imageFiles[j] = new File(baseFileDir[j] + File.separator + subDirName + subDirNameResults + PlugInAlgorithmWormUntwistingJanelia.outputImages + File.separator + fileName); - } - else { + } else { imageFiles[j] = new File(baseFileDir[j] + File.separator + fileName); } if (imageFiles[j].exists()) { images[j] = openImage(imageFiles[j], fileName); - System.err.println("Opening... " + fileName + " " + images[j].isColorImage() ); + System.err.println("Opening... " + fileName + " " + images[j].isColorImage()); images[j].calcMinMax(); - if ( images[j].isColorImage() ) { + if (images[j].isColorImage()) { images[j] = convertToGray(images[j]); } } @@ -1673,12 +1678,12 @@ private boolean openHyperStack() { // Add memory check here: if (i == 0) { - if ( !checkGPUMemory(images) ) { + if (!checkGPUMemory(images)) { MipavUtil.displayError("Image size too big to load on GPU."); progressBar.setVisible(false); progressBar.dispose(); progressBar = null; - for ( int j = 0; j < images.length; j++ ) { + for (int j = 0; j < images.length; j++) { if (images[j] != null) { images[j].disposeLocal(); images[j] = null; @@ -1699,7 +1704,7 @@ private boolean openHyperStack() { progressBar.setVisible(false); progressBar.dispose(); progressBar = null; - for ( int j = 0; j < images.length; j++ ) { + for (int j = 0; j < images.length; j++) { if (images[j] != null) { images[j].disposeLocal(); images[j] = null; @@ -1713,7 +1718,7 @@ private boolean openHyperStack() { thresholdImage(images); leftImage.wormImage = images[0]; - + imageStack[i] = leftImage; System.err.println("... adding " + i + " " + leftImage.wormImage.getImageName()); @@ -1724,16 +1729,18 @@ private boolean openHyperStack() { leftImage.annotations = null; } leftImage.hyperstack = new VolumeImage[images.length]; - for ( int j = 0; j < images.length; j++ ) { + for (int j = 0; j < images.length; j++) { leftImage.hyperstack[j] = new VolumeImage(false, images[j], "" + j, null, 0, false); } - leftImage.volumeImage = leftImage.hyperstack[0]; //new VolumeImage(false, leftImage.wormImage, "A", null, 0, false); + leftImage.volumeImage = leftImage.hyperstack[0]; // new VolumeImage(false, leftImage.wormImage, "A", + // null, 0, false); leftImage.voiManager = new VOILatticeManagerInterface(null, leftImage.volumeImage.GetImage(), null, 0, true, null); leftImage.voiManager.addAccurateModeListener(this); - + byte[] aucData = new byte[256 * 4 * images.length]; - GraphicsImage cmImage = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, 256, images.length, aucData, new String("colormap" + leftImage.volumeImage.GetImage().getImageFileName())); + GraphicsImage cmImage = new GraphicsImage(GraphicsImage.FormatMode.IT_RGBA8888, 256, images.length, + aucData, new String("colormap" + leftImage.volumeImage.GetImage().getImageFileName())); leftImage.colormap = new Texture(); leftImage.colormap.SetImage(cmImage); @@ -1753,7 +1760,7 @@ private boolean openHyperStack() { return false; success = true; - leftRenderer = new VolumeTriPlanarRender( leftImage.hyperstack, leftImage.colormap ); + leftRenderer = new VolumeTriPlanarRender(leftImage.hyperstack, leftImage.colormap); leftRenderer.setVisible(false); leftRenderer.addConfiguredListener(this); @@ -1853,10 +1860,10 @@ private boolean openHyperStack() { return success; } - private void thresholdImage(ModelImage[] images ) { + private void thresholdImage(ModelImage[] images) { if (thresholdImageCheck.isSelected()) { - for ( int i = 0; i < images.length; i++ ) { - if ( images[i] != null ) { + for (int i = 0; i < images.length; i++) { + if (images[i] != null) { for (int j = 0; j < images[i].getDataSize(); j++) { if (images[i].getFloat(j) > threshold) { @@ -1869,40 +1876,45 @@ private void thresholdImage(ModelImage[] images ) { } } - private ModelImage convertToGray(ModelImage image ) { + private ModelImage convertToGray(ModelImage image) { ModelImage result = new ModelImage(ModelStorageBase.FLOAT, image.getExtents(), JDialogBase.makeImageName(image.getImageFileName(), "")); - final int dimX = image.getExtents().length > 0 ? image.getExtents()[0] : 1; + final int dimX = image.getExtents().length > 0 ? image.getExtents()[0] : 1; final int dimY = image.getExtents().length > 1 ? image.getExtents()[1] : 1; - final int dimZ = image.getExtents().length > 2 ? image.getExtents()[2] : 1; - + final int dimZ = image.getExtents().length > 2 ? image.getExtents()[2] : 1; + float max = 0; float maxSum = 0; - for ( int z = 0; z < dimZ; z++ ) { - for ( int y = 0; y < dimY; y++ ) { - for ( int x = 0; x < dimX; x++ ) { + for (int z = 0; z < dimZ; z++) { + for (int y = 0; y < dimY; y++) { + for (int x = 0; x < dimX; x++) { float r = image.getFloatC(x, y, z, 1); float g = image.getFloatC(x, y, z, 2); float b = image.getFloatC(x, y, z, 3); - if ( r > max ) max = r; - if ( g > max ) max = g; - if ( b > max ) max = b; + if (r > max) + max = r; + if (g > max) + max = g; + if (b > max) + max = b; float sum = r + b + g; - if ( sum > maxSum ) maxSum = sum; + if (sum > maxSum) + maxSum = sum; result.set(x, y, z, sum); } } } - if ( maxSum > max ) { + if (maxSum > max) { float scale = maxSum / max; - for ( int i = 0; i < result.getDataSize(); i++ ) { - result.set(i, result.getFloat(i) / scale);; + for (int i = 0; i < result.getDataSize(); i++) { + result.set(i, result.getFloat(i) / scale); + ; } } result.calcMinMax(); return result; } - + private ModelImage combineImages(ModelImage imageA, ModelImage imageB, ModelImage imageC) { // imageA is never null and is always written into the 'green' channel... @@ -1912,7 +1924,7 @@ private ModelImage combineImages(ModelImage imageA, ModelImage imageB, ModelImag // Make algorithm ModelImage blank = null; - if ( imageB == null && imageC != null ) { + if (imageB == null && imageC != null) { blank = new ModelImage(ModelImage.SHORT, imageA.getExtents(), JDialogBase.makeImageName(imageA.getImageName(), "")); @@ -1920,8 +1932,7 @@ private ModelImage combineImages(ModelImage imageA, ModelImage imageB, ModelImag true, true); mathAlgo.run(); blank.disposeLocal(false); - } - else if ( imageB != null && imageC == null ) { + } else if (imageB != null && imageC == null) { blank = new ModelImage(ModelImage.SHORT, imageA.getExtents(), JDialogBase.makeImageName(imageA.getImageName(), "")); @@ -1929,8 +1940,7 @@ else if ( imageB != null && imageC == null ) { true, true); mathAlgo.run(); blank.disposeLocal(false); - } - else { + } else { AlgorithmRGBConcat mathAlgo = new AlgorithmRGBConcat(imageB, imageA, imageC, displayImage, true, false, 255, true, true); mathAlgo.run(); @@ -1966,7 +1976,7 @@ private void annotationAnimationFromSpreadSheet() { MipavUtil.centerOnScreen(progress); String inputDirName = baseFileDir[0] + File.separator; - System.err.println( inputDirName ); + System.err.println(inputDirName); final File inputFileDir = new File(inputDirName); Vector3f min = new Vector3f(Float.MAX_VALUE, Float.MAX_VALUE, Float.MAX_VALUE); @@ -2180,7 +2190,52 @@ private void annotationAnimationFromSpreadSheet() { progress.dispose(); progress = null; } - + + private JLabel plotLabel; + private JPanel plotPanel; + + // create a chart image from the values obtained via annotations + public static BufferedImage createChartImage(List values, String title) throws IOException { + XYSeries series = new XYSeries("Data"); + for (int i = 0; i < values.size() - 1; i++) { + series.add(i, values.get(i)); + } + XYSeriesCollection dataset = new XYSeriesCollection(); + dataset.addSeries(series); + + // create a line chart + JFreeChart chart = ChartFactory.createXYLineChart(title, "Sample Index", "Value", dataset, + PlotOrientation.VERTICAL, true, true, false); + + XYPlot plot = chart.getXYPlot(); + XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); + renderer.setSeriesPaint(0, Color.BLUE); + renderer.setSeriesStroke(0, new BasicStroke(2.0f)); + plot.setRenderer(renderer); + + // create a buffered image to draw the chart + BufferedImage chartImage = new BufferedImage(400, 600, BufferedImage.TYPE_INT_RGB); + Graphics2D g2 = chartImage.createGraphics(); + chart.draw(g2, new java.awt.Rectangle(0, 0, 400, 600)); + g2.dispose(); + + return chartImage; + } + + // update the plot panel in responding to the clicking + public void updatePlotPanel(List values, String title) { + SwingUtilities.invokeLater(() -> { + try { + BufferedImage chartImage = createChartImage(values, title); + plotLabel.setIcon(new ImageIcon(chartImage)); + plotPanel.revalidate(); + plotPanel.repaint(); + } catch (IOException e) { + System.err.println("Error updating plot: " + e.getMessage()); + } + }); + } + /** * User-interface initialization. If the UI is integrated all panels are * displayed in one window. Otherwise the UI is divided into volume display and @@ -2272,42 +2327,48 @@ private void init() { dialogGUI.getContentPane().add(panel1, BorderLayout.NORTH); dialogGUI.getContentPane().add(panel2, BorderLayout.SOUTH); - lutPanel = new JPanel(new GridLayout(2,1)); + lutPanel = new JPanel(new GridLayout(2, 1)); lutTab = new JTabbedPane(); lutTab.addChangeListener(this); lutPanel.add(lutTab, BorderLayout.CENTER); - opacityPanel = new JPanel( new BorderLayout() ); + opacityPanel = new JPanel(new BorderLayout()); opacityTab = new JTabbedPane(); opacityTab.addChangeListener(this); opacityPanel.add(opacityTab, BorderLayout.CENTER); - clipPanel = new JPanel( new BorderLayout() ); - - //added a panel with button to be able to turn off accurate mode and switch to 3-color mode(not working currently) + clipPanel = new JPanel(new BorderLayout()); + + // added a panel with button to be able to turn off accurate mode and switch to + // 3-color mode(not working currently) accuratePanel = new JPanel(new BorderLayout()); - JPanel buttonPanel = new JPanel(); - //accurateModeButton = new JButton("Accurate Mode"); + JPanel buttonPanel = new JPanel(); + // accurateModeButton = new JButton("Accurate Mode"); accurateModeButton = new JToggleButton("Accurate Mode"); accurateModeChanged(true); accurateModeButton.setPreferredSize(new Dimension(200, 50)); - - // Add an action response to the button + // Add an action response to the button accurateModeButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - // activeImage.voiManager.toggleAccurateMode(); - - JToggleButton toggleButton = (JToggleButton) e.getSource(); - boolean isSelected = toggleButton.isSelected(); - activeImage.voiManager.toggleAccurateMode(); - } - }); - - // Add the accurateModeButton to the buttonPanel, then add the buttonPanel to the accuratePanel + @Override + public void actionPerformed(ActionEvent e) { + // activeImage.voiManager.toggleAccurateMode(); + + JToggleButton toggleButton = (JToggleButton) e.getSource(); + boolean isSelected = toggleButton.isSelected(); + activeImage.voiManager.toggleAccurateMode(); + } + }); + + // Add the accurateModeButton to the buttonPanel, then add the buttonPanel to + // the accuratePanel buttonPanel.add(accurateModeButton); accuratePanel.add(buttonPanel, BorderLayout.CENTER); - + plotPanel = new JPanel(new BorderLayout()); + plotPanel.setBorder(new TitledBorder("Plot")); + plotLabel = new JLabel(); + plotPanel.add(plotLabel, BorderLayout.CENTER); + accuratePanel.add(plotPanel, BorderLayout.SOUTH); + tabbedPane = new JTabbedPane(); tabbedPane.addTab("LUT", null, lutPanel); tabbedPane.addTab("Opacity", null, opacityPanel); @@ -2320,9 +2381,9 @@ public void actionPerformed(ActionEvent e) { displayControls.add(dialogGUI.getContentPane(), BorderLayout.NORTH); JPanel leftPanel = new JPanel(new BorderLayout()); leftPanel.add(displayControls, BorderLayout.NORTH); - + imageChannels = new JPanel(); - imageChannels.add(new JLabel("Select image channel:") ); + imageChannels.add(new JLabel("Select image channel:")); imageChannels.add(new JLabel("Select Mode:")); imageChannels.setVisible(false); leftPanel.add(imageChannels, BorderLayout.CENTER); @@ -2388,7 +2449,7 @@ private Container initGPUPanel(int editMode) { doneButton.setVisible(true); doneButton.setEnabled(true); backNextPanel.add(doneButton); - + JButton demo = gui.buildButton("demo"); demo.addActionListener(this); demo.setActionCommand("demo"); @@ -2397,7 +2458,7 @@ private Container initGPUPanel(int editMode) { // backNextPanel.add(demo); latticeSelectionPanel = new JPanel(); - + newLatticeButton = gui.buildButton("new lattice"); newLatticeButton.addActionListener(this); newLatticeButton.setActionCommand("newLattice"); @@ -2418,13 +2479,13 @@ private Container initGPUPanel(int editMode) { displayModel.setVisible(false); displayModel.setEnabled(true); latticeSelectionPanel.add(displayModel); - + displaySurface = gui.buildCheckBox("Show Surface", false); displaySurface.addActionListener(this); displaySurface.setActionCommand("displaySurface"); displaySurface.setVisible(false); displaySurface.setEnabled(true); - + editCrossSections = gui.buildCheckBox("Edit Sections", false); editCrossSections.addActionListener(this); editCrossSections.setActionCommand("editCrossSections"); @@ -2894,10 +2955,11 @@ private void openNeuriteCurves(IntegratedWormData data) { private void loadPredicted(IntegratedWormData data) { // load and save the straightened predicted values: - VOI markerAnnotations = LatticeModel.readAnnotationsCSV(resultsDir(latticeFileDir, data.wormImage) + File.separator - + "prediction" + File.separator + "predicted_straightened_annotations.csv"); + VOI markerAnnotations = LatticeModel.readAnnotationsCSV(resultsDir(latticeFileDir, data.wormImage) + + File.separator + "prediction" + File.separator + "predicted_straightened_annotations.csv"); if (markerAnnotations != null) { - LatticeModel.saveAnnotationsAsCSV( resultsDir(latticeFileDir, data.wormImage) + File.separator + "straightened_annotations", + LatticeModel.saveAnnotationsAsCSV( + resultsDir(latticeFileDir, data.wormImage) + File.separator + "straightened_annotations", "straightened_annotations.csv", markerAnnotations); } // load, save and display the predicted annotations: @@ -2913,7 +2975,8 @@ private void loadPredicted(IntegratedWormData data) { System.err.println(markerAnnotations + " " + markerAnnotations.getCurves().size()); data.annotations.add(markerAnnotations); data.voiManager.addAnnotations(data.annotations); - WormData.saveIntegratedMarkerAnnotations(resultsDir(latticeFileDir, data.wormImage), data.voiManager.getAnnotations()); + WormData.saveIntegratedMarkerAnnotations(resultsDir(latticeFileDir, data.wormImage), + data.voiManager.getAnnotations()); data.annotations = null; VOI annotations = data.voiManager.getAnnotations(); @@ -2941,8 +3004,7 @@ private void openAnnotations(IntegratedWormData data) { if (markers != null) { data.annotations.add(markers); } - } - else { + } else { // if (loadLegacyAnnotationsCheck.isSelected()) { // data.wormImage.setResolutions(originalResolutions); // } @@ -2970,7 +3032,7 @@ private void openAnnotations(IntegratedWormData data) { System.err.println("openAnnotations " + data.wormImage.getImageName() + " " + data.annotations.elementAt(0).getCurves().size()); } - + /** * Saves the seam cells to the default edited file for the current image. */ @@ -2981,8 +3043,9 @@ private void saveSeamCells() { if (imageIndex >= includeRange.size()) { return; } - WormData.saveSeamAnnotations(resultsDir(latticeFileDir, activeImage.wormImage), activeImage.voiManager.getAnnotations(), - (editMode != CheckSeam) && (editMode != IntegratedEditing), true); + WormData.saveSeamAnnotations(resultsDir(latticeFileDir, activeImage.wormImage), + activeImage.voiManager.getAnnotations(), (editMode != CheckSeam) && (editMode != IntegratedEditing), + true); } /** @@ -3031,7 +3094,7 @@ private boolean setVariables() { } baseFileName = baseFileNameText.getText(); - + includeRange = new Vector(); String rangeFusion = rangeFusionText.getText(); if (rangeFusion != null) { @@ -3077,36 +3140,38 @@ private boolean setVariables() { } private boolean imageChannelsInit = false; + private void initImageChannels(IntegratedWormData integratedData) { - if ( imageChannelsInit ) return; + if (imageChannelsInit) + return; imageChannelsInit = true; int numImages = integratedData.hyperstack.length; String[] subDir = new String[numImages]; - for ( int i = 0; i < numImages; i++ ) { + for (int i = 0; i < numImages; i++) { int index = baseFileDir[i].lastIndexOf(File.separator) + 1; int len = baseFileDir[i].length(); - subDir[i] = baseFileDir[i].substring(index,len); + subDir[i] = baseFileDir[i].substring(index, len); JCheckBox box = new JCheckBox(subDir[i], true); box.setActionCommand(subDir[i]); box.addActionListener(this); - imageChannels.add( box ); + imageChannels.add(box); } } - + private int imageChannel(String cmd) { int numImages = activeImage.hyperstack.length; - for ( int i = 0; i < numImages; i++ ) { + for (int i = 0; i < numImages; i++) { int index = baseFileDir[i].lastIndexOf(File.separator) + 1; int len = baseFileDir[i].length(); - String subDir = baseFileDir[i].substring(index,len); - if ( subDir.equals(cmd) ) { + String subDir = baseFileDir[i].substring(index, len); + if (subDir.equals(cmd)) { return i; } } return -1; } - + /** * Creates or updates the histogram / LUT panel and opacity panels when a new * image is loaded. @@ -3167,9 +3232,9 @@ private void initHistoLUTPanel(IntegratedWormData integratedData) { int numImages = integratedData.hyperstack.length; integratedData.volOpacityPanel = new JPanelVolumeOpacity[numImages]; - for ( int i = 0; i < numImages; i++ ) { - integratedData.volOpacityPanel[i] = new JPanelVolumeOpacity(integratedData.hyperstack[i].GetImage(), - null, null, null, true); + for (int i = 0; i < numImages; i++) { + integratedData.volOpacityPanel[i] = new JPanelVolumeOpacity(integratedData.hyperstack[i].GetImage(), null, + null, null, true); integratedData.volOpacityPanel[i].addPropertyChangeListener(this); TransferFunction kTransfer = integratedData.volOpacityPanel[i].getCompA().getOpacityTransferFunction(); @@ -3179,18 +3244,17 @@ private void initHistoLUTPanel(IntegratedWormData integratedData) { // System.err.println( "initHistoLUTPanel " + // integratedData.volumeImage.getLUT() ); integratedData.lutHistogramPanel = new JFrameHistogram[numImages]; - for ( int i = 0; i < numImages; i++ ) { + for (int i = 0; i < numImages; i++) { - integratedData.lutHistogramPanel[i] = new JFrameHistogram(this, integratedData.hyperstack[i].GetImage(), null, - integratedData.hyperstack[i].getLUT(), null); - integratedData.lutHistogramPanel[i].histogramLUT(true, false, false);//!integratedData.volumeImage.GetImage().isColorImage()); + integratedData.lutHistogramPanel[i] = new JFrameHistogram(this, integratedData.hyperstack[i].GetImage(), + null, integratedData.hyperstack[i].getLUT(), null); + integratedData.lutHistogramPanel[i].histogramLUT(true, false, false);// !integratedData.volumeImage.GetImage().isColorImage()); } - // if (integratedData.volumeImage.GetImage().isColorImage()) { // integratedData.displayBothChannels.setSelected(true); // } - for ( int i = 0; i < numImages; i++ ) { + for (int i = 0; i < numImages; i++) { integratedData.hyperstack[i].GetImage().addImageDisplayListener(this); } } @@ -3201,13 +3265,13 @@ private void updateHistoLUTPanels(IntegratedWormData integratedData) { // integratedData.lutHistogramPanel.getContainingPanel() ); int numImages = integratedData.hyperstack.length; String[] subDir = new String[numImages]; - if ( !integratedData.colorMapInit ) { + if (!integratedData.colorMapInit) { integratedData.colorMapInit = true; - for ( int i = 0; i < numImages; i++ ) { + for (int i = 0; i < numImages; i++) { int index = baseFileDir[i].lastIndexOf(File.separator) + 1; int len = baseFileDir[i].length(); - subDir[i] = baseFileDir[i].substring(index,len); - if ( subDir[i].equals("405") ) { + subDir[i] = baseFileDir[i].substring(index, len); + if (subDir[i].equals("405")) { // set transfer function: ModelLUT lut = integratedData.hyperstack[i].GetLUT(); lut.makeBlueTransferFunctions(); @@ -3216,7 +3280,7 @@ private void updateHistoLUTPanels(IntegratedWormData integratedData) { tf.replacePoint(64, 0, 2); lut.makeLUT(256); } - if ( subDir[i].equals("488") ) { + if (subDir[i].equals("488")) { // set transfer function: ModelLUT lut = integratedData.hyperstack[i].GetLUT(); lut.makeGreenTransferFunctions(); @@ -3225,7 +3289,7 @@ private void updateHistoLUTPanels(IntegratedWormData integratedData) { tf.replacePoint(64, 0, 2); lut.makeLUT(256); } - if ( subDir[i].equals("561") ) { + if (subDir[i].equals("561")) { // set transfer function: ModelLUT lut = integratedData.hyperstack[i].GetLUT(); lut.makeRedTransferFunctions(); @@ -3234,7 +3298,7 @@ private void updateHistoLUTPanels(IntegratedWormData integratedData) { tf.replacePoint(64, 0, 2); lut.makeLUT(256); } - if ( subDir[i].equals("637") ) { + if (subDir[i].equals("637")) { // set transfer function: ModelLUT lut = integratedData.hyperstack[i].GetLUT(); TransferFunction tf = lut.getTransferFunction(); @@ -3244,7 +3308,7 @@ private void updateHistoLUTPanels(IntegratedWormData integratedData) { } } } - + // re-add lutTab to lutPanel due to removal in enableNext if (lutPanel.getComponentCount() == 0) { lutPanel.add(lutTab, BorderLayout.CENTER); @@ -3254,52 +3318,52 @@ private void updateHistoLUTPanels(IntegratedWormData integratedData) { opacityPanel.add(opacityTab, BorderLayout.CENTER); } - opacityTab.removeAll(); - for ( int i = 0; i < numImages; i++ ) { + opacityTab.removeAll(); + for (int i = 0; i < numImages; i++) { int index = baseFileDir[i].lastIndexOf(File.separator) + 1; int len = baseFileDir[i].length(); - subDir[i] = baseFileDir[i].substring(index,len); - - opacityTab.addTab( subDir[i] + File.separator + integratedData.hyperstack[i].GetImage().getImageName(), - null, integratedData.volOpacityPanel[i].getMainPanel() ); + subDir[i] = baseFileDir[i].substring(index, len); + + opacityTab.addTab(subDir[i] + File.separator + integratedData.hyperstack[i].GetImage().getImageName(), null, + integratedData.volOpacityPanel[i].getMainPanel()); - - final TransferFunction kTransfer = integratedData.volOpacityPanel[i].getCompA().getOpacityTransferFunction(); + final TransferFunction kTransfer = integratedData.volOpacityPanel[i].getCompA() + .getOpacityTransferFunction(); updateImages(integratedData.colormap, integratedData.hyperstack[i].GetImage(), kTransfer, i); integratedData.volOpacityPanel[i].getCompA().showHistogram(); integratedData.hyperstack[i].UpdateImages(kTransfer, 0, null); - if ( integratedData.previewHS != null ) { + if (integratedData.previewHS != null) { integratedData.previewHS[i].UpdateImages(kTransfer, 0, null); } } if (tabbedPane.getSelectedComponent() == opacityPanel) { int which = opacityTab.getSelectedIndex(); - if ( which != -1 ) { + if (which != -1) { integratedData.volOpacityPanel[which].getCompA().showHistogram(); } } lutTab.removeAll(); - for ( int i = 0; i < numImages; i++ ) { - lutTab.addTab( subDir[i] + File.separator + integratedData.hyperstack[i].GetImage().getImageName(), - null, integratedData.lutHistogramPanel[i].getContainingPanel()); - updateImages(integratedData.colormap, integratedData.hyperstack[i].GetLUT(), i ); - + for (int i = 0; i < numImages; i++) { + lutTab.addTab(subDir[i] + File.separator + integratedData.hyperstack[i].GetImage().getImageName(), null, + integratedData.lutHistogramPanel[i].getContainingPanel()); + updateImages(integratedData.colormap, integratedData.hyperstack[i].GetLUT(), i); + integratedData.hyperstack[i].UpdateImages(integratedData.hyperstack[i].getLUT()); - if ( integratedData.previewHS != null ) { + if (integratedData.previewHS != null) { integratedData.previewHS[i].UpdateImages(integratedData.hyperstack[i].getLUT()); } integratedData.lutHistogramPanel[i].redrawFrames(); } if (tabbedPane.getSelectedComponent() == lutPanel) { - int which = lutTab.getSelectedIndex(); - if ( which != -1 ) { + int which = lutTab.getSelectedIndex(); + if (which != -1) { integratedData.lutHistogramPanel[which].redrawFrames(); } } - + lutPanel.revalidate(); } @@ -3336,10 +3400,10 @@ private void updateSurfacePanels() { // tabbedPane.addTab("Surface", null, lightsPanel); // } } - - private void updateSelectionPanel() { - // accurateModeChanged(activeImage.voiManager.isAccurateMode()); - + + private void updateSelectionPanel() { + // accurateModeChanged(activeImage.voiManager.isAccurateMode()); + VOILatticeManagerInterface voiManager = activeImage.voiManager; voiManager.setAccurateMode(voiManager.isAccurateMode()); } @@ -3389,7 +3453,7 @@ public void stateChanged(ChangeEvent arg0) { } private void saveIntegrated() { - activeImage.voiManager.setSharedDirectory( resultsDir(latticeFileDir, activeImage.wormImage)); + activeImage.voiManager.setSharedDirectory(resultsDir(latticeFileDir, activeImage.wormImage)); if (editMode == EditSeamCells || editMode == CheckSeam) { saveSeamCells(); @@ -3405,76 +3469,78 @@ private void saveIntegrated() { // separately so not untwisted twice: saveSplineCurves(); - if ( activeImage.voiManager != null ) { + if (activeImage.voiManager != null) { // save annotations not in splines: - WormData.saveIntegratedMarkerAnnotations(resultsDir(latticeFileDir, activeImage.wormImage), activeImage.voiManager.getAnnotations()); + WormData.saveIntegratedMarkerAnnotations(resultsDir(latticeFileDir, activeImage.wormImage), + activeImage.voiManager.getAnnotations()); } } - + private void setDefaultInputList(String dir) { File file = new File(dir); - if ( file.exists() && file.isDirectory() ) { + if (file.exists() && file.isDirectory()) { final String[] list = file.list(); String imageList = ""; for (int i = 0; i < list.length; i++) { - if ( list[i].endsWith(".tif") ) { - String temp = list[i].substring(list[i].lastIndexOf("_") + 1, list[i].indexOf(".tif") ); + if (list[i].endsWith(".tif")) { + String temp = list[i].substring(list[i].lastIndexOf("_") + 1, list[i].indexOf(".tif")); System.err.println(list[i] + " " + temp); - if ( imageList != "" ) imageList += ","; + if (imageList != "") + imageList += ","; imageList += temp; } } - if ( imageList != "" ) { + if (imageList != "") { rangeFusionText.setText(imageList); } } } - + private class UntwistDialog extends JDialogBase implements ActionListener { private JCheckBox[] volumeChecks; private String[] volumeDirs; private JTextField latticeOutputDir; - public UntwistDialog( String baseDir ) { + + public UntwistDialog(String baseDir) { File file = new File(baseDir); - if ( file.exists() && file.isDirectory() ) { + if (file.exists() && file.isDirectory()) { final String[] list = file.list(); Vector tempList = new Vector(); for (int i = 0; i < list.length; i++) { File subDir = new File(file.getAbsolutePath() + File.separator + list[i]); - if ( subDir.exists() && subDir.isDirectory() ) - { + if (subDir.exists() && subDir.isDirectory()) { System.err.println(file.getAbsolutePath() + File.separator + list[i]); tempList.add(list[i]); } } - if ( tempList.size() > 0 ) { + if (tempList.size() > 0) { init(baseDir, tempList); setVisible(true); } } - } - - // Diyi: Created a simpler version of actionPerformed to replace the previous one + } + + // Diyi: Created a simpler version of actionPerformed to replace the previous + // one public void actionPerformed(ActionEvent event) { String command = event.getActionCommand(); Object source = event.getSource(); System.err.println("UntwistDialog " + command); - if ( command.equals("Cancel") ) { + if (command.equals("Cancel")) { baseFileLocText.setText(""); latticeOutputDir = null; setVisible(false); - } - else if ( command.equals("OK") ) { - + } else if (command.equals("OK")) { + ArrayList list = new ArrayList<>(volumeChecks.length); - - for (int i = 0; i < volumeChecks.length; i++){ + + for (int i = 0; i < volumeChecks.length; i++) { if (volumeChecks[i].isSelected()) { - list.add(volumeDirs[i]); + list.add(volumeDirs[i]); } - baseFileDir = new String [list.size()]; + baseFileDir = new String[list.size()]; list.toArray(baseFileDir); } if (list.size() == 0) @@ -3482,9 +3548,8 @@ else if ( command.equals("OK") ) { setVisible(false); } } - - - private void init( String baseDir, Vector tempList ) { + + private void init(String baseDir, Vector tempList) { setForeground(Color.black); setTitle("Untwisting C.elegans - lattice - 2.0"); @@ -3493,57 +3558,58 @@ private void init( String baseDir, Vector tempList ) { } catch (FileNotFoundException e) { Preferences.debug("Failed to load default icon", Preferences.DEBUG_MINOR); } - JPanel input = new JPanel( new GridLayout(tempList.size() + 1, 1)); + JPanel input = new JPanel(new GridLayout(tempList.size() + 1, 1)); GuiBuilder gui = new GuiBuilder(this); volumeChecks = new JCheckBox[tempList.size()]; volumeDirs = new String[tempList.size()]; String latticeDir = null; - for ( int i = 0; i < tempList.size(); i++ ) { + for (int i = 0; i < tempList.size(); i++) { volumeChecks[i] = gui.buildCheckBox(tempList.elementAt(i), true); volumeChecks[i].addActionListener(this); input.add(volumeChecks[i].getParent()); volumeDirs[i] = new String(baseDir + File.separator + tempList.elementAt(i)); final File subDir = new File(volumeDirs[i]); - if ( latticeDir == null ) { - latticeDir = new String(baseDir + File.separator + tempList.elementAt(i)); + if (latticeDir == null) { + latticeDir = new String(baseDir + File.separator + tempList.elementAt(i)); + } + if (containsLattice(subDir)) { + latticeDir = new String(baseDir + File.separator + tempList.elementAt(i)); } - if ( containsLattice(subDir) ) { - latticeDir = new String(baseDir + File.separator + tempList.elementAt(i)); - } - + } - - latticeOutputDir = gui.buildFileField("Lattice Directory:", latticeDir, false, JFileChooser.DIRECTORIES_ONLY, - this); + + latticeOutputDir = gui.buildFileField("Lattice Directory:", latticeDir, false, + JFileChooser.DIRECTORIES_ONLY, this); input.add(latticeOutputDir.getParent()); - + System.err.println(latticeDir); getContentPane().add(input, BorderLayout.CENTER); - + JPanel buttonPanel = new JPanel(); - buttonPanel.add(JDialogBase.buildOKButton( "OK", this )); - buttonPanel.add(JDialogBase.buildCancelButton( "Cancel", this )); + buttonPanel.add(JDialogBase.buildOKButton("OK", this)); + buttonPanel.add(JDialogBase.buildCancelButton("Cancel", this)); getContentPane().add(buttonPanel, BorderLayout.SOUTH); setModal(true); - if ( bar != null ) bar.setVisible(false); + if (bar != null) + bar.setVisible(false); pack(); } - - private boolean containsLattice(File dir ) { - if ( dir.exists() && dir.isDirectory() ) { + private boolean containsLattice(File dir) { + + if (dir.exists() && dir.isDirectory()) { final String[] list = dir.list(); - for ( int i = 0; i < list.length; i++ ) { - if ( list[i].equals("lattice_final") ) { + for (int i = 0; i < list.length; i++) { + if (list[i].equals("lattice_final")) { return true; - } - else { - File file = new File(dir.getAbsolutePath() + File.separator + list[i] ); - if ( file.exists() && file.isDirectory() ) { - if ( containsLattice(file) ) return true; + } else { + File file = new File(dir.getAbsolutePath() + File.separator + list[i]); + if (file.exists() && file.isDirectory()) { + if (containsLattice(file)) + return true; } } } @@ -3551,76 +3617,79 @@ private boolean containsLattice(File dir ) { return false; } } - + public void setDemoValues() { - //baseFileLocText.setText("\\\\nearline4.hhmi.org\\shroff\\shrofflab\\efn-1\\Tracking\\Pos0\\For_Tracking"); + // baseFileLocText.setText("\\\\nearline4.hhmi.org\\shroff\\shrofflab\\efn-1\\Tracking\\Pos0\\For_Tracking"); // X:\shrofflab\RW10752_NU\Untwisting\031219_RW10752_NU\RW10752_NU\RW10752_NU\Pos2\Decon_registered - - //diyi local test path: E:\Diyi\Pos2\Decon_registered - //String access_path = "E:\\Diyi\\Pos2\\Decon_registered"; - - //from diyi error mimic path: X:\shrofflab\Vab-1\Tracking\Pos0\SPIMB\Reg_Sample\For_Tracking\RegB - //from jhonny:Z:\shrofflab\Vab-1\Tracking\Pos0\SPIMB\Reg_Sample\For_Tracking\RegB\Decon_reg_14\Decon_reg_14_results - //copied to diyi from jhonny: E:\Diyi\SPIMB\Reg_Sample\For_Tracking\RegB\Decon_reg_14\Decon_reg_14_results - - //from online:\\\\nearline4.hhmi.org\\shroff\\shrofflab\\efn-1\\Tracking\\Pos0\\For_Tracking - //String access_path = "\\\\nearline4.hhmi.org\\shroff\\shrofflab\\efn-1\\Tracking\\Pos0\\For_Tracking"; - - //from online jhonny: X:\shrofflab\Vab-1\Tracking\Pos0\SPIMB\Reg_Sample\For_Tracking\RegB\Decon_reg_14\Decon_reg_14_results - //String access_path = "X:\\shrofflab\\Vab-1\\Tracking\\Pos0\\SPIMB\\Reg_Sample\\For_Tracking"; - - //String access_path = "E:\\Diyi\\SPIMB\\Reg_Sample\\For_Tracking"; + + // diyi local test path: E:\Diyi\Pos2\Decon_registered + // String access_path = "E:\\Diyi\\Pos2\\Decon_registered"; + + // from diyi error mimic path: + // X:\shrofflab\Vab-1\Tracking\Pos0\SPIMB\Reg_Sample\For_Tracking\RegB + // from + // jhonny:Z:\shrofflab\Vab-1\Tracking\Pos0\SPIMB\Reg_Sample\For_Tracking\RegB\Decon_reg_14\Decon_reg_14_results + // copied to diyi from jhonny: + // E:\Diyi\SPIMB\Reg_Sample\For_Tracking\RegB\Decon_reg_14\Decon_reg_14_results + + // from + // online:\\\\nearline4.hhmi.org\\shroff\\shrofflab\\efn-1\\Tracking\\Pos0\\For_Tracking + // String access_path = + // "\\\\nearline4.hhmi.org\\shroff\\shrofflab\\efn-1\\Tracking\\Pos0\\For_Tracking"; + + // from online jhonny: + // X:\shrofflab\Vab-1\Tracking\Pos0\SPIMB\Reg_Sample\For_Tracking\RegB\Decon_reg_14\Decon_reg_14_results + // String access_path = + // "X:\\shrofflab\\Vab-1\\Tracking\\Pos0\\SPIMB\\Reg_Sample\\For_Tracking"; + + // String access_path = "E:\\Diyi\\SPIMB\\Reg_Sample\\For_Tracking"; String access_path = "D:\\shroff\\For_Tracking"; baseFileLocText.setText(access_path); editLattice.setSelected(true); - //actionPerformed(new ActionEvent(this, 0, "BrowseConclude")); - + // actionPerformed(new ActionEvent(this, 0, "BrowseConclude")); + String[] volumeDirs; - + String baseDir = baseFileLocText.getText(); File file = new File(baseDir); - + final String[] list = file.list(); Vector tempList = new Vector(); for (int i = 0; i < list.length; i++) { File subDir = new File(file.getAbsolutePath() + File.separator + list[i]); - if ( subDir.exists() && subDir.isDirectory() ) - { + if (subDir.exists() && subDir.isDirectory()) { System.err.println(file.getAbsolutePath() + File.separator + list[i]); - if (list[i].equals("RegA") || list[i].equals("RegB")) - { + if (list[i].equals("RegA") || list[i].equals("RegB")) { tempList.add(list[i]); } } } - + volumeDirs = new String[tempList.size()]; - + int count = 0; - for ( int i = 0; i < volumeDirs.length; i++ ) { - count++; + for (int i = 0; i < volumeDirs.length; i++) { + count++; volumeDirs[i] = new String(baseDir + File.separator + tempList.elementAt(i)); } - if ( count == 0 ) { + if (count == 0) { baseFileLocText.setText(""); - //latticeOutputDir = null; - } - else { + // latticeOutputDir = null; + } else { baseFileDir = new String[count]; count = 0; - for ( int i = 0; i < volumeDirs.length; i++ ) { + for (int i = 0; i < volumeDirs.length; i++) { baseFileDir[count++] = volumeDirs[i]; } } - //baseFileLocText.setText("\\\\nearline4.hhmi.org\\shroff\\shrofflab\\efn-1\\Tracking\\Pos0\\For_Tracking\\RegB"); + // baseFileLocText.setText("\\\\nearline4.hhmi.org\\shroff\\shrofflab\\efn-1\\Tracking\\Pos0\\For_Tracking\\RegB"); latticeFileDir = new String(access_path + "\\RegB"); setDefaultInputList(latticeFileDir); rangeFusionText.setText("60-61"); - + actionPerformed(new ActionEvent(this, 0, "start")); } } - From 2d62e123ff640d255f517b9c01876a3aa622699f Mon Sep 17 00:00:00 2001 From: chend Date: Wed, 22 May 2024 10:51:05 -0400 Subject: [PATCH 14/45] Add a valueMarker for highlight the maximum value in the plot --- .../PlugInDialogVolumeRenderDualJanelia.java | 69 ++++++++++++------- 1 file changed, 44 insertions(+), 25 deletions(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 7e56055a31..f927e50cf7 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -124,10 +124,13 @@ import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; +import org.jfree.chart.plot.ValueMarker; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; +import org.jfree.ui.RectangleAnchor; +import org.jfree.ui.TextAnchor; import org.jocl.Sizeof; import WildMagic.LibFoundation.Mathematics.Mathf; @@ -2196,31 +2199,47 @@ private void annotationAnimationFromSpreadSheet() { // create a chart image from the values obtained via annotations public static BufferedImage createChartImage(List values, String title) throws IOException { - XYSeries series = new XYSeries("Data"); - for (int i = 0; i < values.size() - 1; i++) { - series.add(i, values.get(i)); - } - XYSeriesCollection dataset = new XYSeriesCollection(); - dataset.addSeries(series); - - // create a line chart - JFreeChart chart = ChartFactory.createXYLineChart(title, "Sample Index", "Value", dataset, - PlotOrientation.VERTICAL, true, true, false); - - XYPlot plot = chart.getXYPlot(); - XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); - renderer.setSeriesPaint(0, Color.BLUE); - renderer.setSeriesStroke(0, new BasicStroke(2.0f)); - plot.setRenderer(renderer); - - // create a buffered image to draw the chart - BufferedImage chartImage = new BufferedImage(400, 600, BufferedImage.TYPE_INT_RGB); - Graphics2D g2 = chartImage.createGraphics(); - chart.draw(g2, new java.awt.Rectangle(0, 0, 400, 600)); - g2.dispose(); - - return chartImage; - } + XYSeries series = new XYSeries("Data"); + float maxValue = -Float.MAX_VALUE; + int maxIndex = -1; + + for (int i = 0; i < values.size(); i++) { + float value = values.get(i); + series.add(i, value); + if (value > maxValue) { + maxValue = value; + maxIndex = i; + } + } + + XYSeriesCollection dataset = new XYSeriesCollection(); + dataset.addSeries(series); + + JFreeChart chart = ChartFactory.createXYLineChart( + title, "Index", "Value", dataset, + PlotOrientation.VERTICAL, true, true, false); + + XYPlot plot = chart.getXYPlot(); + XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); + renderer.setSeriesPaint(0, Color.BLUE); + renderer.setSeriesStroke(0, new BasicStroke(2.0f)); + plot.setRenderer(renderer); + + // Add a marker to show the maximum value + ValueMarker marker = new ValueMarker(maxIndex); + marker.setPaint(Color.RED); + marker.setLabel("Max Value: " + maxValue); + marker.setLabelAnchor(RectangleAnchor.CENTER); + marker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); + plot.addDomainMarker(marker); + + BufferedImage chartImage = new BufferedImage(400, 600, BufferedImage.TYPE_INT_RGB); + Graphics2D g2 = chartImage.createGraphics(); + chart.draw(g2, new java.awt.Rectangle(0, 0, 400, 600)); + g2.dispose(); + + return chartImage; + } // update the plot panel in responding to the clicking public void updatePlotPanel(List values, String title) { From ede406b403f0957098b9e6e582d5b5bed2248eb8 Mon Sep 17 00:00:00 2001 From: chend Date: Thu, 23 May 2024 16:02:49 -0400 Subject: [PATCH 15/45] Added the ValueMarker with mouseDragged function --- .../PlugInDialogVolumeRenderDualJanelia.java | 61 +++++++++++++++---- 1 file changed, 49 insertions(+), 12 deletions(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index f927e50cf7..e9ef13e748 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -78,9 +78,13 @@ import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.Insets; +import java.awt.Point; +import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.awt.image.BufferedImage; @@ -94,6 +98,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Vector; import java.util.stream.Collectors; @@ -129,8 +134,9 @@ import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; -import org.jfree.ui.RectangleAnchor; -import org.jfree.ui.TextAnchor; +import org.jfree.chart.ui.Layer; +import org.jfree.chart.ui.RectangleAnchor; +import org.jfree.chart.ui.TextAnchor; import org.jocl.Sizeof; import WildMagic.LibFoundation.Mathematics.Mathf; @@ -2198,7 +2204,7 @@ private void annotationAnimationFromSpreadSheet() { private JPanel plotPanel; // create a chart image from the values obtained via annotations - public static BufferedImage createChartImage(List values, String title) throws IOException { + public static JFreeChart createChart(List values, String title) throws IOException { XYSeries series = new XYSeries("Data"); float maxValue = -Float.MAX_VALUE; int maxIndex = -1; @@ -2232,20 +2238,24 @@ public static BufferedImage createChartImage(List values, String title) t marker.setLabelAnchor(RectangleAnchor.CENTER); marker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); plot.addDomainMarker(marker); - - BufferedImage chartImage = new BufferedImage(400, 600, BufferedImage.TYPE_INT_RGB); - Graphics2D g2 = chartImage.createGraphics(); - chart.draw(g2, new java.awt.Rectangle(0, 0, 400, 600)); - g2.dispose(); - - return chartImage; + + + return chart; } + + JFreeChart selectionChart; // update the plot panel in responding to the clicking - public void updatePlotPanel(List values, String title) { + public void updatePlotPanel(List values, String title) { SwingUtilities.invokeLater(() -> { try { - BufferedImage chartImage = createChartImage(values, title); + selectionChart = createChart(values, title); + + BufferedImage chartImage = new BufferedImage(400, 600, BufferedImage.TYPE_INT_RGB); + Graphics2D g2 = chartImage.createGraphics(); + selectionChart.draw(g2, new Rectangle(0, 0, 400, 600)); + g2.dispose(); + plotLabel.setIcon(new ImageIcon(chartImage)); plotPanel.revalidate(); plotPanel.repaint(); @@ -2255,6 +2265,7 @@ public void updatePlotPanel(List values, String title) { }); } + /** * User-interface initialization. If the UI is integrated all panels are * displayed in one window. Otherwise the UI is divided into volume display and @@ -2385,6 +2396,32 @@ public void actionPerformed(ActionEvent e) { plotPanel = new JPanel(new BorderLayout()); plotPanel.setBorder(new TitledBorder("Plot")); plotLabel = new JLabel(); + plotLabel.addMouseMotionListener(new MouseAdapter() { + public void mouseDragged(MouseEvent e) { + Point p = e.getPoint(); + System.out.println(p); + + Rectangle plotArea = new Rectangle(0, 0, 400, 600); + XYPlot plot = (XYPlot) selectionChart.getPlot(); + Collection dm = plot.getDomainMarkers(Layer.FOREGROUND); + ValueMarker firstDM = (ValueMarker) dm.toArray()[0]; + double xValue = plot.getDomainAxis().java2DToValue(p.getX(), plotArea, plot.getDomainAxisEdge()); + firstDM.setValue(xValue); + + XYSeries series = ((XYSeriesCollection) plot.getDataset()).getSeries(0); + double yValue = series.getY((int) xValue).doubleValue(); + firstDM.setLabel("Value: " + yValue); + + BufferedImage chartImage = new BufferedImage(400, 600, BufferedImage.TYPE_INT_RGB); + Graphics2D g2 = chartImage.createGraphics(); + selectionChart.draw(g2, new Rectangle(0, 0, 400, 600)); + g2.dispose(); + + plotLabel.setIcon(new ImageIcon(chartImage)); + plotPanel.revalidate(); + plotPanel.repaint(); + } + }); plotPanel.add(plotLabel, BorderLayout.CENTER); accuratePanel.add(plotPanel, BorderLayout.SOUTH); From 92b79ef2d535c294ab5f0408cba72133b1f634d7 Mon Sep 17 00:00:00 2001 From: chend Date: Fri, 24 May 2024 11:51:26 -0400 Subject: [PATCH 16/45] removed the EXIT_ON_CLOSE line --- src/org/janelia/mipav/BatchProcessLogFrame.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/org/janelia/mipav/BatchProcessLogFrame.java b/src/org/janelia/mipav/BatchProcessLogFrame.java index 5f6ac23e0c..cb0af8ef5e 100644 --- a/src/org/janelia/mipav/BatchProcessLogFrame.java +++ b/src/org/janelia/mipav/BatchProcessLogFrame.java @@ -44,6 +44,7 @@ public BatchProcessLogFrame() { // write code here this.frame = new JFrame("Batch Process Log"); this.layout = new FlowLayout(); + //this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); createGUI(); } From bf351750fc6ab5bf58c2e73ade0eb046d73cfac7 Mon Sep 17 00:00:00 2001 From: chend Date: Fri, 24 May 2024 11:52:25 -0400 Subject: [PATCH 17/45] updated removed all the EXIT_ON_CLOSE --- src/org/janelia/mipav/BatchProcessLogFrame.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/org/janelia/mipav/BatchProcessLogFrame.java b/src/org/janelia/mipav/BatchProcessLogFrame.java index cb0af8ef5e..2e891898ee 100644 --- a/src/org/janelia/mipav/BatchProcessLogFrame.java +++ b/src/org/janelia/mipav/BatchProcessLogFrame.java @@ -44,7 +44,6 @@ public BatchProcessLogFrame() { // write code here this.frame = new JFrame("Batch Process Log"); this.layout = new FlowLayout(); - //this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); createGUI(); } @@ -132,7 +131,6 @@ private void createGUI() { @Override public void actionPerformed(ActionEvent e) { - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); String data = textArea.getText().trim(); // read contents of text area into 'data' if (!data.equals("")) { From c69c82a10c0a61978e3b3a0a971862d7bd4f141a Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 28 May 2024 17:08:08 -0400 Subject: [PATCH 18/45] post code review, removed unused variables, comments, and added a dialog for failed file save. --- .../janelia/mipav/BatchProcessLogFrame.java | 73 +++++++------------ 1 file changed, 26 insertions(+), 47 deletions(-) diff --git a/src/org/janelia/mipav/BatchProcessLogFrame.java b/src/org/janelia/mipav/BatchProcessLogFrame.java index 2e891898ee..c19b28abda 100644 --- a/src/org/janelia/mipav/BatchProcessLogFrame.java +++ b/src/org/janelia/mipav/BatchProcessLogFrame.java @@ -1,77 +1,53 @@ package org.janelia.mipav; -import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; -import java.awt.LayoutManager; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; import java.awt.Dialog.ModalityType; -import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; +import java.io.FileNotFoundException; import java.io.FileWriter; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTextArea; -import javax.swing.JTextField; public class BatchProcessLogFrame implements ActionListener { - // add variables here + // variables JFrame frame; JButton buttonOk, buttonCopyAll, buttonBrowse; - JPanel panelButton, checkPanel, radioPanel; - JOptionPane panelButtonDialog, panelNoDupAnnDialog; - JDialog dialogAfterButton, noDupAnnDialog; - LayoutManager layout; - StringBuffer choices; - JRadioButton radioButtonA, radioButtonB; - String newline = "\n"; - JTextField textField; + JDialog noDupAnnDialog; JTextArea textArea; JFileChooser fileChooser; File file, directory; + // Constructor public BatchProcessLogFrame() { - // write code here this.frame = new JFrame("Batch Process Log"); - this.layout = new FlowLayout(); createGUI(); } private void createGUI() { + JOptionPane panelNoDupAnnDialog; + frame.setLayout(new GridBagLayout()); - // create buttonOK - buttonOk = new JButton("Ok to Close"); - // add button to actionListener + // create buttons and add top actionListener + buttonOk = new JButton("Ok"); buttonOk.addActionListener(this); - // add buttonCopyAll - buttonCopyAll = new JButton("Copy All"); - //buttonCopyAll.setBounds(70, 270, 150, 50); - //buttonCopyAll.setPreferredSize(new Dimension(200,500)); + buttonCopyAll = new JButton("Copy"); buttonCopyAll.addActionListener(this); - // add buttonBrowse - buttonBrowse = new JButton("Browse to save"); - //buttonBrowse.setBounds(70, 270, 150, 50); - //buttonBrowse.setPreferredSize(new Dimension(200,500)); + buttonBrowse = new JButton("Save"); buttonBrowse.addActionListener(this); - // create JPanel for the button - panelButton = new JPanel(); - panelButton.add(buttonOk); // Add button to JPanel - panelButton.add(buttonCopyAll); - panelButton.add(buttonBrowse); - // a dialog pop out when there is no content in the textArea panelNoDupAnnDialog = new JOptionPane("No duplicated annotations are found!"); noDupAnnDialog = panelNoDupAnnDialog.createDialog("Dialog"); @@ -99,29 +75,29 @@ private void createGUI() { c.gridy = 1; c.gridheight = 1; c.gridwidth = 1; - c.weightx = 1; // distribute space + c.weightx = 1; c.weighty = 0; - frame.add(buttonCopyAll, c); // add buttonCopyAll to the frame + frame.add(buttonCopyAll, c); // Anchor the buttonBrowse to the right (EAST) of the frame c.anchor = GridBagConstraints.EAST; c.fill = GridBagConstraints.NONE; c.gridx = 2; c.gridy = 1; - c.gridheight = 1; // see the height of the button the same as the height of checkbox1 + checkbox2 + c.gridheight = 1; c.weightx = 1; - frame.add(buttonBrowse, c); // add button to the frame + frame.add(buttonBrowse, c); // Anchor the "OK" button to the CENTER of the frame c.anchor = GridBagConstraints.CENTER; c.fill = GridBagConstraints.NONE; c.gridx = 1; c.gridy = 2; - c.gridheight = 2; // see the height of the button the same as the height of checkbox1 + checkbox2 + c.gridheight = 2; c.weightx = 1; - frame.add(buttonOk, c); // add button to the frame + frame.add(buttonOk, c); - // Display the window. + // Display the frame. frame.setBounds(80, 80, 80, 80); frame.pack(); frame.setVisible(true); @@ -131,6 +107,7 @@ private void createGUI() { @Override public void actionPerformed(ActionEvent e) { + String newline = "\n"; String data = textArea.getText().trim(); // read contents of text area into 'data' if (!data.equals("")) { @@ -143,9 +120,6 @@ public void actionPerformed(ActionEvent e) { clpbrd.setContents(stringSelection, null); JOptionPane.showMessageDialog(null, "Texts are copied to clipboard!"); } else if (e.getSource() == buttonBrowse) { - // fileChooser = new JFileChooser("C:\\Users\\chend\\Desktop"); - // fileChooser = new JFileChooser(latticeStraighten.outputDirectory); - fileChooser.setSelectedFile(new File("Duplicated_Annotations.txt")); int returnVal = fileChooser.showSaveDialog(frame); @@ -154,12 +128,17 @@ public void actionPerformed(ActionEvent e) { // save to file try (FileWriter fw = new FileWriter(fileChooser.getSelectedFile())) { fw.write(textArea.getText()); + textArea.append("\n\n <<" + file.getName() + ">> is saved to: " + + fileChooser.getSelectedFile().getAbsolutePath() + newline); + } catch (FileNotFoundException ex) { + JOptionPane panelSaveFailedDialog = new JOptionPane("File save failed! " + "\n" + ex); + JDialog saveFailedDialog = panelSaveFailedDialog.createDialog("Dialog"); + saveFailedDialog.setModalityType(ModalityType.APPLICATION_MODAL); + saveFailedDialog.setVisible(true); + } catch (Exception ex) { ex.printStackTrace(); } - - textArea.append("\n\n <<" + file.getName() + ">> is saved to: " - + fileChooser.getSelectedFile().getAbsolutePath() + newline); } } } else { From 3df941bd93b83d25050ba69519739677adf828c9 Mon Sep 17 00:00:00 2001 From: chend Date: Fri, 31 May 2024 16:39:22 -0400 Subject: [PATCH 19/45] Added chartPanel and features to move the marker along with the mouse dragged and reflects the values --- .../PlugInDialogVolumeRenderDualJanelia.java | 138 ++++++++++-------- 1 file changed, 81 insertions(+), 57 deletions(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index e9ef13e748..3c373ff28d 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -85,8 +85,10 @@ import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.awt.event.MouseMotionAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; +import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -98,6 +100,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Vector; @@ -127,7 +130,11 @@ import org.janelia.mipav.test.Plot; import org.jfree.chart.ChartFactory; +import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; +import org.jfree.chart.axis.ValueAxis; +import org.jfree.chart.event.MarkerChangeEvent; +import org.jfree.chart.event.MarkerChangeListener; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.ValueMarker; import org.jfree.chart.plot.XYPlot; @@ -2199,12 +2206,12 @@ private void annotationAnimationFromSpreadSheet() { progress.dispose(); progress = null; } - - private JLabel plotLabel; - private JPanel plotPanel; + + private JFreeChart selectionChart; + private ChartPanel chartPanel; // create a chart image from the values obtained via annotations - public static JFreeChart createChart(List values, String title) throws IOException { + public JFreeChart createChart(List values, String title) { XYSeries series = new XYSeries("Data"); float maxValue = -Float.MAX_VALUE; int maxIndex = -1; @@ -2239,31 +2246,36 @@ public static JFreeChart createChart(List values, String title) throws IO marker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); plot.addDomainMarker(marker); - + marker.addChangeListener(new MarkerChangeListener() { + @Override + public void markerChanged(MarkerChangeEvent event) { + System.out.println("Marker changed"); + } + }); + return chart; - } - - JFreeChart selectionChart; + } // update the plot panel in responding to the clicking - public void updatePlotPanel(List values, String title) { - SwingUtilities.invokeLater(() -> { - try { - selectionChart = createChart(values, title); - - BufferedImage chartImage = new BufferedImage(400, 600, BufferedImage.TYPE_INT_RGB); - Graphics2D g2 = chartImage.createGraphics(); - selectionChart.draw(g2, new Rectangle(0, 0, 400, 600)); - g2.dispose(); - - plotLabel.setIcon(new ImageIcon(chartImage)); - plotPanel.revalidate(); - plotPanel.repaint(); - } catch (IOException e) { - System.err.println("Error updating plot: " + e.getMessage()); - } - }); - } + public void updatePlotPanel(List values, String title) { + SwingUtilities.invokeLater(() -> { + selectionChart = createChart(values, title); + chartPanel.setChart(selectionChart); + + + chartPanel.setPreferredSize(new Dimension(600, 400)); + chartPanel.setMouseWheelEnabled(true); + + chartPanel.setDomainZoomable(false); + chartPanel.setRangeZoomable(false); + chartPanel.setMouseZoomable(false, false); + chartPanel.setFillZoomRectangle(false); + chartPanel.setZoomAroundAnchor(false); + + chartPanel.revalidate(); + chartPanel.repaint(); + }); + } /** @@ -2391,39 +2403,51 @@ public void actionPerformed(ActionEvent e) { // Add the accurateModeButton to the buttonPanel, then add the buttonPanel to // the accuratePanel buttonPanel.add(accurateModeButton); - accuratePanel.add(buttonPanel, BorderLayout.CENTER); - - plotPanel = new JPanel(new BorderLayout()); - plotPanel.setBorder(new TitledBorder("Plot")); - plotLabel = new JLabel(); - plotLabel.addMouseMotionListener(new MouseAdapter() { - public void mouseDragged(MouseEvent e) { - Point p = e.getPoint(); - System.out.println(p); - - Rectangle plotArea = new Rectangle(0, 0, 400, 600); - XYPlot plot = (XYPlot) selectionChart.getPlot(); - Collection dm = plot.getDomainMarkers(Layer.FOREGROUND); - ValueMarker firstDM = (ValueMarker) dm.toArray()[0]; - double xValue = plot.getDomainAxis().java2DToValue(p.getX(), plotArea, plot.getDomainAxisEdge()); - firstDM.setValue(xValue); - - XYSeries series = ((XYSeriesCollection) plot.getDataset()).getSeries(0); - double yValue = series.getY((int) xValue).doubleValue(); - firstDM.setLabel("Value: " + yValue); + accuratePanel.add(buttonPanel, BorderLayout.NORTH); - BufferedImage chartImage = new BufferedImage(400, 600, BufferedImage.TYPE_INT_RGB); - Graphics2D g2 = chartImage.createGraphics(); - selectionChart.draw(g2, new Rectangle(0, 0, 400, 600)); - g2.dispose(); - - plotLabel.setIcon(new ImageIcon(chartImage)); - plotPanel.revalidate(); - plotPanel.repaint(); - } + selectionChart = createChart(Arrays.asList(1.0f, 2.0f, 3.0f), "Chart"); + chartPanel = new ChartPanel(selectionChart); + + chartPanel.addMouseMotionListener(new MouseAdapter() { + @Override + public void mouseDragged(MouseEvent e) { + + Rectangle2D plotArea = chartPanel.getScreenDataArea(); + XYPlot plot = selectionChart.getXYPlot(); + ValueAxis xAxis = plot.getDomainAxis(); + double x = xAxis.java2DToValue(e.getX(), plotArea, plot.getDomainAxisEdge()); + + // Calculate the corresponding Y-value + XYSeriesCollection dataset = (XYSeriesCollection) plot.getDataset(); + XYSeries series = dataset.getSeries(0); + + int index = findNearestXIndex(series, x); + double y = series.getY(index).doubleValue(); + + ValueMarker marker = (ValueMarker) plot.getDomainMarkers(Layer.FOREGROUND).iterator().next(); + marker.setValue(x); + marker.setLabel(String.format("Value: %.2f", y)); + + chartPanel.repaint(); + e.consume(); + } + + private int findNearestXIndex(XYSeries series, double x) { + double minDistance = Double.MAX_VALUE; + int nearestIndex = -1; + + for (int i = 0; i < series.getItemCount(); i++) { + double distance = Math.abs(series.getX(i).doubleValue() - x); + if (distance < minDistance) { + minDistance = distance; + nearestIndex = i; + } + } + return nearestIndex; + } }); - plotPanel.add(plotLabel, BorderLayout.CENTER); - accuratePanel.add(plotPanel, BorderLayout.SOUTH); + + accuratePanel.add(chartPanel, BorderLayout.CENTER); tabbedPane = new JTabbedPane(); tabbedPane.addTab("LUT", null, lutPanel); From 96a934d581c94ee68a5973b47d51aa03877accff Mon Sep 17 00:00:00 2001 From: chend Date: Mon, 3 Jun 2024 17:04:38 -0400 Subject: [PATCH 20/45] added function to be able to move the marker in the plot to move the 3D marker along the array. --- .../WildMagic/VolumeTriPlanarRender.java | 13 ++-- .../plugins/worm/untwisting/PlotListener.java | 5 +- .../PlugInDialogVolumeRenderDualJanelia.java | 68 ++++++++++++++++--- 3 files changed, 73 insertions(+), 13 deletions(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java index 3d7c722c48..a7f236c012 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java @@ -859,6 +859,8 @@ private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPtAccurate) { List plotAccurateValues = new ArrayList<>(); List plotValues = new ArrayList<>(); + List points = new ArrayList<>(); + m_kPicker.Execute(m_kVolumeRayCast.GetScene(),kPos,kDir,0.0f, Float.MAX_VALUE); @@ -1006,6 +1008,9 @@ private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPtAccurate) plotValues.add(value); output.writeData(p0.X, p0.Y, p0.Z, value); } + Vector3f p2 = new Vector3f(); + p2.copy(p0); + points.add(p2); } @@ -1073,9 +1078,9 @@ else if ( !doAutomaticLabels() ) } } if (m_kVOIInterface.isAccurateMode()) { - setPlot(plotAccurateValues, "Accurate Values"); + setPlot(points, plotAccurateValues, "Accurate Values"); } else { - setPlot(plotValues, "3-Color Values"); + setPlot(points, plotValues, "3-Color Values"); } } @@ -1083,9 +1088,9 @@ else if ( !doAutomaticLabels() ) private Set listeners = new HashSet<>(); // update all listeners with new plot values and title. - public void setPlot(List values, String title) { + public void setPlot(List points, List values, String title) { for (PlotListener listener : listeners) { - listener.updatePlotPanel(values, title); + listener.updatePlotPanel(points, values, title); } } diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlotListener.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlotListener.java index b080398fa8..ab3ca37e59 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlotListener.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlotListener.java @@ -2,6 +2,8 @@ import java.util.List; +import WildMagic.LibFoundation.Mathematics.Vector3f; + /** * Interface for handling updates to a plot panel. Classes that need to respond * to plot data changes should implement this interface. An instance of a class @@ -16,12 +18,13 @@ public interface PlotListener { /** * Invoked to update the plot panel with new data. + * @param points * * @param values The list of data values to plot. Each value represents a data * point on the plot. * @param title The title of the plot, describing the data or context of what * is being displayed */ - void updatePlotPanel(List values, String title); + void updatePlotPanel(List points, List values, String title); } diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 3c373ff28d..49026fe9fa 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -2209,6 +2209,7 @@ private void annotationAnimationFromSpreadSheet() { private JFreeChart selectionChart; private ChartPanel chartPanel; + private List chart3DPoints; // create a chart image from the values obtained via annotations public JFreeChart createChart(List values, String title) { @@ -2237,6 +2238,7 @@ public JFreeChart createChart(List values, String title) { renderer.setSeriesPaint(0, Color.BLUE); renderer.setSeriesStroke(0, new BasicStroke(2.0f)); plot.setRenderer(renderer); + // Add a marker to show the maximum value ValueMarker marker = new ValueMarker(maxIndex); @@ -2246,18 +2248,65 @@ public JFreeChart createChart(List values, String title) { marker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); plot.addDomainMarker(marker); - marker.addChangeListener(new MarkerChangeListener() { - @Override - public void markerChanged(MarkerChangeEvent event) { - System.out.println("Marker changed"); - } - }); + marker.addChangeListener(new MarkerChangeListener() { + @Override + public void markerChanged(MarkerChangeEvent event) { + ValueMarker marker = (ValueMarker) event.getMarker(); + + float tq = (float) marker.getValue(); + + int t0 = (int) Math.floor(tq); + int t1 = (int) Math.ceil(tq); + + if (t0 >= 0 && t1 < chart3DPoints.size() && t0 != t1) { + + Vector3f interpolatedPoint = interpolate(t0, t1, tq); + System.out.println("Interpolated 3D Point at index: " + tq + " is ptq: " + interpolatedPoint); + update3DModel(interpolatedPoint); + + } else if (t0 == t1 && t0 < chart3DPoints.size()) { // if t0 == t1 + Vector3f exactPoint = chart3DPoints.get(t0); + System.out.println("Exact 3D Point at index: " + t0 + " is ptq: " + exactPoint); + update3DModel(exactPoint); + } + } + - return chart; + private void update3DModel(Vector3f point) { + + //add something + System.out.println("Updating 3D model for point: " + point); + activeImage.voiManager.modify3DMarker(point, point, point); + } + + public Vector3f interpolate(int t0, int t1, float tq) { + Vector3f pt0 = chart3DPoints.get(t0); + Vector3f pt1 = chart3DPoints.get(t1); + System.out.println("pt0: "+ pt0); + System.out.println("pt1: " + pt1); + float m0 = (t1 - tq) / (t1 - t0); + float m1 = (tq - t0) / (t1 - t0); + + float x = (float) (m0 * pt0.X + m1 * pt1.X); + float y = (float) (m0 * pt0.Y + m1 * pt1.Y); + float z = (float) (m0 * pt0.Z + m1 * pt1.Z); + + //pt0 = pt0.scale(m0); + //pt1 = pt1.scale(m1); + //Vector3f ptq = Vector3f.add(pt0, pt1); + + Vector3f ptq = new Vector3f(x, y, z); + + return ptq; + } + }); + + return chart; } + // update the plot panel in responding to the clicking - public void updatePlotPanel(List values, String title) { + public void updatePlotPanel(List points, List values, String title) { SwingUtilities.invokeLater(() -> { selectionChart = createChart(values, title); chartPanel.setChart(selectionChart); @@ -2271,6 +2320,9 @@ public void updatePlotPanel(List values, String title) { chartPanel.setMouseZoomable(false, false); chartPanel.setFillZoomRectangle(false); chartPanel.setZoomAroundAnchor(false); + + chart3DPoints = points; + chartPanel.revalidate(); chartPanel.repaint(); From 79286d27b887e12998757c36488502efb1dbc9f2 Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 4 Jun 2024 14:38:13 -0400 Subject: [PATCH 21/45] Fixed the first 3D marker so that it would move along with mouseDrag from the plot --- .../view/renderer/WildMagic/WormUntwisting/LatticeModel.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/LatticeModel.java b/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/LatticeModel.java index 0076dc92d0..6b06bac9db 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/LatticeModel.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/LatticeModel.java @@ -8427,6 +8427,7 @@ private void updateLattice(final boolean rebuild) { } if (right.getCurves().size() == 0) { updateLatticeListeners(); + updateSelected(); return; } From 5fb7f7a67a96c28647b1844b0b4c1a540cf15e9e Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 4 Jun 2024 15:42:50 -0400 Subject: [PATCH 22/45] ValueOutput class is deleted due to no longer needed --- test/org/janelia/mipav/test/ValueOutput.java | 44 -------------------- 1 file changed, 44 deletions(-) delete mode 100644 test/org/janelia/mipav/test/ValueOutput.java diff --git a/test/org/janelia/mipav/test/ValueOutput.java b/test/org/janelia/mipav/test/ValueOutput.java deleted file mode 100644 index aadf11a6b6..0000000000 --- a/test/org/janelia/mipav/test/ValueOutput.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.janelia.mipav.test; - - -import java.io.FileWriter; -import java.io.IOException; - -public class ValueOutput { - private FileWriter fileWriter; - - public ValueOutput(String fileName) { - try { - this.fileWriter = new FileWriter(fileName); - // Writing the header - this.fileWriter.append("p0.X,p0.Y,p0.Z,value\n"); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - - public void writeData(float x, float y, float z, float value) { - // Writing data in the CSV format - try { - this.fileWriter.append(String.format("%.1f,%.1f,%.1f,%.1f\n", x, y, z, value)); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public void close() { - // Closing the FileWriter - try { - this.fileWriter.close(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} - - - From 7fde24f6451bd3906b1da13638391d3fa9008544 Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 4 Jun 2024 15:44:28 -0400 Subject: [PATCH 23/45] comment added to explain adding updateSelected for fix the first 3D points to be movable when mouseDrag the marker in the plot --- .../view/renderer/WildMagic/WormUntwisting/LatticeModel.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/LatticeModel.java b/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/LatticeModel.java index 6b06bac9db..5e0db20054 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/LatticeModel.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/LatticeModel.java @@ -8427,6 +8427,8 @@ private void updateLattice(final boolean rebuild) { } if (right.getCurves().size() == 0) { updateLatticeListeners(); + // added updateSelected() to fix the movable of first 3D marker to reflects the + // mourseDrag of the marker in the plot updateSelected(); return; } From 00996d7b2647909c1c957a13bb26b814622cfb01 Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 4 Jun 2024 15:49:47 -0400 Subject: [PATCH 24/45] added comments and documentations as well as deleted elements used for debugging and valueOutput --- .../VOI/VOILatticeManagerInterface.java | 59 +++-- .../WildMagic/VolumeTriPlanarRender.java | 20 +- .../PlugInDialogVolumeRenderDualJanelia.java | 240 ++++++++++-------- 3 files changed, 174 insertions(+), 145 deletions(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java b/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java index 933e948e85..5c3cc9de37 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java @@ -1096,66 +1096,73 @@ private void setVoxelSize() defaultVoxelSize = new JTextField( "" + VoxelSize ); defaultVoxelSize.addActionListener(this); JPanel panel = new JPanel( new GridLayout(1, 3) ); - panel.add( new JLabel( "Current Voxel Size" ) ); - panel.add( defaultVoxelSize ); - panel.add( new JLabel("um") ); + panel.add(new JLabel("Current Voxel Size")); + panel.add(defaultVoxelSize); + panel.add(new JLabel("um")); updateVoxelSize = new JDialog(); updateVoxelSize.getContentPane().setLayout(new BorderLayout()); - updateVoxelSize.setModalityType( JDialog.ModalityType.APPLICATION_MODAL); - updateVoxelSize.getContentPane().add( panel, BorderLayout.NORTH ); - updateVoxelSize.getContentPane().add( OK, BorderLayout.SOUTH ); + updateVoxelSize.setModalityType(JDialog.ModalityType.APPLICATION_MODAL); + updateVoxelSize.getContentPane().add(panel, BorderLayout.NORTH); + updateVoxelSize.getContentPane().add(OK, BorderLayout.SOUTH); updateVoxelSize.pack(); updateVoxelSize.setResizable(false); MipavUtil.centerOnScreen(updateVoxelSize); updateVoxelSize.setVisible(true); } - - public void mouseReleased(MouseEvent e) { + + // Handle event when mouse button is released + public void mouseReleased(MouseEvent e) { movingPickedPoint = false; - if(editingCrossSections) { + if (editingCrossSections) { latticeModel.showLattice(true); } - } + } + // Handle key press events if the key is pressed public void keyPressed(KeyEvent e) { isShiftSelected = e.isShiftDown(); } - - + + // Maintains state for accurate mode and listeners for its changes private boolean accurateMode = true; - // TODO: might want to change the array into set - private List listeners = new ArrayList<>(); - - public boolean isAccurateMode() { - return accurateMode; - } + // List of listeners that will be notified when accurate mode changes + // TODO: might want to change the array into set + private List listeners = new ArrayList<>(); + // Check if the accurate mode is currently enabled + public boolean isAccurateMode() { + return accurateMode; + } + + // Toggle the accurate mode state and notify all listeners public void toggleAccurateMode() { accurateMode = !accurateMode; setAccurateMode(accurateMode); } - + + // Set the accurate mode and notify listeners about the mode change public void setAccurateMode(boolean accurateMode) { this.accurateMode = accurateMode; for (AccurateModeListener listener : listeners) { listener.accurateModeChanged(accurateMode); } } - - public void addAccurateModeListener(AccurateModeListener listener) { - listeners.add(listener); - } - + // Add a new listener to be notified about accurate mode changes + public void addAccurateModeListener(AccurateModeListener listener) { + listeners.add(listener); + } + + // Handle key release events and perform actions based on the key released public void keyReleased(KeyEvent e) { isShiftSelected = e.isShiftDown(); movingPickedPoint = false; - System.out.println(e.getKeyChar()); - + + // Specific actions based on key codes, e.g., toggle accurate mode on 'M' key if (e.getKeyCode() == KeyEvent.VK_M) { toggleAccurateMode(); } diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java index a7f236c012..072cc22049 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java @@ -68,7 +68,6 @@ import org.janelia.mipav.plugins.worm.untwisting.AccurateModeListener; import org.janelia.mipav.plugins.worm.untwisting.PlotListener; import org.janelia.mipav.plugins.worm.untwisting.PlugInDialogVolumeRenderDualJanelia; -import org.janelia.mipav.test.ValueOutput; import WildMagic.LibFoundation.Mathematics.ColorRGBA; import WildMagic.LibFoundation.Mathematics.Mathf; @@ -857,11 +856,11 @@ else if ( m_bErase ) private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPtAccurate) { + // Lists to store values and points for plot updates or further processing List plotAccurateValues = new ArrayList<>(); List plotValues = new ArrayList<>(); List points = new ArrayList<>(); - m_kPicker.Execute(m_kVolumeRayCast.GetScene(),kPos,kDir,0.0f, Float.MAX_VALUE); @@ -874,8 +873,6 @@ private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPtAccurate) float distances[] = new float[m_kPicker.Records.size()]; long time = System.currentTimeMillis(); - ValueOutput outputAccurate = new ValueOutput("outputAccurate" + time + ".csv"); - ValueOutput output = new ValueOutput("output" + time + ".csv"); for ( int i = 0; i < m_kPicker.Records.size(); i++ ) { @@ -970,9 +967,7 @@ private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPtAccurate) maxValueAccurate = valueAccurate; maxPtAccurate.copy(p0); } - plotAccurateValues.add(valueAccurate); - // Write data to CSV - outputAccurate.writeData(p0.X, p0.Y, p0.Z, valueAccurate); + plotAccurateValues.add(valueAccurate);// add value to the list for plotting } else { //this is not working, made for more than 3 colors. -Diyi Chen May 1, 2024 @@ -1005,21 +1000,12 @@ private void PickVolume3D(Vector3f kPos, Vector3f kDir, Vector3f maxPtAccurate) maxValue = value; maxPt.copy(p0); } - plotValues.add(value); - output.writeData(p0.X, p0.Y, p0.Z, value); + plotValues.add(value);// add value to the list for plotting } Vector3f p2 = new Vector3f(); p2.copy(p0); points.add(p2); } - - - output.writeData(maxPt.X, maxPt.Y, maxPt.Z, maxValue); - outputAccurate.writeData(maxPtAccurate.X, maxPtAccurate.Y, maxPtAccurate.Z, maxValueAccurate); - - // Close the output stream - outputAccurate.close(); - output.close(); if (!m_kVOIInterface.isAccurateMode()) { maxValueAccurate = maxValue; diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 49026fe9fa..fef6397357 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -1350,6 +1350,15 @@ public boolean updateImages(ModelLUT LUTa, ModelLUT LUTb, boolean flag, int inte return false; } + /** + * Responds to changes in accurate mode by updating the button's appearance and + * text to reflect the current mode state. This method is typically called by a + * listener that is notified when accurate mode settings are toggled elsewhere + * in the application. + * + * @param isAccurateMode A boolean indicating whether accurate mode is enabled + * (true) or disabled (false). + */ @Override public void accurateModeChanged(boolean isAccurateMode) { accurateModeButton.setSelected(isAccurateMode); @@ -2211,43 +2220,51 @@ private void annotationAnimationFromSpreadSheet() { private ChartPanel chartPanel; private List chart3DPoints; - // create a chart image from the values obtained via annotations + /** + * Creates a chart using a list of values and assigns it a title. Each value in + * the list is plotted against its index. + * + * @param values List of floating-point values for the Y-axis. + * @param title Title of the chart. + * @return A JFreeChart object fully initialized. + */ public JFreeChart createChart(List values, String title) { - XYSeries series = new XYSeries("Data"); - float maxValue = -Float.MAX_VALUE; - int maxIndex = -1; - - for (int i = 0; i < values.size(); i++) { - float value = values.get(i); - series.add(i, value); - if (value > maxValue) { - maxValue = value; - maxIndex = i; - } - } - - XYSeriesCollection dataset = new XYSeriesCollection(); - dataset.addSeries(series); - - JFreeChart chart = ChartFactory.createXYLineChart( - title, "Index", "Value", dataset, - PlotOrientation.VERTICAL, true, true, false); - - XYPlot plot = chart.getXYPlot(); - XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); - renderer.setSeriesPaint(0, Color.BLUE); - renderer.setSeriesStroke(0, new BasicStroke(2.0f)); - plot.setRenderer(renderer); - - - // Add a marker to show the maximum value - ValueMarker marker = new ValueMarker(maxIndex); - marker.setPaint(Color.RED); - marker.setLabel("Max Value: " + maxValue); - marker.setLabelAnchor(RectangleAnchor.CENTER); - marker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); - plot.addDomainMarker(marker); - + XYSeries series = new XYSeries("Data"); + float maxValue = -Float.MAX_VALUE; + int maxIndex = -1; + + // Populate the series with values and track the maximum value and its index + for (int i = 0; i < values.size(); i++) { + float value = values.get(i); + series.add(i, value); + if (value > maxValue) { + maxValue = value; + maxIndex = i; + } + } + + XYSeriesCollection dataset = new XYSeriesCollection(); + dataset.addSeries(series); + + // Create the chart + JFreeChart chart = ChartFactory.createXYLineChart(title, "Index", "Value", dataset, PlotOrientation.VERTICAL, + true, true, false); + + XYPlot plot = chart.getXYPlot(); + XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); + renderer.setSeriesPaint(0, Color.BLUE); + renderer.setSeriesStroke(0, new BasicStroke(2.0f)); + plot.setRenderer(renderer); + + // Add a dynamic marker at the position of the maximum value + ValueMarker marker = new ValueMarker(maxIndex); + marker.setPaint(Color.RED); + marker.setLabel("Max Value: " + maxValue); + marker.setLabelAnchor(RectangleAnchor.CENTER); + marker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); + plot.addDomainMarker(marker); + + // Set up a marker change listener to handle marker position changes marker.addChangeListener(new MarkerChangeListener() { @Override public void markerChanged(MarkerChangeEvent event) { @@ -2255,34 +2272,43 @@ public void markerChanged(MarkerChangeEvent event) { float tq = (float) marker.getValue(); + // Calculate the indices for interpolation int t0 = (int) Math.floor(tq); int t1 = (int) Math.ceil(tq); - + if (t0 >= 0 && t1 < chart3DPoints.size() && t0 != t1) { Vector3f interpolatedPoint = interpolate(t0, t1, tq); - System.out.println("Interpolated 3D Point at index: " + tq + " is ptq: " + interpolatedPoint); update3DModel(interpolatedPoint); - + } else if (t0 == t1 && t0 < chart3DPoints.size()) { // if t0 == t1 Vector3f exactPoint = chart3DPoints.get(t0); - System.out.println("Exact 3D Point at index: " + t0 + " is ptq: " + exactPoint); update3DModel(exactPoint); } } - + /** + * Updates the 3D model visualization based on a new 3D point. + * + * @param point The 3D point that the model needs to reflect. + */ private void update3DModel(Vector3f point) { - - //add something - System.out.println("Updating 3D model for point: " + point); activeImage.voiManager.modify3DMarker(point, point, point); } + /** + * Interpolates between two 3D points based on a given interpolation parameter. + * + * @param t0 Index of the first point. + * @param t1 Index of the second point. + * @param tq The interpolation parameter, typically derived from the marker's + * position. + * @return The interpolated 3D point. + */ public Vector3f interpolate(int t0, int t1, float tq) { Vector3f pt0 = chart3DPoints.get(t0); Vector3f pt1 = chart3DPoints.get(t1); - System.out.println("pt0: "+ pt0); + System.out.println("pt0: " + pt0); System.out.println("pt1: " + pt1); float m0 = (t1 - tq) / (t1 - t0); float m1 = (tq - t0) / (t1 - t0); @@ -2290,10 +2316,6 @@ public Vector3f interpolate(int t0, int t1, float tq) { float x = (float) (m0 * pt0.X + m1 * pt1.X); float y = (float) (m0 * pt0.Y + m1 * pt1.Y); float z = (float) (m0 * pt0.Z + m1 * pt1.Z); - - //pt0 = pt0.scale(m0); - //pt1 = pt1.scale(m1); - //Vector3f ptq = Vector3f.add(pt0, pt1); Vector3f ptq = new Vector3f(x, y, z); @@ -2303,32 +2325,35 @@ public Vector3f interpolate(int t0, int t1, float tq) { return chart; } - - // update the plot panel in responding to the clicking + /** + * Updates the plot panel by invoking the chart creation and updating the + * display. + * + * @param points List of 3D points for the plot. + * @param values List of values corresponding to each 3D point. + * @param title Title for the updated plot. + */ public void updatePlotPanel(List points, List values, String title) { - SwingUtilities.invokeLater(() -> { - selectionChart = createChart(values, title); - chartPanel.setChart(selectionChart); - - - chartPanel.setPreferredSize(new Dimension(600, 400)); - chartPanel.setMouseWheelEnabled(true); - - chartPanel.setDomainZoomable(false); - chartPanel.setRangeZoomable(false); - chartPanel.setMouseZoomable(false, false); - chartPanel.setFillZoomRectangle(false); - chartPanel.setZoomAroundAnchor(false); - - chart3DPoints = points; - - - chartPanel.revalidate(); - chartPanel.repaint(); - }); - } + SwingUtilities.invokeLater(() -> { + selectionChart = createChart(values, title); + chartPanel.setChart(selectionChart); + chartPanel.setPreferredSize(new Dimension(600, 400)); + chartPanel.setMouseWheelEnabled(true); + + chartPanel.setDomainZoomable(false); + chartPanel.setRangeZoomable(false); + chartPanel.setMouseZoomable(false, false); + chartPanel.setFillZoomRectangle(false); + chartPanel.setZoomAroundAnchor(false); + + chart3DPoints = points; + + chartPanel.revalidate(); + chartPanel.repaint(); + }); + } /** * User-interface initialization. If the UI is integrated all panels are @@ -2431,11 +2456,11 @@ private void init() { opacityPanel.add(opacityTab, BorderLayout.CENTER); clipPanel = new JPanel(new BorderLayout()); - // added a panel with button to be able to turn off accurate mode and switch to - // 3-color mode(not working currently) + // Create a panel for toggling between accurate and 3-color modes(not working + // currently) accuratePanel = new JPanel(new BorderLayout()); JPanel buttonPanel = new JPanel(); - // accurateModeButton = new JButton("Accurate Mode"); + // Initialize a toggle button for switching modes accurateModeButton = new JToggleButton("Accurate Mode"); accurateModeChanged(true); accurateModeButton.setPreferredSize(new Dimension(200, 50)); @@ -2444,62 +2469,71 @@ private void init() { accurateModeButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - // activeImage.voiManager.toggleAccurateMode(); - JToggleButton toggleButton = (JToggleButton) e.getSource(); boolean isSelected = toggleButton.isSelected(); activeImage.voiManager.toggleAccurateMode(); } }); - // Add the accurateModeButton to the buttonPanel, then add the buttonPanel to - // the accuratePanel + // Add the toggle button to the button panel and then add the panel to the + // accurate mode panel buttonPanel.add(accurateModeButton); accuratePanel.add(buttonPanel, BorderLayout.NORTH); - + + // Create a chart selectionChart = createChart(Arrays.asList(1.0f, 2.0f, 3.0f), "Chart"); chartPanel = new ChartPanel(selectionChart); + // Add a mouse motion listener to handle dragging movements over the chart chartPanel.addMouseMotionListener(new MouseAdapter() { @Override public void mouseDragged(MouseEvent e) { - + // Get the plot area for accurate coordinate calculation Rectangle2D plotArea = chartPanel.getScreenDataArea(); XYPlot plot = selectionChart.getXYPlot(); ValueAxis xAxis = plot.getDomainAxis(); double x = xAxis.java2DToValue(e.getX(), plotArea, plot.getDomainAxisEdge()); - // Calculate the corresponding Y-value + // Determine the corresponding Y-value by finding the nearest index XYSeriesCollection dataset = (XYSeriesCollection) plot.getDataset(); XYSeries series = dataset.getSeries(0); - int index = findNearestXIndex(series, x); - double y = series.getY(index).doubleValue(); - + int index = findNearestXIndex(series, x); + double y = series.getY(index).doubleValue(); + + // Update the marker's value and label on the chart ValueMarker marker = (ValueMarker) plot.getDomainMarkers(Layer.FOREGROUND).iterator().next(); marker.setValue(x); - marker.setLabel(String.format("Value: %.2f", y)); + marker.setLabel(String.format("Value: %.2f", y)); + // Redraw the chart to reflect changes chartPanel.repaint(); e.consume(); } - + + /** + * Finds the index of the closest X value to the given target x. + * + * @param series The series of data points. + * @param x The target x value to match. + * @return The index of the closest x value. + */ private int findNearestXIndex(XYSeries series, double x) { - double minDistance = Double.MAX_VALUE; - int nearestIndex = -1; - - for (int i = 0; i < series.getItemCount(); i++) { - double distance = Math.abs(series.getX(i).doubleValue() - x); - if (distance < minDistance) { - minDistance = distance; - nearestIndex = i; - } - } - return nearestIndex; - } + double minDistance = Double.MAX_VALUE; + int nearestIndex = -1; + + for (int i = 0; i < series.getItemCount(); i++) { + double distance = Math.abs(series.getX(i).doubleValue() - x); + if (distance < minDistance) { + minDistance = distance; + nearestIndex = i; + } + } + return nearestIndex; + } }); - accuratePanel.add(chartPanel, BorderLayout.CENTER); + accuratePanel.add(chartPanel, BorderLayout.CENTER); tabbedPane = new JTabbedPane(); tabbedPane.addTab("LUT", null, lutPanel); @@ -3533,9 +3567,11 @@ private void updateSurfacePanels() { // } } + /** + * Updates the selection panel method ensures that the user interface components + * related to VOI management reflect the current operational mode. + */ private void updateSelectionPanel() { - // accurateModeChanged(activeImage.voiManager.isAccurateMode()); - VOILatticeManagerInterface voiManager = activeImage.voiManager; voiManager.setAccurateMode(voiManager.isAccurateMode()); } From 1f44094a2b3cc5c05097f1482a368e6b0ad80881 Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 4 Jun 2024 16:09:50 -0400 Subject: [PATCH 25/45] changed setPlot into more specific name: notifyPlotListeners --- .../view/renderer/WildMagic/VolumeTriPlanarRender.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java index 072cc22049..28b3b15685 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java @@ -1064,9 +1064,9 @@ else if ( !doAutomaticLabels() ) } } if (m_kVOIInterface.isAccurateMode()) { - setPlot(points, plotAccurateValues, "Accurate Values"); + notifyPlotListeners(points, plotAccurateValues, "Accurate Values"); } else { - setPlot(points, plotValues, "3-Color Values"); + notifyPlotListeners(points, plotValues, "3-Color Values"); } } @@ -1074,7 +1074,7 @@ else if ( !doAutomaticLabels() ) private Set listeners = new HashSet<>(); // update all listeners with new plot values and title. - public void setPlot(List points, List values, String title) { + public void notifyPlotListeners(List points, List values, String title) { for (PlotListener listener : listeners) { listener.updatePlotPanel(points, values, title); } From 6a44a835bbac7e88ea1eb42bf9462ad030795a8d Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 4 Jun 2024 16:13:44 -0400 Subject: [PATCH 26/45] changed PlotListener into more specific name as PlotDataUpdateListener --- .../view/renderer/WildMagic/VolumeTriPlanarRender.java | 10 +++++----- .../{PlotListener.java => PlotDataUpdateListener.java} | 2 +- .../PlugInDialogVolumeRenderDualJanelia.java | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) rename src/org/janelia/mipav/plugins/worm/untwisting/{PlotListener.java => PlotDataUpdateListener.java} (96%) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java index 28b3b15685..36b2df8a8f 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java @@ -66,7 +66,7 @@ import javax.swing.KeyStroke; import org.janelia.mipav.plugins.worm.untwisting.AccurateModeListener; -import org.janelia.mipav.plugins.worm.untwisting.PlotListener; +import org.janelia.mipav.plugins.worm.untwisting.PlotDataUpdateListener; import org.janelia.mipav.plugins.worm.untwisting.PlugInDialogVolumeRenderDualJanelia; import WildMagic.LibFoundation.Mathematics.ColorRGBA; @@ -1071,22 +1071,22 @@ else if ( !doAutomaticLabels() ) } // Create a Set to hold PlotListener instances - private Set listeners = new HashSet<>(); + private Set listeners = new HashSet<>(); // update all listeners with new plot values and title. public void notifyPlotListeners(List points, List values, String title) { - for (PlotListener listener : listeners) { + for (PlotDataUpdateListener listener : listeners) { listener.updatePlotPanel(points, values, title); } } // add a new PlotListener - public void addPlotListener(PlotListener listener) { + public void addPlotListener(PlotDataUpdateListener listener) { listeners.add(listener); } // remove an existing PlotListener - public void removePlotListener(PlotListener listener) { + public void removePlotListener(PlotDataUpdateListener listener) { listeners.remove(listener); } diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlotListener.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlotDataUpdateListener.java similarity index 96% rename from src/org/janelia/mipav/plugins/worm/untwisting/PlotListener.java rename to src/org/janelia/mipav/plugins/worm/untwisting/PlotDataUpdateListener.java index ab3ca37e59..30e7ae3475 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlotListener.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlotDataUpdateListener.java @@ -14,7 +14,7 @@ * * @author diyi chen */ -public interface PlotListener { +public interface PlotDataUpdateListener { /** * Invoked to update the plot panel with new data. diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index fef6397357..967a4364ac 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -166,7 +166,7 @@ */ public class PlugInDialogVolumeRenderDualJanelia extends JFrame implements ActionListener, RendererListener, PropertyChangeListener, ViewImageUpdateInterface, WindowListener, - ChangeListener, AccurateModeListener, PlotListener { + ChangeListener, AccurateModeListener, PlotDataUpdateListener { private static final long serialVersionUID = -9056581285643263551L; From 8bf198bd0ca19501d221b3ddf84a4c423720e662 Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 4 Jun 2024 16:26:20 -0400 Subject: [PATCH 27/45] moved the variables to the top of the class --- .../untwisting/PlugInDialogVolumeRenderDualJanelia.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 967a4364ac..5cf9994e81 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -285,6 +285,10 @@ public class PlugInDialogVolumeRenderDualJanelia extends JFrame private Vector annotationNames; private JSplitPane latticePanel = null; private JPanel latticePanelSingle = null; + + private JFreeChart selectionChart; + private ChartPanel chartPanel; + private List chart3DPoints; private class IntegratedWormData { private VOIVector annotations; @@ -2215,10 +2219,6 @@ private void annotationAnimationFromSpreadSheet() { progress.dispose(); progress = null; } - - private JFreeChart selectionChart; - private ChartPanel chartPanel; - private List chart3DPoints; /** * Creates a chart using a list of values and assigns it a title. Each value in From 81db71265b33a960ea10006673f5f802ca15678d Mon Sep 17 00:00:00 2001 From: chend Date: Wed, 5 Jun 2024 10:11:57 -0400 Subject: [PATCH 28/45] removed all the unnecessary println --- .../renderer/WildMagic/VOI/VOILatticeManagerInterface.java | 1 - .../worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java b/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java index 5c3cc9de37..c082dfe85a 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VOI/VOILatticeManagerInterface.java @@ -1160,7 +1160,6 @@ public void addAccurateModeListener(AccurateModeListener listener) { public void keyReleased(KeyEvent e) { isShiftSelected = e.isShiftDown(); movingPickedPoint = false; - System.out.println(e.getKeyChar()); // Specific actions based on key codes, e.g., toggle accurate mode on 'M' key if (e.getKeyCode() == KeyEvent.VK_M) { diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 5cf9994e81..f18933aac9 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -2308,8 +2308,7 @@ private void update3DModel(Vector3f point) { public Vector3f interpolate(int t0, int t1, float tq) { Vector3f pt0 = chart3DPoints.get(t0); Vector3f pt1 = chart3DPoints.get(t1); - System.out.println("pt0: " + pt0); - System.out.println("pt1: " + pt1); + float m0 = (t1 - tq) / (t1 - t0); float m1 = (tq - t0) / (t1 - t0); From 6bcea5946f2d32c9ccd4aca9f0e4cb05c49c9c20 Mon Sep 17 00:00:00 2001 From: chend Date: Wed, 5 Jun 2024 16:44:39 -0400 Subject: [PATCH 29/45] changed mkdir into mkdirs to fix the annotation failed to save issue --- .../WormUntwisting/LatticeModel.java | 74 +++++++++---------- 1 file changed, 35 insertions(+), 39 deletions(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/LatticeModel.java b/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/LatticeModel.java index 5e0db20054..930f70d45d 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/LatticeModel.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/LatticeModel.java @@ -82,7 +82,7 @@ public static void checkParentDir( String parentDir ) } else if (parentFileDir.exists() && !parentFileDir.isDirectory()) { // do nothing } else { // voiFileDir does not exist // System.err.println( "LatticeModel:checkParentDir" + parentDir); - parentFileDir.mkdir(); + parentFileDir.mkdirs(); } } @@ -374,7 +374,7 @@ public static void saveAllVOIsTo(final String voiDir, final ModelImage image) { voiFileDir.delete(); } else { // voiFileDir does not exist // System.err.println( "saveAllVOIsTo " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } final int nVOI = VOIs.size(); @@ -445,10 +445,8 @@ public static void saveAnnotationsAsCSV(final String dir, final String fileName, // check files, create new directories and delete any existing files: final File fileDir = new File(dir); - if (fileDir.exists() && fileDir.isDirectory()) {} - else if (fileDir.exists() && !fileDir.isDirectory()) { // voiFileDir.delete(); - } else { // voiFileDir does not exist - fileDir.mkdir(); + if (!fileDir.exists() && !fileDir.mkdirs()) { // voiFileDir does not exist + System.err.println("Failed to create directory in svaeAnnotationAsCSV: " + fileDir); } File file = new File(fileDir + File.separator + fileName); @@ -2815,8 +2813,8 @@ private void saveMeshContoursCSV() { String dir = sharedOutputDir + File.separator + "model_contours" + File.separator; File fileDir = new File(dir); - if ( !fileDir.exists() ) { // voiFileDir does not exist - fileDir.mkdir(); + if (!fileDir.exists() && !fileDir.mkdirs()) { // voiFileDir does not exist + System.err.println("Failed to create directory in saveMeshContourCSV: " + fileDir); } File file = new File(dir + File.separator + "wormContours.csv"); @@ -3075,10 +3073,8 @@ public ModelImage segmentLattice(final ModelImage image, boolean saveContourImag final File lrFile = new File(voiDir + list[i]); lrFile.delete(); } - } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); - } else { // voiFileDir does not exist - // System.err.println( "segmentLattice" + voiDir); - voiFileDir.mkdir(); + } else if (!voiFileDir.exists() && !voiFileDir.mkdirs()) { // voiFileDir does not exist + System.err.println("Failed to create directory in segmentLattice: " + voiFileDir); } System.err.println( "Segment Lattice " + paddingFactor ); @@ -3734,17 +3730,17 @@ public void setImage(ModelImage image) outputDirectory = new String(imageA.getImageDirectory() + JDialogBase.makeImageName(imageA.getImageFileName(), "") + File.separator); boolean isStraight = image.getImageFileName().contains("_straight"); File file = new File(outputDirectory); - if ( !file.exists() && !isStraight ) file.mkdir(); + if ( !file.exists() && !isStraight ) file.mkdirs(); outputDirectory += JDialogBase.makeImageName(imageA.getImageFileName(), "_results") + File.separator; file = new File(outputDirectory); - if ( !file.exists() && !isStraight ) file.mkdir(); + if ( !file.exists() && !isStraight ) file.mkdirs(); } } public void setSharedDirectory( String dir ) { sharedOutputDir = new String(dir); File file = new File(sharedOutputDir + File.separator + "output_images" + File.separator); - if ( !file.exists() ) file.mkdir(); + if ( !file.exists() ) file.mkdirs(); } @@ -5341,14 +5337,14 @@ protected VOI saveAnnotationStatistics(final String imageDir, final ModelImage m if (voiFileDir.exists() && voiFileDir.isDirectory()) { // do nothing } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } voiDir = imageDir + "statistics" + File.separator; voiFileDir = new File(voiDir); if (voiFileDir.exists() && voiFileDir.isDirectory()) {} else if (voiFileDir.exists() && !voiFileDir.isDirectory()) {} else { // voiFileDir - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } File file = new File(voiDir + "AnnotationInfo" + postFix + ".csv"); @@ -5404,7 +5400,7 @@ protected void saveDiameters( Vector diameters, String imageDir ) { } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist // System.err.println( "saveDiameters " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } voiDir = imageDir + "statistics" + File.separator; @@ -5412,7 +5408,7 @@ protected void saveDiameters( Vector diameters, String imageDir ) { if (voiFileDir.exists() && voiFileDir.isDirectory()) { } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) {} else { // voiFileDir does not exist // System.err.println( "saveDiameters " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } File file = new File(voiDir + "Diameters.csv"); @@ -5460,14 +5456,14 @@ protected void saveLatticeStatistics( String imageDir, final float length, final if (voiFileDir.exists() && voiFileDir.isDirectory()) { // do nothing } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } voiDir = imageDir + "statistics" + File.separator; voiFileDir = new File(voiDir); if (voiFileDir.exists() && voiFileDir.isDirectory()) { } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) {} else { // voiFileDir does not exist - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } File file = new File(voiDir + "LatticeInfo" + postFix + ".csv"); @@ -5508,7 +5504,7 @@ protected void savePositions( VOIContour contour, String imageDir, String name ) } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist // System.err.println( "savePositions " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } voiDir = imageDir + "statistics" + File.separator; @@ -5516,7 +5512,7 @@ protected void savePositions( VOIContour contour, String imageDir, String name ) if (voiFileDir.exists() && voiFileDir.isDirectory()) { } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) {} else { // voiFileDir does not exist // System.err.println( "savePositions " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } File file = new File(voiDir + name + "Positions.csv"); @@ -5558,7 +5554,7 @@ protected void saveSamplePlanes( VOI planes, String imageDir ) { } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist // System.err.println( "saveSamplePlanes " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } voiDir = imageDir + "statistics" + File.separator; @@ -5566,7 +5562,7 @@ protected void saveSamplePlanes( VOI planes, String imageDir ) { if (voiFileDir.exists() && voiFileDir.isDirectory()) { } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) {} else { // voiFileDir does not exist // System.err.println( "saveSamplePlanes " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } File file = new File(voiDir + "SamplePlanes.csv"); @@ -6654,13 +6650,13 @@ private void saveImage(final String imageName, final ModelImage image, final boo } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist // System.err.println( "saveImage " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } voiDir = outputDirectory + File.separator + "output_images" + File.separator; voiFileDir = new File(voiDir); if (voiFileDir.exists() && voiFileDir.isDirectory()) {} else if (voiFileDir.exists() && !voiFileDir.isDirectory()) {} else { // voiFileDir - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } final File file = new File(voiDir + imageName); @@ -6688,7 +6684,7 @@ public static void saveImage(final ModelImage originalImage, final ModelImage im } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist // System.err.println( "saveImage " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } voiDir = outputDirectory + File.separator + subDir + File.separator; @@ -6729,7 +6725,7 @@ public static void saveImage(final ModelImage originalImage, final ModelImage im // } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); // } else { // voiFileDir does not exist // // System.err.println( "saveImage " + voiDir); -// voiFileDir.mkdir(); +// voiFileDir.mkdirs(); // } // // maxVal++; @@ -6785,7 +6781,7 @@ public static void saveContourAsCSV( ModelImage image, String subDir, String pos } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist // System.err.println( "saveImage " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } voiDir = outputDirectory + File.separator + subDir + File.separator; @@ -6805,7 +6801,7 @@ public static void saveContourAsCSV( final String voiDir, final String fileName, if (fileDir.exists() && fileDir.isDirectory()) {} else if (fileDir.exists() && !fileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist - fileDir.mkdir(); + fileDir.mkdirs(); } File file = new File(fileDir + File.separator + fileName); if (file.exists()) { @@ -6901,7 +6897,7 @@ public static void saveBasisVectorsAsCSV( ModelImage image, String subDir, Strin } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist // System.err.println( "saveImage " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } voiDir = outputDirectory + File.separator + subDir + File.separator; @@ -6914,7 +6910,7 @@ public static void saveBasisVectorsAsCSV( ModelImage image, String subDir, Strin if (fileDir.exists() && fileDir.isDirectory()) {} else if (fileDir.exists() && !fileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist - fileDir.mkdir(); + fileDir.mkdirs(); } File file = new File(fileDir + File.separator + imageName); if (file.exists()) { @@ -6956,7 +6952,7 @@ private void saveContours( ModelImage image, Box3f[] contours ) { if (voiFileDir.exists() && voiFileDir.isDirectory()) { // do nothing } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } String imageName = JDialogBase.makeImageName(image.getImageFileName(), ""); imageName = imageName + "_contours"; @@ -7080,7 +7076,7 @@ public static void saveTriMesh( ModelImage image, String outputDirectory, String } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist // System.err.println( "saveImage " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } voiDir = outputDirectory + File.separator + subDir + File.separator; voiFileDir = new File(voiDir); @@ -7088,7 +7084,7 @@ public static void saveTriMesh( ModelImage image, String outputDirectory, String } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist // System.err.println( "saveImage " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } String imageName = JDialogBase.makeImageName(image.getImageFileName(), ""); @@ -7130,7 +7126,7 @@ private void saveSpline(String outputDirectory, VOI data, Vector3f transformedOr } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) { // voiFileDir.delete(); } else { // voiFileDir does not exist // System.err.println( "saveSpline " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } voiDir = outputDirectory + File.separator + "statistics" + File.separator; voiFileDir = new File(voiDir); @@ -7139,7 +7135,7 @@ private void saveSpline(String outputDirectory, VOI data, Vector3f transformedOr // not // exist // System.err.println( "saveSpline " + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } File file = new File(voiDir + data.getName() + postFix + ".csv"); @@ -7312,7 +7308,7 @@ private void untwistLattice(final ModelImage image, final int[] resultExtents) if (voiFileDir.exists() && voiFileDir.isDirectory()) { } else if (voiFileDir.exists() && !voiFileDir.isDirectory()) {} else { // voiFileDir does not exist // System.err.println( "untwistLattice" + voiDir); - voiFileDir.mkdir(); + voiFileDir.mkdirs(); } File file = new File(voiDir + imageName + "_Frame_Straight.csv"); From 3408bbc8c02e1658518ed7551938311e3c7e559f Mon Sep 17 00:00:00 2001 From: chend Date: Wed, 5 Jun 2024 17:27:34 -0400 Subject: [PATCH 30/45] fixed the mkdir if statement to consider the case when !dir.mkdirs() failed --- .../WildMagic/WormUntwisting/WormData.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/WormData.java b/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/WormData.java index 7e730d6315..85dc3f9919 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/WormData.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/WormUntwisting/WormData.java @@ -87,17 +87,15 @@ public WormData( ModelImage image ) checkParentDir(parentDir); } File dir = new File(outputDirectory); - if ( !dir.exists() ) - { - // System.err.println( "WormData " + outputDirectory); - dir.mkdir(); - } + + if (!dir.exists() && !dir.mkdirs()) { // dir does not exist + System.err.println("Failed to create directory in WormData: " + dir); + } + if ( outputImagesDirectory != null ) { dir = new File(outputImagesDirectory); - if ( !dir.exists() ) - { - // System.err.println( "WormData " + outputImagesDirectory); - dir.mkdir(); + if ( !dir.exists() && !dir.mkdirs()){ + System.err.println("Failed to create directory in WormData: " + dir); } } } From 61c775c4083b16051bc1f170d8df5640d140986d Mon Sep 17 00:00:00 2001 From: chend Date: Fri, 7 Jun 2024 15:34:16 -0400 Subject: [PATCH 31/45] created CustomChartPanel to separate the chartPanel related methods from PluglnDialogVolumeRenderDualJanelia --- .../worm/untwisting/CustomChartPanel.java | 201 ++++++++++++++++++ .../PlugInDialogVolumeRenderDualJanelia.java | 199 ++--------------- 2 files changed, 219 insertions(+), 181 deletions(-) create mode 100644 src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java b/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java new file mode 100644 index 0000000000..6347faca4d --- /dev/null +++ b/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java @@ -0,0 +1,201 @@ +package org.janelia.mipav.plugins.worm.untwisting; + +import org.jfree.chart.*; +import org.jfree.chart.axis.ValueAxis; +import org.jfree.chart.event.MarkerChangeEvent; +import org.jfree.chart.event.MarkerChangeListener; +import org.jfree.chart.plot.PlotOrientation; +import org.jfree.chart.plot.ValueMarker; +import org.jfree.chart.plot.XYPlot; +import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; +import org.jfree.chart.ui.RectangleAnchor; +import org.jfree.chart.ui.TextAnchor; +import org.jfree.chart.ui.Layer; +import org.jfree.data.xy.XYSeries; +import org.jfree.data.xy.XYSeriesCollection; + +import WildMagic.LibFoundation.Mathematics.Vector3f; + +import java.awt.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.geom.Rectangle2D; +import java.util.List; + +public class CustomChartPanel extends ChartPanel implements MarkerChangeListener { + /** + * + */ + private static final long serialVersionUID = 1L; + private JFreeChart selectionChart; + private List chart3DPoints; + private PlugInDialogVolumeRenderDualJanelia parent; + + public CustomChartPanel(List values, String title, PlugInDialogVolumeRenderDualJanelia parent) { + super(null); + this.selectionChart = createChart(values, title, this); + this.parent = parent; + this.setChart(selectionChart); + initialize(); + + } + + private void initialize() { + setPreferredSize(new Dimension(600, 300)); + setMouseWheelEnabled(false); + setDomainZoomable(false); + setRangeZoomable(false); + setMouseZoomable(false, false); + setFillZoomRectangle(false); + setZoomAroundAnchor(false); + + // Add a mouse motion listener to handle dragging movements over the chart + addMouseMotionListener(new MouseAdapter() { + @Override + public void mouseDragged(MouseEvent e) { + // Get the plot area for accurate coordinate calculation + Rectangle2D plotArea = getScreenDataArea(); + XYPlot plot = selectionChart.getXYPlot(); + ValueAxis xAxis = plot.getDomainAxis(); + double x = xAxis.java2DToValue(e.getX(), plotArea, plot.getDomainAxisEdge()); + + // Determine the corresponding Y-value by finding the nearest index + XYSeriesCollection dataset = (XYSeriesCollection) plot.getDataset(); + XYSeries series = dataset.getSeries(0); + + int index = findNearestXIndex(series, x); + double y = series.getY(index).doubleValue(); + + // Update the marker's value and label on the chart + ValueMarker marker = (ValueMarker) plot.getDomainMarkers(Layer.FOREGROUND).iterator().next(); + marker.setValue(x); + marker.setLabel(String.format("Value: %.2f", y)); + + // Redraw the chart to reflect changes + repaint(); + e.consume(); + } + }); + } + + /** + * Finds the index of the closest X value to the given target x. + * + * @param series The series of data points. + * @param x The target x value to match. + * @return The index of the closest x value. + */ + private int findNearestXIndex(XYSeries series, double x) { + double minDistance = Double.MAX_VALUE; + int nearestIndex = -1; + + for (int i = 0; i < series.getItemCount(); i++) { + double distance = Math.abs(series.getX(i).doubleValue() - x); + if (distance < minDistance) { + minDistance = distance; + nearestIndex = i; + } + } + return nearestIndex; + } + + public void updateChart(List values, String title) { + this.selectionChart = createChart(values, title, this); + setChart(this.selectionChart); + revalidate(); + repaint(); + } + + // Set up a marker change listener to handle marker position changes + @Override + public void markerChanged(MarkerChangeEvent event) { + ValueMarker marker = (ValueMarker) event.getMarker(); + float tq = (float) marker.getValue(); + // Calculate the indices for interpolation + int t0 = (int) Math.floor(tq); + int t1 = (int) Math.ceil(tq); + + if (t0 >= 0 && t1 < chart3DPoints.size() && t0 != t1) { + Vector3f interpolatedPoint = interpolate(t0, t1, tq); + parent.update3DModel(interpolatedPoint); + } else if (t0 == t1 && t0 < chart3DPoints.size()) { + Vector3f exactPoint = chart3DPoints.get(t0); + parent.update3DModel(exactPoint); + } + } + + /** + * Interpolates between two 3D points based on a given interpolation parameter. + * + * @param t0 Index of the first point. + * @param t1 Index of the second point. + * @param tq The interpolation parameter, typically derived from the marker's + * position. + * @return The interpolated 3D point. + */ + private Vector3f interpolate(int t0, int t1, float tq) { + Vector3f pt0 = chart3DPoints.get(t0); + Vector3f pt1 = chart3DPoints.get(t1); + + float m0 = (t1 - tq) / (t1 - t0); + float m1 = (tq - t0) / (t1 - t0); + + float x = (float) (m0 * pt0.X + m1 * pt1.X); + float y = (float) (m0 * pt0.Y + m1 * pt1.Y); + float z = (float) (m0 * pt0.Z + m1 * pt1.Z); + + return new Vector3f(x, y, z); + } + + /** + * Creates a chart using a list of values and assigns it a title. Each value in + * the list is plotted against its index. + * + * @param values List of floating-point values for the Y-axis. + * @param title Title of the chart. + * @return A JFreeChart object fully initialized. + */ + private static JFreeChart createChart(List values, String title, MarkerChangeListener markerListener) { + XYSeries series = new XYSeries("Data"); + float maxValue = -Float.MAX_VALUE; + int maxIndex = -1; + + // Populate the series with values and track the maximum value and its index + for (int i = 0; i < values.size(); i++) { + float value = values.get(i); + series.add(i, value); + if (value > maxValue) { + maxValue = value; + maxIndex = i; + } + } + + XYSeriesCollection dataset = new XYSeriesCollection(); + dataset.addSeries(series); + + // Create the chart + JFreeChart chart = ChartFactory.createXYLineChart(title, "Index", "Value", dataset, PlotOrientation.VERTICAL, + true, true, false); + + XYPlot plot = chart.getXYPlot(); + XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); + renderer.setSeriesPaint(0, Color.BLUE); + renderer.setSeriesStroke(0, new BasicStroke(2.0f)); + plot.setRenderer(renderer); + + ValueMarker marker = new ValueMarker(maxIndex); + marker.setPaint(Color.RED); + marker.setLabel("Max Value: " + maxValue); + marker.setLabelAnchor(RectangleAnchor.CENTER); + marker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); + plot.addDomainMarker(marker); + + marker.addChangeListener(markerListener); + + return chart; + } + + public void setChart3DPoints(List points) { + this.chart3DPoints = points; + } +} diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index f18933aac9..28bd37e89e 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -286,9 +286,8 @@ public class PlugInDialogVolumeRenderDualJanelia extends JFrame private JSplitPane latticePanel = null; private JPanel latticePanelSingle = null; - private JFreeChart selectionChart; - private ChartPanel chartPanel; - private List chart3DPoints; + private CustomChartPanel chartPanel; + private class IntegratedWormData { private VOIVector annotations; @@ -2220,111 +2219,6 @@ private void annotationAnimationFromSpreadSheet() { progress = null; } - /** - * Creates a chart using a list of values and assigns it a title. Each value in - * the list is plotted against its index. - * - * @param values List of floating-point values for the Y-axis. - * @param title Title of the chart. - * @return A JFreeChart object fully initialized. - */ - public JFreeChart createChart(List values, String title) { - XYSeries series = new XYSeries("Data"); - float maxValue = -Float.MAX_VALUE; - int maxIndex = -1; - - // Populate the series with values and track the maximum value and its index - for (int i = 0; i < values.size(); i++) { - float value = values.get(i); - series.add(i, value); - if (value > maxValue) { - maxValue = value; - maxIndex = i; - } - } - - XYSeriesCollection dataset = new XYSeriesCollection(); - dataset.addSeries(series); - - // Create the chart - JFreeChart chart = ChartFactory.createXYLineChart(title, "Index", "Value", dataset, PlotOrientation.VERTICAL, - true, true, false); - - XYPlot plot = chart.getXYPlot(); - XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); - renderer.setSeriesPaint(0, Color.BLUE); - renderer.setSeriesStroke(0, new BasicStroke(2.0f)); - plot.setRenderer(renderer); - - // Add a dynamic marker at the position of the maximum value - ValueMarker marker = new ValueMarker(maxIndex); - marker.setPaint(Color.RED); - marker.setLabel("Max Value: " + maxValue); - marker.setLabelAnchor(RectangleAnchor.CENTER); - marker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); - plot.addDomainMarker(marker); - - // Set up a marker change listener to handle marker position changes - marker.addChangeListener(new MarkerChangeListener() { - @Override - public void markerChanged(MarkerChangeEvent event) { - ValueMarker marker = (ValueMarker) event.getMarker(); - - float tq = (float) marker.getValue(); - - // Calculate the indices for interpolation - int t0 = (int) Math.floor(tq); - int t1 = (int) Math.ceil(tq); - - if (t0 >= 0 && t1 < chart3DPoints.size() && t0 != t1) { - - Vector3f interpolatedPoint = interpolate(t0, t1, tq); - update3DModel(interpolatedPoint); - - } else if (t0 == t1 && t0 < chart3DPoints.size()) { // if t0 == t1 - Vector3f exactPoint = chart3DPoints.get(t0); - update3DModel(exactPoint); - } - } - - /** - * Updates the 3D model visualization based on a new 3D point. - * - * @param point The 3D point that the model needs to reflect. - */ - private void update3DModel(Vector3f point) { - activeImage.voiManager.modify3DMarker(point, point, point); - } - - /** - * Interpolates between two 3D points based on a given interpolation parameter. - * - * @param t0 Index of the first point. - * @param t1 Index of the second point. - * @param tq The interpolation parameter, typically derived from the marker's - * position. - * @return The interpolated 3D point. - */ - public Vector3f interpolate(int t0, int t1, float tq) { - Vector3f pt0 = chart3DPoints.get(t0); - Vector3f pt1 = chart3DPoints.get(t1); - - float m0 = (t1 - tq) / (t1 - t0); - float m1 = (tq - t0) / (t1 - t0); - - float x = (float) (m0 * pt0.X + m1 * pt1.X); - float y = (float) (m0 * pt0.Y + m1 * pt1.Y); - float z = (float) (m0 * pt0.Z + m1 * pt1.Z); - - Vector3f ptq = new Vector3f(x, y, z); - - return ptq; - } - }); - - return chart; - } - /** * Updates the plot panel by invoking the chart creation and updating the * display. @@ -2333,26 +2227,21 @@ public Vector3f interpolate(int t0, int t1, float tq) { * @param values List of values corresponding to each 3D point. * @param title Title for the updated plot. */ - public void updatePlotPanel(List points, List values, String title) { - SwingUtilities.invokeLater(() -> { - selectionChart = createChart(values, title); - chartPanel.setChart(selectionChart); - - chartPanel.setPreferredSize(new Dimension(600, 400)); - chartPanel.setMouseWheelEnabled(true); - - chartPanel.setDomainZoomable(false); - chartPanel.setRangeZoomable(false); - chartPanel.setMouseZoomable(false, false); - chartPanel.setFillZoomRectangle(false); - chartPanel.setZoomAroundAnchor(false); - - chart3DPoints = points; - - chartPanel.revalidate(); - chartPanel.repaint(); - }); - } + public void updatePlotPanel(List points, List values, String title) { + SwingUtilities.invokeLater(() -> { + chartPanel.updateChart(values, title); + chartPanel.setChart3DPoints(points); + }); + } + + /** + * Updates the 3D model visualization based on a new 3D point. + * + * @param point The 3D point that the model needs to reflect. + */ + public void update3DModel(Vector3f point) { + activeImage.voiManager.modify3DMarker(point, point, point); + } /** * User-interface initialization. If the UI is integrated all panels are @@ -2479,59 +2368,7 @@ public void actionPerformed(ActionEvent e) { buttonPanel.add(accurateModeButton); accuratePanel.add(buttonPanel, BorderLayout.NORTH); - // Create a chart - selectionChart = createChart(Arrays.asList(1.0f, 2.0f, 3.0f), "Chart"); - chartPanel = new ChartPanel(selectionChart); - - // Add a mouse motion listener to handle dragging movements over the chart - chartPanel.addMouseMotionListener(new MouseAdapter() { - @Override - public void mouseDragged(MouseEvent e) { - // Get the plot area for accurate coordinate calculation - Rectangle2D plotArea = chartPanel.getScreenDataArea(); - XYPlot plot = selectionChart.getXYPlot(); - ValueAxis xAxis = plot.getDomainAxis(); - double x = xAxis.java2DToValue(e.getX(), plotArea, plot.getDomainAxisEdge()); - - // Determine the corresponding Y-value by finding the nearest index - XYSeriesCollection dataset = (XYSeriesCollection) plot.getDataset(); - XYSeries series = dataset.getSeries(0); - - int index = findNearestXIndex(series, x); - double y = series.getY(index).doubleValue(); - - // Update the marker's value and label on the chart - ValueMarker marker = (ValueMarker) plot.getDomainMarkers(Layer.FOREGROUND).iterator().next(); - marker.setValue(x); - marker.setLabel(String.format("Value: %.2f", y)); - - // Redraw the chart to reflect changes - chartPanel.repaint(); - e.consume(); - } - - /** - * Finds the index of the closest X value to the given target x. - * - * @param series The series of data points. - * @param x The target x value to match. - * @return The index of the closest x value. - */ - private int findNearestXIndex(XYSeries series, double x) { - double minDistance = Double.MAX_VALUE; - int nearestIndex = -1; - - for (int i = 0; i < series.getItemCount(); i++) { - double distance = Math.abs(series.getX(i).doubleValue() - x); - if (distance < minDistance) { - minDistance = distance; - nearestIndex = i; - } - } - return nearestIndex; - } - }); - + chartPanel = new CustomChartPanel(Arrays.asList(1.0f, 2.0f, 3.0f), "Chart", this); accuratePanel.add(chartPanel, BorderLayout.CENTER); tabbedPane = new JTabbedPane(); From 6726926fd6a4ecc0de1c1d1af0221ebc87837c3a Mon Sep 17 00:00:00 2001 From: chend Date: Fri, 7 Jun 2024 16:25:43 -0400 Subject: [PATCH 32/45] fixed the zoomed in issue by created a new method setChart() --- .../worm/untwisting/CustomChartPanel.java | 11 +++++++ .../PlugInDialogVolumeRenderDualJanelia.java | 33 ++++++++++--------- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java b/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java index 6347faca4d..d4eb2984d4 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java @@ -48,6 +48,7 @@ private void initialize() { setMouseZoomable(false, false); setFillZoomRectangle(false); setZoomAroundAnchor(false); + // Add a mouse motion listener to handle dragging movements over the chart addMouseMotionListener(new MouseAdapter() { @@ -77,6 +78,16 @@ public void mouseDragged(MouseEvent e) { } }); } + + public void setChart(JFreeChart chart) { + super.setChart(chart); + setMouseWheelEnabled(false); + setDomainZoomable(false); + setRangeZoomable(false); + setMouseZoomable(false, false); + setFillZoomRectangle(false); + setZoomAroundAnchor(false); + } /** * Finds the index of the closest X value to the given target x. diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 28bd37e89e..2d9ccda807 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -2227,21 +2227,24 @@ private void annotationAnimationFromSpreadSheet() { * @param values List of values corresponding to each 3D point. * @param title Title for the updated plot. */ - public void updatePlotPanel(List points, List values, String title) { - SwingUtilities.invokeLater(() -> { - chartPanel.updateChart(values, title); - chartPanel.setChart3DPoints(points); - }); - } - - /** - * Updates the 3D model visualization based on a new 3D point. - * - * @param point The 3D point that the model needs to reflect. - */ - public void update3DModel(Vector3f point) { - activeImage.voiManager.modify3DMarker(point, point, point); - } + public void updatePlotPanel(List points, List values, String title) { + SwingUtilities.invokeLater(() -> { + chartPanel.updateChart(values, title); + chartPanel.setChart3DPoints(points); + + chartPanel.revalidate(); + chartPanel.repaint(); + }); + } + + /** + * Updates the 3D model visualization based on a new 3D point. + * + * @param point The 3D point that the model needs to reflect. + */ + public void update3DModel(Vector3f point) { + activeImage.voiManager.modify3DMarker(point, point, point); + } /** * User-interface initialization. If the UI is integrated all panels are From 27eedeac5d960635884ee1db39ecf63edd87a922 Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 11 Jun 2024 10:36:16 -0400 Subject: [PATCH 33/45] Created a fakePanel to split the panel into desired layout and fixed the title --- .../WildMagic/VolumeTriPlanarRender.java | 4 ++-- .../worm/untwisting/CustomChartPanel.java | 4 ++-- .../PlugInDialogVolumeRenderDualJanelia.java | 16 +++++++++++++++- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java index 36b2df8a8f..c0a1a111a2 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java @@ -1064,9 +1064,9 @@ else if ( !doAutomaticLabels() ) } } if (m_kVOIInterface.isAccurateMode()) { - notifyPlotListeners(points, plotAccurateValues, "Accurate Values"); + notifyPlotListeners(points, plotAccurateValues, "Chart"); } else { - notifyPlotListeners(points, plotValues, "3-Color Values"); + notifyPlotListeners(points, plotValues, "3-Color Chart"); } } diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java b/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java index d4eb2984d4..3ccaf1f848 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java @@ -36,12 +36,12 @@ public CustomChartPanel(List values, String title, PlugInDialogVolumeRend this.selectionChart = createChart(values, title, this); this.parent = parent; this.setChart(selectionChart); + setPreferredSize(new Dimension(100,100)); initialize(); } - + private void initialize() { - setPreferredSize(new Dimension(600, 300)); setMouseWheelEnabled(false); setDomainZoomable(false); setRangeZoomable(false); diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 2d9ccda807..4151f840cd 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -106,6 +106,7 @@ import java.util.Vector; import java.util.stream.Collectors; +import javax.swing.BoxLayout; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBox; @@ -2350,7 +2351,10 @@ private void init() { // Create a panel for toggling between accurate and 3-color modes(not working // currently) accuratePanel = new JPanel(new BorderLayout()); + accuratePanel.setPreferredSize(new Dimension(400, 400)); + accuratePanel.setMaximumSize(new Dimension(400, 400)); JPanel buttonPanel = new JPanel(); + // Initialize a toggle button for switching modes accurateModeButton = new JToggleButton("Accurate Mode"); accurateModeChanged(true); @@ -2372,7 +2376,17 @@ public void actionPerformed(ActionEvent e) { accuratePanel.add(buttonPanel, BorderLayout.NORTH); chartPanel = new CustomChartPanel(Arrays.asList(1.0f, 2.0f, 3.0f), "Chart", this); - accuratePanel.add(chartPanel, BorderLayout.CENTER); + + // Created a fakePanel to split the panel + JPanel fakePanel = new JPanel(); + fakePanel.setPreferredSize(new Dimension(100,500)); + JSplitPane chartFakeSplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT, chartPanel, fakePanel); + chartFakeSplit.setOneTouchExpandable(true); + chartFakeSplit.setContinuousLayout(true); + chartFakeSplit.setResizeWeight(0.7); + chartFakeSplit.setDividerLocation(0.5); + + accuratePanel.add(chartFakeSplit, BorderLayout.CENTER); tabbedPane = new JTabbedPane(); tabbedPane.addTab("LUT", null, lutPanel); From 4933d9d5d79985a7e4db9f611156e24015a19b8c Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 11 Jun 2024 15:39:03 -0400 Subject: [PATCH 34/45] changed the plot settings like color and size for the marker and the background. --- .../worm/untwisting/CustomChartPanel.java | 29 +++++++++++++++---- .../PlugInDialogVolumeRenderDualJanelia.java | 1 - 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java b/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java index 3ccaf1f848..d9568f7387 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java @@ -23,9 +23,13 @@ import java.util.List; public class CustomChartPanel extends ChartPanel implements MarkerChangeListener { - /** - * - */ + + +/** + * CustomChartPanel is a custom extension of the ChartPanel class from JFreeChart + * used to display and interact with a dynamic XY line chart. It includes custom + * behaviors for handling marker changes and mouse drag events. + */ private static final long serialVersionUID = 1L; private JFreeChart selectionChart; private List chart3DPoints; @@ -71,6 +75,9 @@ public void mouseDragged(MouseEvent e) { ValueMarker marker = (ValueMarker) plot.getDomainMarkers(Layer.FOREGROUND).iterator().next(); marker.setValue(x); marker.setLabel(String.format("Value: %.2f", y)); + + marker.setLabelFont(new Font("Serif", Font.BOLD, 14)); + marker.setStroke(new BasicStroke(2.0f)); // Redraw the chart to reflect changes repaint(); @@ -189,18 +196,28 @@ private static JFreeChart createChart(List values, String title, MarkerCh true, true, false); XYPlot plot = chart.getXYPlot(); + plot.setBackgroundPaint(Color.GRAY); + plot.setDomainGridlinePaint(Color.DARK_GRAY); + plot.setRangeGridlinePaint(Color.DARK_GRAY); + XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); - renderer.setSeriesPaint(0, Color.BLUE); + renderer.setSeriesPaint(0, Color.YELLOW); renderer.setSeriesStroke(0, new BasicStroke(2.0f)); plot.setRenderer(renderer); ValueMarker marker = new ValueMarker(maxIndex); - marker.setPaint(Color.RED); + marker.setPaint(Color.CYAN); marker.setLabel("Max Value: " + maxValue); + + marker.setLabelFont(new Font("Serif", Font.BOLD, 14)); + marker.setLabelPaint(Color.WHITE); + marker.setLabelAnchor(RectangleAnchor.CENTER); marker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); + marker.setStroke(new BasicStroke(2.0f)); plot.addDomainMarker(marker); - + + marker.addChangeListener(markerListener); return chart; diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 4151f840cd..9961badeaa 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -106,7 +106,6 @@ import java.util.Vector; import java.util.stream.Collectors; -import javax.swing.BoxLayout; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBox; From 1d181027987d2ac2c2e98c74b46ba69723744bb3 Mon Sep 17 00:00:00 2001 From: chend Date: Wed, 12 Jun 2024 17:17:24 -0400 Subject: [PATCH 35/45] Renamed the CustomChartPanel into SelectionChartPanel. --- .../untwisting/PlugInDialogVolumeRenderDualJanelia.java | 4 ++-- .../{CustomChartPanel.java => SelectionChartPanel.java} | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) rename src/org/janelia/mipav/plugins/worm/untwisting/{CustomChartPanel.java => SelectionChartPanel.java} (96%) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 9961badeaa..afbcaab1dd 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -286,7 +286,7 @@ public class PlugInDialogVolumeRenderDualJanelia extends JFrame private JSplitPane latticePanel = null; private JPanel latticePanelSingle = null; - private CustomChartPanel chartPanel; + private SelectionChartPanel chartPanel; private class IntegratedWormData { @@ -2374,7 +2374,7 @@ public void actionPerformed(ActionEvent e) { buttonPanel.add(accurateModeButton); accuratePanel.add(buttonPanel, BorderLayout.NORTH); - chartPanel = new CustomChartPanel(Arrays.asList(1.0f, 2.0f, 3.0f), "Chart", this); + chartPanel = new SelectionChartPanel(Arrays.asList(1.0f, 2.0f, 3.0f), "Chart", this); // Created a fakePanel to split the panel JPanel fakePanel = new JPanel(); diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java b/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java similarity index 96% rename from src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java rename to src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java index d9568f7387..b083850654 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/CustomChartPanel.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java @@ -22,7 +22,7 @@ import java.awt.geom.Rectangle2D; import java.util.List; -public class CustomChartPanel extends ChartPanel implements MarkerChangeListener { +public class SelectionChartPanel extends ChartPanel implements MarkerChangeListener { /** @@ -35,7 +35,7 @@ public class CustomChartPanel extends ChartPanel implements MarkerChangeListener private List chart3DPoints; private PlugInDialogVolumeRenderDualJanelia parent; - public CustomChartPanel(List values, String title, PlugInDialogVolumeRenderDualJanelia parent) { + public SelectionChartPanel(List values, String title, PlugInDialogVolumeRenderDualJanelia parent) { super(null); this.selectionChart = createChart(values, title, this); this.parent = parent; @@ -46,7 +46,7 @@ public CustomChartPanel(List values, String title, PlugInDialogVolumeRend } private void initialize() { - setMouseWheelEnabled(false); + setMouseWheelEnabled(false); setDomainZoomable(false); setRangeZoomable(false); setMouseZoomable(false, false); From 2b3fa3b49e1bd7d8d0c3b31ae11d5815c751ab19 Mon Sep 17 00:00:00 2001 From: chend Date: Thu, 13 Jun 2024 11:07:14 -0400 Subject: [PATCH 36/45] Deleted unused import and renamed to "Selection Chart" --- .../PlugInDialogVolumeRenderDualJanelia.java | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index afbcaab1dd..1b5968f6d1 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -128,22 +128,6 @@ import javax.swing.event.ChangeListener; import javax.swing.ImageIcon; -import org.janelia.mipav.test.Plot; -import org.jfree.chart.ChartFactory; -import org.jfree.chart.ChartPanel; -import org.jfree.chart.JFreeChart; -import org.jfree.chart.axis.ValueAxis; -import org.jfree.chart.event.MarkerChangeEvent; -import org.jfree.chart.event.MarkerChangeListener; -import org.jfree.chart.plot.PlotOrientation; -import org.jfree.chart.plot.ValueMarker; -import org.jfree.chart.plot.XYPlot; -import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; -import org.jfree.data.xy.XYSeries; -import org.jfree.data.xy.XYSeriesCollection; -import org.jfree.chart.ui.Layer; -import org.jfree.chart.ui.RectangleAnchor; -import org.jfree.chart.ui.TextAnchor; import org.jocl.Sizeof; import WildMagic.LibFoundation.Mathematics.Mathf; @@ -2358,6 +2342,7 @@ private void init() { accurateModeButton = new JToggleButton("Accurate Mode"); accurateModeChanged(true); accurateModeButton.setPreferredSize(new Dimension(200, 50)); + accurateModeButton.setToolTipText("Press 'M' to toggle Accurate Mode"); // Add an action response to the button accurateModeButton.addActionListener(new ActionListener() { @@ -2373,8 +2358,8 @@ public void actionPerformed(ActionEvent e) { // accurate mode panel buttonPanel.add(accurateModeButton); accuratePanel.add(buttonPanel, BorderLayout.NORTH); - - chartPanel = new SelectionChartPanel(Arrays.asList(1.0f, 2.0f, 3.0f), "Chart", this); + + chartPanel = new SelectionChartPanel(Arrays.asList(0.0f, 0.0f), "Selection Chart", this); // Created a fakePanel to split the panel JPanel fakePanel = new JPanel(); @@ -2386,7 +2371,7 @@ public void actionPerformed(ActionEvent e) { chartFakeSplit.setDividerLocation(0.5); accuratePanel.add(chartFakeSplit, BorderLayout.CENTER); - + tabbedPane = new JTabbedPane(); tabbedPane.addTab("LUT", null, lutPanel); tabbedPane.addTab("Opacity", null, opacityPanel); From 86b646d033ca7d12bf8f7e6d61331fe2202a4d5c Mon Sep 17 00:00:00 2001 From: chend Date: Thu, 13 Jun 2024 11:09:54 -0400 Subject: [PATCH 37/45] Added a JToolTip to the button to give a hint that there is a keyboard command to change the mode. --- .../worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 1b5968f6d1..afbebfe003 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -2371,6 +2371,10 @@ public void actionPerformed(ActionEvent e) { chartFakeSplit.setDividerLocation(0.5); accuratePanel.add(chartFakeSplit, BorderLayout.CENTER); + + + + tabbedPane = new JTabbedPane(); tabbedPane.addTab("LUT", null, lutPanel); From 96a518a912d1a1d58c9e150a4fa58bc2aa381fa8 Mon Sep 17 00:00:00 2001 From: chend Date: Thu, 13 Jun 2024 11:26:08 -0400 Subject: [PATCH 38/45] added comments to explain the plot size changes once it was removed --- .../untwisting/PlugInDialogVolumeRenderDualJanelia.java | 7 ++----- .../mipav/plugins/worm/untwisting/SelectionChartPanel.java | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index afbebfe003..7322ebf9db 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -2334,6 +2334,7 @@ private void init() { // Create a panel for toggling between accurate and 3-color modes(not working // currently) accuratePanel = new JPanel(new BorderLayout()); + // Panel get larger horizontally if remove the two lines below accuratePanel.setPreferredSize(new Dimension(400, 400)); accuratePanel.setMaximumSize(new Dimension(400, 400)); JPanel buttonPanel = new JPanel(); @@ -2363,7 +2364,7 @@ public void actionPerformed(ActionEvent e) { // Created a fakePanel to split the panel JPanel fakePanel = new JPanel(); - fakePanel.setPreferredSize(new Dimension(100,500)); + fakePanel.setPreferredSize(new Dimension(100,500)); // plot gets larger vertically if remove this line JSplitPane chartFakeSplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT, chartPanel, fakePanel); chartFakeSplit.setOneTouchExpandable(true); chartFakeSplit.setContinuousLayout(true); @@ -2372,10 +2373,6 @@ public void actionPerformed(ActionEvent e) { accuratePanel.add(chartFakeSplit, BorderLayout.CENTER); - - - - tabbedPane = new JTabbedPane(); tabbedPane.addTab("LUT", null, lutPanel); tabbedPane.addTab("Opacity", null, opacityPanel); diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java b/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java index b083850654..d1d0475fe9 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java @@ -40,7 +40,7 @@ public SelectionChartPanel(List values, String title, PlugInDialogVolumeR this.selectionChart = createChart(values, title, this); this.parent = parent; this.setChart(selectionChart); - setPreferredSize(new Dimension(100,100)); + setPreferredSize(new Dimension(100,100));// plot gets larger vertically and horizontally if remove this line initialize(); } From 2783fcb24deaf3ff318bb05dbec3fec8f21d5bf4 Mon Sep 17 00:00:00 2001 From: chend Date: Thu, 13 Jun 2024 11:44:44 -0400 Subject: [PATCH 39/45] changed the plot title from 'Chart' into 'Selection Chart' --- .../mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java index c0a1a111a2..bc3ce1cbf9 100644 --- a/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java +++ b/src/gov/nih/mipav/view/renderer/WildMagic/VolumeTriPlanarRender.java @@ -1064,7 +1064,7 @@ else if ( !doAutomaticLabels() ) } } if (m_kVOIInterface.isAccurateMode()) { - notifyPlotListeners(points, plotAccurateValues, "Chart"); + notifyPlotListeners(points, plotAccurateValues, "Selection Chart"); } else { notifyPlotListeners(points, plotValues, "3-Color Chart"); } From 6054f517a7b07abb4ea716901979a6898609bb80 Mon Sep 17 00:00:00 2001 From: chend Date: Fri, 14 Jun 2024 16:15:42 -0400 Subject: [PATCH 40/45] Added the slopes on the plot and created a NextPeak button --- .../PlugInDialogVolumeRenderDualJanelia.java | 7 ++++- .../worm/untwisting/SelectionChartPanel.java | 31 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 7322ebf9db..f3a4c92657 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -231,8 +231,8 @@ public class PlugInDialogVolumeRenderDualJanelia extends JFrame private JTabbedPane opacityTab; private JPanel clipPanel; private JPanel accuratePanel; - // private JButton accurateModeButton; private JToggleButton accurateModeButton; + private JButton nextPeakButton; private PlugInDialogVolumeRenderDualJanelia parent; private JTextField rangeFusionText; @@ -2371,6 +2371,11 @@ public void actionPerformed(ActionEvent e) { chartFakeSplit.setResizeWeight(0.7); chartFakeSplit.setDividerLocation(0.5); + nextPeakButton = new JButton("Next Peak"); + nextPeakButton.setPreferredSize(new Dimension(200, 50)); + nextPeakButton.setToolTipText("Press 'N' move to Next Peak"); + fakePanel.add(nextPeakButton); + accuratePanel.add(chartFakeSplit, BorderLayout.CENTER); tabbedPane = new JTabbedPane(); diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java b/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java index d1d0475fe9..8bf12d4b9a 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java @@ -20,6 +20,7 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.geom.Rectangle2D; +import java.util.ArrayList; import java.util.List; public class SelectionChartPanel extends ChartPanel implements MarkerChangeListener { @@ -190,6 +191,16 @@ private static JFreeChart createChart(List values, String title, MarkerCh XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(series); + + // Calculate slopes and add to the series + List slopes = calculateSlopes(values); + + XYSeries slopeSeries = new XYSeries("Slopes"); + for (int i = 1; i < values.size(); i++) { + double slopeIndex = i - 0.5; // offset half an interval, 0.5, from the original values along the x-axis. + slopeSeries.add(slopeIndex, slopes.get(i-1)); + } + dataset.addSeries(slopeSeries); // Create the chart JFreeChart chart = ChartFactory.createXYLineChart(title, "Index", "Value", dataset, PlotOrientation.VERTICAL, @@ -222,7 +233,27 @@ private static JFreeChart createChart(List values, String title, MarkerCh return chart; } + + /** + * Calculates the slopes between points in the list + * + * @param values List of values for which slopes are to be calculated. + * @return List of calculated slopes. + */ + private static List calculateSlopes(List values) { + List slopes = new ArrayList<>(); + for (int i = 1; i < values.size(); i++) { + float slope = (values.get(i) - values.get(i - 1)) / 1.0f; + slopes.add(slope); + } + return slopes; + } + /** + * Sets the 3D points corresponding to the data points in the plot. + * + * @param points List of 3D points to be used in corresponding 3D model updates. + */ public void setChart3DPoints(List points) { this.chart3DPoints = points; } From 4c19d78f988dee2259fa49ff8c581afffa7d2144 Mon Sep 17 00:00:00 2001 From: chend Date: Fri, 14 Jun 2024 17:05:21 -0400 Subject: [PATCH 41/45] Added yClick function and thresholdMarker --- .../PlugInDialogVolumeRenderDualJanelia.java | 2 +- .../worm/untwisting/SelectionChartPanel.java | 52 +++++++++++++++---- 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index f3a4c92657..4ea333a061 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -2360,7 +2360,7 @@ public void actionPerformed(ActionEvent e) { buttonPanel.add(accurateModeButton); accuratePanel.add(buttonPanel, BorderLayout.NORTH); - chartPanel = new SelectionChartPanel(Arrays.asList(0.0f, 0.0f), "Selection Chart", this); + chartPanel = new SelectionChartPanel(Arrays.asList(0.0f, 0.0f, 0.0f), "Selection Chart", this); // Created a fakePanel to split the panel JPanel fakePanel = new JPanel(); diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java b/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java index 8bf12d4b9a..2426ed4126 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java @@ -64,21 +64,32 @@ public void mouseDragged(MouseEvent e) { XYPlot plot = selectionChart.getXYPlot(); ValueAxis xAxis = plot.getDomainAxis(); double x = xAxis.java2DToValue(e.getX(), plotArea, plot.getDomainAxisEdge()); - + ValueAxis yAxis = plot.getRangeAxis(); + double yClick = yAxis.java2DToValue(e.getY(), plotArea, plot.getRangeAxisEdge()); + // Determine the corresponding Y-value by finding the nearest index XYSeriesCollection dataset = (XYSeriesCollection) plot.getDataset(); XYSeries series = dataset.getSeries(0); + XYSeries slopeSeries = dataset.getSeries(1); int index = findNearestXIndex(series, x); double y = series.getY(index).doubleValue(); + double yDer = slopeSeries.getY(index).doubleValue(); // yDer is derivative at x // Update the marker's value and label on the chart ValueMarker marker = (ValueMarker) plot.getDomainMarkers(Layer.FOREGROUND).iterator().next(); marker.setValue(x); - marker.setLabel(String.format("Value: %.2f", y)); - + marker.setLabel(String.format("Value: %.2f, Derivative: %.2f", y, yDer)); marker.setLabelFont(new Font("Serif", Font.BOLD, 14)); marker.setStroke(new BasicStroke(2.0f)); + + // Update the thresholdMarker's value and label on the chart + ValueMarker thresholdMarker = (ValueMarker) plot.getRangeMarkers(Layer.FOREGROUND).iterator().next(); + thresholdMarker.setValue(yClick); + thresholdMarker.setLabel(String.format("Threshold Value: %.2f", yClick)); + thresholdMarker.setLabelFont(new Font("Serif", Font.BOLD, 14)); + thresholdMarker.setStroke(new BasicStroke(2.0f)); + // Redraw the chart to reflect changes repaint(); @@ -193,12 +204,13 @@ private static JFreeChart createChart(List values, String title, MarkerCh dataset.addSeries(series); // Calculate slopes and add to the series - List slopes = calculateSlopes(values); + List slopes = calculateSecantSlopes(values); XYSeries slopeSeries = new XYSeries("Slopes"); - for (int i = 1; i < values.size(); i++) { - double slopeIndex = i - 0.5; // offset half an interval, 0.5, from the original values along the x-axis. - slopeSeries.add(slopeIndex, slopes.get(i-1)); + for (int i = 2; i < values.size(); i++) { + // double slopeIndex = i - 0.5; // offset half an interval, 0.5, from the original values along the x-axis. + double slopeIndex = i -1; + slopeSeries.add(slopeIndex, slopes.get(i-2)); } dataset.addSeries(slopeSeries); @@ -216,18 +228,28 @@ private static JFreeChart createChart(List values, String title, MarkerCh renderer.setSeriesStroke(0, new BasicStroke(2.0f)); plot.setRenderer(renderer); + // Added vertical domianMarker ValueMarker marker = new ValueMarker(maxIndex); marker.setPaint(Color.CYAN); marker.setLabel("Max Value: " + maxValue); - marker.setLabelFont(new Font("Serif", Font.BOLD, 14)); marker.setLabelPaint(Color.WHITE); - marker.setLabelAnchor(RectangleAnchor.CENTER); marker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); marker.setStroke(new BasicStroke(2.0f)); plot.addDomainMarker(marker); + // Added horizontal theesholdMarker + float thresholdValue = maxValue / 2; + ValueMarker thresholdMarker = new ValueMarker(thresholdValue); + thresholdMarker.setPaint(Color.CYAN); + thresholdMarker.setLabel("Threshold Value: " + thresholdValue); + thresholdMarker.setLabelFont(new Font("Serif", Font.BOLD, 14)); + thresholdMarker.setLabelPaint(Color.WHITE); + thresholdMarker.setLabelAnchor(RectangleAnchor.CENTER); + thresholdMarker.setLabelTextAnchor(TextAnchor.CENTER_LEFT); + thresholdMarker.setStroke(new BasicStroke(2.0f)); + plot.addRangeMarker(thresholdMarker); marker.addChangeListener(markerListener); @@ -240,7 +262,7 @@ private static JFreeChart createChart(List values, String title, MarkerCh * @param values List of values for which slopes are to be calculated. * @return List of calculated slopes. */ - private static List calculateSlopes(List values) { + private static List calculateAdjacentSlopes(List values) { List slopes = new ArrayList<>(); for (int i = 1; i < values.size(); i++) { float slope = (values.get(i) - values.get(i - 1)) / 1.0f; @@ -248,6 +270,16 @@ private static List calculateSlopes(List values) { } return slopes; } + + private static List calculateSecantSlopes(List values) { + List slopes = new ArrayList<>(); + for (int i = 2; i < values.size(); i++) { + float slope = (values.get(i) - values.get(i - 2)) / 1.0f; + slopes.add(slope); + } + return slopes; + } + /** * Sets the 3D points corresponding to the data points in the plot. From 03509b895395d53de8e027bbed16158c3031ba7b Mon Sep 17 00:00:00 2001 From: chend Date: Fri, 14 Jun 2024 17:26:23 -0400 Subject: [PATCH 42/45] renamed slope --- .../mipav/plugins/worm/untwisting/SelectionChartPanel.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java b/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java index 2426ed4126..0da952e305 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java @@ -74,12 +74,12 @@ public void mouseDragged(MouseEvent e) { int index = findNearestXIndex(series, x); double y = series.getY(index).doubleValue(); - double yDer = slopeSeries.getY(index).doubleValue(); // yDer is derivative at x + double slope = slopeSeries.getY(index).doubleValue(); // slope is derivative at x // Update the marker's value and label on the chart ValueMarker marker = (ValueMarker) plot.getDomainMarkers(Layer.FOREGROUND).iterator().next(); marker.setValue(x); - marker.setLabel(String.format("Value: %.2f, Derivative: %.2f", y, yDer)); + marker.setLabel(String.format("Value: %.2f, Derivative: %.2f", y, slope)); marker.setLabelFont(new Font("Serif", Font.BOLD, 14)); marker.setStroke(new BasicStroke(2.0f)); From 781117ce892443c2bcf91602e406ab99e0ba0861 Mon Sep 17 00:00:00 2001 From: chend Date: Tue, 18 Jun 2024 11:15:17 -0400 Subject: [PATCH 43/45] Added nextPeak and actionPerformed to allow the nextPeakButton move 3D marker from one peak to the next peak. --- .../PlugInDialogVolumeRenderDualJanelia.java | 4 + .../worm/untwisting/SelectionChartPanel.java | 79 +++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java index 4ea333a061..b2d5185864 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/PlugInDialogVolumeRenderDualJanelia.java @@ -2374,6 +2374,8 @@ public void actionPerformed(ActionEvent e) { nextPeakButton = new JButton("Next Peak"); nextPeakButton.setPreferredSize(new Dimension(200, 50)); nextPeakButton.setToolTipText("Press 'N' move to Next Peak"); + nextPeakButton.addActionListener(chartPanel); + fakePanel.add(nextPeakButton); accuratePanel.add(chartFakeSplit, BorderLayout.CENTER); @@ -2422,6 +2424,8 @@ public void actionPerformed(ActionEvent e) { segmentSeamCells.setSelected(true); } + + /** * Sets up the GPU volume display panel, with the 'back' and 'next' buttons for diff --git a/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java b/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java index 0da952e305..bece67fd75 100644 --- a/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java +++ b/src/org/janelia/mipav/plugins/worm/untwisting/SelectionChartPanel.java @@ -17,11 +17,14 @@ import WildMagic.LibFoundation.Mathematics.Vector3f; import java.awt.*; +import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.geom.Rectangle2D; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; public class SelectionChartPanel extends ChartPanel implements MarkerChangeListener { @@ -289,4 +292,80 @@ private static List calculateSecantSlopes(List values) { public void setChart3DPoints(List points) { this.chart3DPoints = points; } + + /** + * Method to find the next peak. It cycles through values starting from a given + * index to identify a peak where the slope changes sign. + * + * @param index Starting index for the search, ensuring it doesn't start + * before the beginning of the list. + * @param values List of Y-values from the dataset. + * @param threshold Minimum Y-value to consider for a peak. + * @return The index of the next peak if found; otherwise, returns -1. + */ + public float nextPeak(int index, List values, double threshold) { + // Calculate slopes between each pair of points using a secant method. + List slopes = calculateSecantSlopes(values); + // Ensure the starting index is not less than zero + index = Math.max(index, 0); + + // Loop through slopes to find where the sign changes. + for (int j = 0; j < slopes.size() - 1; j++) { + int i = (j + index) % (slopes.size() - 1); + float currentSlope = slopes.get(i); + float nextSlope = slopes.get(i + 1); + float y = values.get(i + 1); + + // Check if current point is a peak by comparing it against the threshold and + // slope changes. + if (y > threshold && currentSlope > 0 && nextSlope < 0) { + // Calculate interpolated index where the slope would cross zero. + float indexX = ((-currentSlope) / (nextSlope - currentSlope)) + i; + System.out.println("here is the indexX:" + indexX); + System.out.println("this is i:" + i); + return indexX + 1; + + } + } + System.out.println("No peak found."); + return -1; + } + + /*** + * Handles action events, specifically looking to handle "Next Peak" actions. + * + * @param e The ActionEvent object containing details about the event. + */ + @Override + public void actionPerformed(ActionEvent e) { + if (e.getActionCommand() == "Next Peak") { + XYPlot plot = selectionChart.getXYPlot(); + // Retrieve data and convert it into a List for processing + XYSeriesCollection dataset = (XYSeriesCollection) plot.getDataset(); + XYSeries series = dataset.getSeries(0); + double[][] data = series.toArray(); + List values = Arrays.stream(data[1]).mapToObj(d -> Float.valueOf((float) d)) + .collect(Collectors.toList()); + + // Access current marker position and determine the next index to check for a + // peak + ValueMarker marker = (ValueMarker) plot.getDomainMarkers(Layer.FOREGROUND).iterator().next(); + int index = (int) Math.ceil(marker.getValue()) + 1; + + // Retrieve threshold value from the threshold marker + ValueMarker thresholdMarker = (ValueMarker) plot.getRangeMarkers(Layer.FOREGROUND).iterator().next(); + double threshold = thresholdMarker.getValue(); + + // Call the nextPeak method to find the next peak and update the chart + float peakIndex = nextPeak(index, values, threshold); + if (peakIndex != -1) { + System.out.println("Next peak is at index: " + peakIndex); + marker.setValue(peakIndex); + float y = values.get(Math.round(peakIndex)); + marker.setLabel(String.format("Value: %.2f, Derivative: %.2f", y, 0.0f)); + } + } else { + super.actionPerformed(e); + } + } } From f3e3d30d6dcadc6ddc7ef12fa53a941c2958cc6a Mon Sep 17 00:00:00 2001 From: chend Date: Fri, 21 Jun 2024 13:50:06 -0400 Subject: [PATCH 44/45] add jfreechart jar file --- .classpath | 6 ++++++ src/lib/jfreechart-1.5.4.jar | Bin 0 -> 1643790 bytes 2 files changed, 6 insertions(+) create mode 100644 src/lib/jfreechart-1.5.4.jar diff --git a/.classpath b/.classpath index f7ad53eba4..331a5fefe6 100644 --- a/.classpath +++ b/.classpath @@ -363,5 +363,11 @@ + + + + + + diff --git a/src/lib/jfreechart-1.5.4.jar b/src/lib/jfreechart-1.5.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..ddd7c23d1749ba0678f0002fa2b05a96cf99b433 GIT binary patch literal 1643790 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�b=m^V` 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 QG?K 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

WKdxllzj3E~B9E*f;0936}ZiUuX1v^;2f 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

-bg@UkA7UTHzy?}Az|>_`~&rap3B-w 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℞4a4Q4CXpV%5DABvr+mobDo4^RyjVve& z1(kkbyeSNqxiM_Idqu2Ns=FX1oEW4FBTCv3 zqke;bQ$&`cJcq?v$OX2cLM_8Zs~kq;#Hy98PAf@m*ohn3R+S!TOp0RYx`{^L(TxE{ z@-6POA=K|g{by7wzAYiaLC9tnr&yEX;0*9#Y}a`-Q1~I%zU|9KaLW9?xu!r!|R9P1{ z1zpN{!8lnZTB((6MsP5rPtp7BaWiatA13BOiIQ^E`nQnCCPCJ{<>fB}qe0vPd>1Ym zXC)@3qQZWO(wFN?iy@MYPvl`JxkTdIjpZ-M51S{a|L9#UcaW{9YtV{NM7wc({Xd{~ zkn1^R11c4!?t5I9admt-*PP)|yz>8Ee&CyuKbT1NF4u{0dxH+7xz?PDG_RB{f^tS<2-J1vF3O zF_Ma6+mf=&nB!#ZHolG2JT93?vx$VNOM+~&m*BO3GXa^SI$LcEE0C%3IQ8CX<0ztQW1MuWPLkP>M za8qD&)NVYts2=P?hQz~0)u%V=J>y&xPG=geH2ph!rcXpl+gk|cx8=r_HH3T3&f8g( zNMMPb(86)Gt0AZ4I=FY75%!mb|eP0#`{BTl*S6xqO$D z8E`|BrnWUba^)6Lqd;EOtvjx$%0JD0DuZp}huD@-8)x=2D0iVGgZth%%t@BnLI~Hz zeTAsEzbkoL*Jq#AIt5#D-trgN?1*=~G-+h9Ua{M}e(zyR?v;CqRfi4HksJI|)&~tq zo$G=XoLmrV%9ArU=u!gjWLt4|m`+ctuC{lDZ=ase?=} zs6N7{pj!QOw>TfDa{Do@k$n4*U(wh5c&YuGZmO#H)aOpW6N@SnA_rDCrB4 z=3%*2cRr$1T>}K&qZ&UoJ0u_33|)NDmFImm_DJ1**v|0%7Z~XeS)eTedcnY5M1h)} zF!NLT-}b~uDi+lUUKyas4FkQd5-2esG~kaiRx@^9P z6*c?m*|YcJo4T9{BSo6qcc{8e%Vr1y;X;~3Df4tx zg9xBC)YGA4eo8Y-k?=KZtn@@?&3R-{y3*XeL%10a$900-?~N!nmc+ipAk7f4L!dA7{X_&A zthBO|-P_YaVcFbHrX-2OCy3VmNg^F(@W2J){ZlO`d`szK#Iy|rqNGvt8^L)6Q0-g? z%D8iud6Q-te0ZDaW3^JfkYLQ0&YN>Uz+Zlu-CBN;xm2mA^aO|@%!GdeIOp*7u`#KI zM0Z)T2W5dANGe2^-oyYph%013%N|G=prW9f-?AgpW}&X^Z%G$q2FVg?iR}6fE3-$P zwir@BXxll{@yI;#b&j%b@MLRR+L^@R5y-}F_fY^Qq1kP|$_VU5AsiDIN)~UN3~@e^ z1W`r=Ztka;LmBh&dy3+$tqDp+@0wkwyttTSC8VoFoOC!HA8X=xIvEnC%V=B&6o>

3T-q$|yfj&)G&hTw`&HXQ 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 +P~F> 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%0A~qw~5uN1p3ddD%#B&*)o3tvDM*vVIO&(e*Nvz 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≥aA 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 z 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

utI#cB-4@6;n!n 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 z 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 F{{y)a6S)8Y literal 0 HcmV?d00001 From 283ebf9c708832cb882071ae8b9a40bd0b0cbaa8 Mon Sep 17 00:00:00 2001 From: chend Date: Fri, 21 Jun 2024 14:00:08 -0400 Subject: [PATCH 45/45] deleted the jcommon --- .classpath | 745 ++++++++++++++++++++++++++--------------------------- 1 file changed, 372 insertions(+), 373 deletions(-) diff --git a/.classpath b/.classpath index 331a5fefe6..725899b55b 100644 --- a/.classpath +++ b/.classpath @@ -1,373 +1,372 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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%0D~RrR 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 z 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