Search in sources :

Example 81 with ISize

use of org.vcell.util.ISize in project vcell by virtualcell.

the class ROIDataGenerator method getROIDataGeneratorDescription.

public String getROIDataGeneratorDescription(File userDirectory, SimulationJob simulationJob) throws Exception {
    // DataAccessException, FileNotFoundException, MathException, IOException, DivideByZeroException, ExpressionException
    Simulation simulation = simulationJob.getSimulation();
    StringBuffer sb = new StringBuffer();
    sb.append(ROI_GENERATOR_BEGIN + " " + name + "\n");
    sb.append("VolumePoints " + volumePoints.length + "\n");
    for (int i = 0; i < volumePoints.length; i++) {
        sb.append(volumePoints[i] + " ");
        if ((i + 1) % 20 == 0) {
            sb.append("\n");
        }
    }
    sb.append("\n");
    if (membranePoints != null && membranePoints.length > 0) {
        sb.append("MembranePoints " + membranePoints.length + "\n");
        for (int i = 0; i < membranePoints.length; i++) {
            sb.append(membranePoints[i] + " ");
            if ((i + 1) % 20 == 0) {
                sb.append("\n");
            }
        }
        sb.append("\n");
    }
    sb.append("SampleImage " + numImgRegions + " " + zSlice + " " + fieldDataKey + " " + fieldFuncArguments.infix() + "\n");
    sb.append("StoreEnabled " + bStoreEnabled + "\n");
    // sample image field data file
    FieldDataIdentifierSpec fdis = getSampleImageFieldData(simulation.getVersion().getOwner());
    if (fdis == null) {
        throw new DataAccessException("Can't find sample image in ROI data generator.");
    }
    String secondarySimDataDir = PropertyLoader.getProperty(PropertyLoader.secondarySimDataDirInternalProperty, null);
    DataSetControllerImpl dsci = new DataSetControllerImpl(null, userDirectory.getParentFile(), secondarySimDataDir == null ? null : new File(secondarySimDataDir));
    CartesianMesh origMesh = dsci.getMesh(fdis.getExternalDataIdentifier());
    SimDataBlock simDataBlock = dsci.getSimDataBlock(null, fdis.getExternalDataIdentifier(), fdis.getFieldFuncArgs().getVariableName(), fdis.getFieldFuncArgs().getTime().evaluateConstant());
    VariableType varType = fdis.getFieldFuncArgs().getVariableType();
    VariableType dataVarType = simDataBlock.getVariableType();
    if (!varType.equals(VariableType.UNKNOWN) && !varType.equals(dataVarType)) {
        throw new IllegalArgumentException("field function variable type (" + varType.getTypeName() + ") doesn't match real variable type (" + dataVarType.getTypeName() + ")");
    }
    double[] origData = simDataBlock.getData();
    String filename = SimulationJob.createSimulationJobID(Simulation.createSimulationID(simulation.getKey()), simulationJob.getJobIndex()) + SimulationData.getDefaultFieldDataFileNameForSimulation(fdis.getFieldFuncArgs());
    File fdatFile = new File(userDirectory, filename);
    DataSet.writeNew(fdatFile, new String[] { fdis.getFieldFuncArgs().getVariableName() }, new VariableType[] { simDataBlock.getVariableType() }, new ISize(origMesh.getSizeX(), origMesh.getSizeY(), origMesh.getSizeZ()), new double[][] { origData });
    sb.append("SampleImageFile " + fdis.getFieldFuncArgs().getVariableName() + " " + fdis.getFieldFuncArgs().getTime().infix() + " " + fdatFile + "\n");
    sb.append(ROI_GENERATOR_END);
    return sb.toString();
}
Also used : VariableType(cbit.vcell.math.VariableType) ISize(org.vcell.util.ISize) CartesianMesh(cbit.vcell.solvers.CartesianMesh) Simulation(cbit.vcell.solver.Simulation) SimDataBlock(cbit.vcell.simdata.SimDataBlock) FieldDataIdentifierSpec(cbit.vcell.field.FieldDataIdentifierSpec) DataSetControllerImpl(cbit.vcell.simdata.DataSetControllerImpl) File(java.io.File) DataAccessException(org.vcell.util.DataAccessException)

Example 82 with ISize

use of org.vcell.util.ISize in project vcell by virtualcell.

the class FieldDataGUIPanel method copyMethod.

private void copyMethod(int copyMode) {
    String delimiter = "";
    if (copyMode == COPY_NL) {
        delimiter = "\n";
    } else if (copyMode == COPY_CRNL) {
        delimiter = "\r\n";
    } else if (copyMode == COPY_CSV) {
        delimiter = ",";
    } else if (copyMode == COPY_SPACE) {
        delimiter = " ";
    }
    String copyString = "";
    javax.swing.tree.TreePath selPath = getJTree1().getSelectionPath();
    if (selPath != null) {
        javax.swing.tree.DefaultMutableTreeNode lastPathComponent = (javax.swing.tree.DefaultMutableTreeNode) selPath.getLastPathComponent();
        if (lastPathComponent.equals(getJTree1().getModel().getRoot())) {
            int childCount = lastPathComponent.getChildCount();
            for (int i = 0; i < childCount; i += 1) {
                if (i != 0) {
                    copyString += delimiter;
                }
                copyString += ((FieldDataMainList) ((DefaultMutableTreeNode) lastPathComponent.getChildAt(i)).getUserObject()).externalDataIdentifier.getName();
            }
        } else if (lastPathComponent.getUserObject() instanceof FieldDataOriginList) {
            Origin origin = ((FieldDataOriginList) lastPathComponent.getUserObject()).origin;
            copyString = origin.getX() + delimiter + origin.getY() + delimiter + origin.getZ();
        } else if (lastPathComponent.getUserObject() instanceof FieldDataExtentList) {
            Extent extent = ((FieldDataExtentList) lastPathComponent.getUserObject()).extent;
            copyString = extent.getX() + delimiter + extent.getY() + delimiter + extent.getZ();
        } else if (lastPathComponent.getUserObject() instanceof FieldDataISizeList) {
            ISize isize = ((FieldDataISizeList) lastPathComponent.getUserObject()).isize;
            copyString = isize.getX() + delimiter + isize.getY() + delimiter + isize.getZ();
        } else if (lastPathComponent.getUserObject() instanceof FieldDataTimeList) {
            double[] times = ((FieldDataTimeList) lastPathComponent.getUserObject()).times;
            for (int i = 0; i < times.length; i += 1) {
                if (i != 0) {
                    copyString += delimiter;
                }
                copyString += times[i] + "";
            }
        } else if (lastPathComponent.getUserObject() instanceof FieldDataMainList) {
            ExternalDataIdentifier extDataID = ((FieldDataMainList) lastPathComponent.getUserObject()).externalDataIdentifier;
            copyString = extDataID.getName();
        } else if (lastPathComponent.getUserObject() instanceof FieldDataVarList) {
            DataIdentifier dataIdentifier = ((FieldDataVarList) lastPathComponent.getUserObject()).dataIdentifier;
            copyString = dataIdentifier.getName();
        } else if (lastPathComponent.getUserObject() instanceof FieldDataVarMainList) {
            int childCount = lastPathComponent.getChildCount();
            for (int i = 0; i < childCount; i += 1) {
                if (i != 0) {
                    copyString += delimiter;
                }
                copyString += ((FieldDataVarList) ((DefaultMutableTreeNode) lastPathComponent.getChildAt(i)).getUserObject()).dataIdentifier.getName();
            }
        }
        if (copyString.length() > 0) {
            VCellTransferable.sendToClipboard(copyString);
        }
    }
}
Also used : Origin(org.vcell.util.Origin) DataIdentifier(cbit.vcell.simdata.DataIdentifier) ExternalDataIdentifier(org.vcell.util.document.ExternalDataIdentifier) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) TreePath(javax.swing.tree.TreePath) Extent(org.vcell.util.Extent) ISize(org.vcell.util.ISize) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) ExternalDataIdentifier(org.vcell.util.document.ExternalDataIdentifier)

Example 83 with ISize

use of org.vcell.util.ISize in project vcell by virtualcell.

the class VCellBasicCellRenderer method setComponentProperties.

/**
 * Insert the method's description here.
 * Creation date: (5/8/01 8:35:45 AM)
 * @return javax.swing.Icon
 * @param nodeUserObject java.lang.Object
 */
protected void setComponentProperties(JLabel component, VCImageInfo imageInfo) {
    // component.setIcon(new ImageIcon(imageInfo.getBrowseGif().getGifEncodedData()));
    Version version = imageInfo.getVersion();
    String access = (version.getGroupAccess().getDescription());
    component.setToolTipText("Image");
    ISize size = imageInfo.getISize();
    String description = null;
    if (size.getZ() > 1) {
        description = "3D image (" + size.getX() + "," + size.getY() + "," + size.getZ() + ")";
    } else if (size.getY() > 1) {
        description = "2D image (" + size.getX() + "," + size.getY() + ")";
    } else {
        description = "1D image (" + size.getX() + ")";
    }
    component.setText(access + " " + description + " \"" + version.getName() + "\"" + "  (" + version.getDate() + ")");
}
Also used : Version(org.vcell.util.document.Version) ISize(org.vcell.util.ISize)

Example 84 with ISize

use of org.vcell.util.ISize in project vcell by virtualcell.

the class ROIImagePanel method refreshROIImage.

public void refreshROIImage(ROI[] analysisROIs, Color[] rinROIColors, ROI cellROI, Color cellROIColor) /*,ROI bleachROI,Color bleachROIColor*/
{
    ISize roiISize = cellROI.getISize();
    final int ROISIZE_XYZ = roiISize.getXYZ();
    BufferedImage roiImage = new BufferedImage(roiISize.getX(), roiISize.getY(), BufferedImage.TYPE_INT_RGB);
    // fill ROIs
    for (int i = 0; i < analysisROIs.length; i++) {
        short[] roiPixels = analysisROIs[i].getPixelsXYZ();
        for (int j = 0; j < ROISIZE_XYZ; j++) {
            if (roiPixels[j] != 0) {
                roiImage.setRGB(j % roiISize.getX(), j / roiISize.getX(), rinROIColors[i].getRGB());
            }
        }
    }
    // outline cell
    short[] cellROIPixels = cellROI.getPixelsXYZ();
    for (int y = 0; y < roiISize.getY(); y++) {
        int yindex = y * roiISize.getX();
        for (int x = 0; x < roiISize.getX(); x++) {
            if (cellROIPixels[yindex + x] != 0) {
                boolean bEdge = false;
                if (x > 0) {
                    if (cellROIPixels[yindex + x - 1] == 0) {
                        bEdge = true;
                    }
                }
                if (x < (roiISize.getX() - 1)) {
                    if (cellROIPixels[yindex + x + 1] == 0) {
                        bEdge = true;
                    }
                }
                if (y > 0) {
                    if (cellROIPixels[yindex + x - roiISize.getX()] == 0) {
                        bEdge = true;
                    }
                }
                if (y < (roiISize.getY() - 1)) {
                    if (cellROIPixels[yindex + x + roiISize.getX()] == 0) {
                        bEdge = true;
                    }
                }
                if (bEdge) {
                    roiImage.setRGB(x, y, cellROIColor.getRGB());
                }
            }
        }
    }
    Image scaledImage = roiImage;
    int largestDimension = Math.max(roiISize.getX(), roiISize.getY());
    // if(largestDimension > 320){
    double scale = 280.0 / largestDimension;
    scaledImage = roiImage.getScaledInstance((int) (roiISize.getX() * scale), (int) (roiISize.getY() * scale), Image.SCALE_REPLICATE);
    // }
    roiImageIcon = new ImageIcon(scaledImage);
    roiImageJLabel.setIcon(roiImageIcon);
    roiImageJLabel.setText(null);
}
Also used : ImageIcon(javax.swing.ImageIcon) ISize(org.vcell.util.ISize) Image(java.awt.Image) BufferedImage(java.awt.image.BufferedImage) BufferedImage(java.awt.image.BufferedImage)

Example 85 with ISize

use of org.vcell.util.ISize in project vcell by virtualcell.

the class GeometrySpec method updateSampledImage.

/**
 * This method was created in VisualAge.
 * @return cbit.image.VCImage
 */
void updateSampledImage(GeometryThumbnailImageFactory geometryThumbnailImageFactory) throws GeometryException, ImageException, ExpressionException {
    if (getSampledImage().isDirty()) {
        ISize sampleSize = getDefaultSampledImageSize();
        getSampledImage().setValue(createSampledImage(sampleSize));
        getThumbnailImage().setValue(createThumbnailImage(geometryThumbnailImageFactory));
    }
}
Also used : ISize(org.vcell.util.ISize)

Aggregations

ISize (org.vcell.util.ISize)139 Extent (org.vcell.util.Extent)53 Origin (org.vcell.util.Origin)46 CartesianMesh (cbit.vcell.solvers.CartesianMesh)27 IOException (java.io.IOException)22 VCImage (cbit.image.VCImage)21 VCImageUncompressed (cbit.image.VCImageUncompressed)21 Geometry (cbit.vcell.geometry.Geometry)21 ExpressionException (cbit.vcell.parser.ExpressionException)21 DataAccessException (org.vcell.util.DataAccessException)21 RegionImage (cbit.vcell.geometry.RegionImage)20 ImageException (cbit.image.ImageException)19 FieldDataFileOperationSpec (cbit.vcell.field.io.FieldDataFileOperationSpec)19 File (java.io.File)18 MathException (cbit.vcell.math.MathException)17 ArrayList (java.util.ArrayList)16 GeometrySurfaceDescription (cbit.vcell.geometry.surface.GeometrySurfaceDescription)14 Expression (cbit.vcell.parser.Expression)14 PropertyVetoException (java.beans.PropertyVetoException)14 AsynchClientTask (cbit.vcell.client.task.AsynchClientTask)13