Search in sources :

Example 11 with Curve

use of cbit.vcell.geometry.Curve in project vcell by virtualcell.

the class PDEDataContextPanel method getCurveValue.

/**
 * Insert the method's description here.
 * Creation date: (3/13/2001 12:53:10 PM)
 * @return java.lang.String
 * @param csi cbit.vcell.geometry.CurveSelectionInfo
 */
public String getCurveValue(CurveSelectionInfo csi) {
    String infoS = null;
    if (csi.getType() == CurveSelectionInfo.TYPE_SEGMENT) {
        if (membranesAndIndexes != null) {
            java.util.Enumeration<SampledCurve> keysEnum = membranesAndIndexes.keys();
            while (keysEnum.hasMoreElements()) {
                Curve curve = (Curve) keysEnum.nextElement();
                if (csi.getCurve() == curve) {
                    int[] membraneIndexes = (int[]) membranesAndIndexes.get(curve);
                    if (meshDisplayAdapter != null) {
                        double[] membraneValues = meshDisplayAdapter.getDataValuesForMembraneIndexes(membraneIndexes, getPdeDataContext().getDataValues(), getPdeDataContext().getDataIdentifier().getVariableType());
                        if (membraneValues != null) {
                            Coordinate segmentWC = getPdeDataContext().getCartesianMesh().getCoordinateFromMembraneIndex(membraneIndexes[csi.getSegment()]);
                            String xCoordString = NumberUtils.formatNumber(segmentWC.getX());
                            String yCoordString = NumberUtils.formatNumber(segmentWC.getY());
                            String zCoordString = NumberUtils.formatNumber(segmentWC.getZ());
                            boolean bDefined = getDataInfoProvider() == null || getDataInfoProvider().isDefined(membraneIndexes[csi.getSegment()]);
                            infoS = "(" + xCoordString + "," + yCoordString + "," + zCoordString + ")  [" + membraneIndexes[csi.getSegment()] + "]  Value = " + (bDefined ? membraneValues[csi.getSegment()] : "Undefined");
                            if (getPdeDataContext().getCartesianMesh() != null && getPdeDataContext().getCartesianMesh().isChomboMesh()) {
                                if (bDefined && getDataInfoProvider() != null) {
                                    StructureMetricsEntry structure = ((CartesianMeshChombo) getDataInfoProvider().getPDEDataContext().getCartesianMesh()).getStructureInfo(getDataInfoProvider().getPDEDataContext().getDataIdentifier());
                                    if (structure != null) {
                                        infoS += " || " + structure.getDisplayLabel();
                                    }
                                }
                            } else {
                                if (getDataInfoProvider() != null) {
                                    MembraneDataInfo membraneDataInfo = getDataInfoProvider().getMembraneDataInfo(membraneIndexes[csi.getSegment()]);
                                    infoS += "          ";
                                    infoS += " \"" + membraneDataInfo.membraneName + "\"";
                                    infoS += " mrID=" + membraneDataInfo.membraneRegionID;
                                }
                                String curveDescr = CurveRenderer.getROIDescriptions(segmentWC, getImagePlaneManagerPanel().getCurveRenderer());
                                if (curveDescr != null) {
                                    infoS += "     " + curveDescr;
                                }
                            }
                            break;
                        }
                    }
                }
            }
        }
    }
    return infoS;
}
Also used : SampledCurve(cbit.vcell.geometry.SampledCurve) Coordinate(org.vcell.util.Coordinate) ControlPointCurve(cbit.vcell.geometry.ControlPointCurve) Curve(cbit.vcell.geometry.Curve) SampledCurve(cbit.vcell.geometry.SampledCurve) CurveSelectionCurve(cbit.vcell.geometry.CurveSelectionCurve) StructureMetricsEntry(cbit.vcell.solvers.CartesianMeshChombo.StructureMetricsEntry) MembraneDataInfo(cbit.vcell.simdata.MembraneDataInfo) CartesianMeshChombo(cbit.vcell.solvers.CartesianMeshChombo)

Example 12 with Curve

use of cbit.vcell.geometry.Curve in project vcell by virtualcell.

the class PDEDataContextPanel method fireDataSamplers.

/**
 * Insert the method's description here.
 * Creation date: (7/6/2003 7:42:59 PM)
 * @param curve cbit.vcell.geometry.Curve
 */
private void fireDataSamplers() {
    // fire "dataSamplers" if there are any
    boolean bTimeDataSamplerVisible = false;
    boolean bSpatialDataSamplerVisible = false;
    CurveRenderer cr = getImagePlaneManagerPanel().getCurveRenderer();
    if (cr != null) {
        Curve[] curves = getImagePlaneManagerPanel().getCurveRenderer().getAllCurves();
        if (curves != null && curves.length > 0) {
            for (int i = 0; i < curves.length; i += 1) {
                if (membranesAndIndexes == null || !membranesAndIndexes.containsKey(curves[i])) {
                    boolean isCurveValidDataSampler = isValidDataSampler(curves[i]);
                    bTimeDataSamplerVisible = bTimeDataSamplerVisible || (isCurveValidDataSampler && curves[i] instanceof SinglePoint);
                    bSpatialDataSamplerVisible = bSpatialDataSamplerVisible || (isCurveValidDataSampler && !(curves[i] instanceof SinglePoint)) && cr.getSelection() != null && cr.getSelection().getCurve() == curves[i];
                }
            }
        }
    }
    // 
    firePropertyChange("timeDataSamplers", !bTimeDataSamplerVisible, bTimeDataSamplerVisible);
    firePropertyChange("spatialDataSamplers", !bSpatialDataSamplerVisible, bSpatialDataSamplerVisible);
}
Also used : SinglePoint(cbit.vcell.geometry.SinglePoint) ControlPointCurve(cbit.vcell.geometry.ControlPointCurve) Curve(cbit.vcell.geometry.Curve) SampledCurve(cbit.vcell.geometry.SampledCurve) CurveSelectionCurve(cbit.vcell.geometry.CurveSelectionCurve) CurveRenderer(cbit.vcell.geometry.CurveRenderer) SinglePoint(cbit.vcell.geometry.SinglePoint)

Example 13 with Curve

use of cbit.vcell.geometry.Curve in project vcell by virtualcell.

the class PDEDataContextPanel method isAddControlPointOK.

/**
 * Insert the method's description here.
 * Creation date: (7/4/2003 6:10:48 PM)
 */
public boolean isAddControlPointOK(int tool, Coordinate wc, Curve addedToThisCurve) {
    // 
    CurveRenderer curveR = getImagePlaneManagerPanel().getCurveRenderer();
    VariableType variableType = getPdeDataContext().getDataIdentifier().getVariableType();
    if (variableType.equals(VariableType.POSTPROCESSING) || variableType.equals(VariableType.VOLUME) || variableType.equals(VariableType.VOLUME_REGION)) {
        return true;
    }
    if (variableType.equals(VariableType.MEMBRANE) || variableType.equals(VariableType.MEMBRANE_REGION)) {
        CurveSelectionInfo[] closeCSI = curveR.getCloseCurveSelectionInfos(wc);
        if (closeCSI != null && closeCSI.length > 0) {
            for (int i = 0; i < closeCSI.length; i += 1) {
                if (tool == CurveEditorTool.TOOL_POINT && addedToThisCurve instanceof SinglePoint && membranesAndIndexes != null && membranesAndIndexes.containsKey(closeCSI[i].getCurve())) {
                    return true;
                } else if (tool == CurveEditorTool.TOOL_LINE && addedToThisCurve instanceof CurveSelectionCurve) {
                    Curve sourceCurve = ((CurveSelectionCurve) (addedToThisCurve)).getSourceCurveSelectionInfo().getCurve();
                    if (sourceCurve == closeCSI[i].getCurve()) {
                        if (membranesAndIndexes != null && membranesAndIndexes.containsKey(sourceCurve)) {
                            return true;
                        }
                    }
                }
            }
        }
    }
    return false;
}
Also used : CurveSelectionCurve(cbit.vcell.geometry.CurveSelectionCurve) SinglePoint(cbit.vcell.geometry.SinglePoint) VariableType(cbit.vcell.math.VariableType) ControlPointCurve(cbit.vcell.geometry.ControlPointCurve) Curve(cbit.vcell.geometry.Curve) SampledCurve(cbit.vcell.geometry.SampledCurve) CurveSelectionCurve(cbit.vcell.geometry.CurveSelectionCurve) CurveRenderer(cbit.vcell.geometry.CurveRenderer) CurveSelectionInfo(cbit.vcell.geometry.CurveSelectionInfo) SinglePoint(cbit.vcell.geometry.SinglePoint)

Example 14 with Curve

use of cbit.vcell.geometry.Curve in project vcell by virtualcell.

the class PDEOffscreenRenderer method getPixelsRGB.

/**
 * Insert the method's description here.
 * Creation date: (3/1/2001 11:54:44 PM)
 * @return int[]
 */
public int[] getPixelsRGB(int imageScale, int membrScale, int meshMode, int volVarMembrOutlineThickness) {
    if (getServerPDEDataContext().getDataIdentifier().getVariableType().equals(VariableType.VOLUME) || getServerPDEDataContext().getDataIdentifier().getVariableType().equals(VariableType.POSTPROCESSING)) {
        CartesianMesh mesh = getServerPDEDataContext().getCartesianMesh();
        MeshDisplayAdapter meshDisplayAdapter = new MeshDisplayAdapter(mesh);
        BufferedImage bufferedImage = getScaledRGBVolume(mesh, meshMode, imageScale, false);
        // 
        if (!getServerPDEDataContext().getDataIdentifier().getVariableType().equals(VariableType.POSTPROCESSING) && volVarMembrOutlineThickness > 0) {
            cbit.vcell.geometry.CurveRenderer curveRenderer = new cbit.vcell.geometry.CurveRenderer(getDisplayAdapterService());
            curveRenderer.setNormalAxis(getNormalAxis());
            org.vcell.util.Origin origin = mesh.getOrigin();
            org.vcell.util.Extent extent = mesh.getExtent();
            curveRenderer.setWorldOrigin(new org.vcell.util.Coordinate(origin.getX(), origin.getY(), origin.getZ()));
            Coordinate pixeldelta = getPixelDelta(extent, mesh, meshMode, imageScale);
            curveRenderer.setWorldDelta(new org.vcell.util.Coordinate(pixeldelta.getX(), pixeldelta.getY(), pixeldelta.getZ()));
            Hashtable<SampledCurve, int[]> curvesAndMembraneIndexes = meshDisplayAdapter.getCurvesAndMembraneIndexes(getNormalAxis(), getSlice());
            if (curvesAndMembraneIndexes != null) {
                Curve[] curves = (Curve[]) org.vcell.util.BeanUtils.getArray(curvesAndMembraneIndexes.keys(), Curve.class);
                for (int i = 0; curves != null && i < curves.length; i++) {
                    curveRenderer.addCurve(curves[i]);
                    curveRenderer.renderPropertySegmentColors(curves[i], null);
                    curveRenderer.renderPropertyLineWidthMultiplier(curves[i], volVarMembrOutlineThickness);
                }
                Graphics2D g = (Graphics2D) bufferedImage.getGraphics();
                // must be false or could get more than 256 colors
                curveRenderer.setAntialias(false);
                curveRenderer.draw(g);
            }
        }
        return ((DataBufferInt) bufferedImage.getData().getDataBuffer()).getData();
    } else if (getServerPDEDataContext().getDataIdentifier().getVariableType().equals(VariableType.MEMBRANE)) {
        CartesianMesh mesh = getServerPDEDataContext().getCartesianMesh();
        MeshDisplayAdapter meshDisplayAdapter = new MeshDisplayAdapter(mesh);
        BufferedImage bufferedImage = getScaledRGBVolume(mesh, meshMode, imageScale, true);
        // 
        // apply curve renderer
        // 
        cbit.vcell.geometry.CurveRenderer curveRenderer = new cbit.vcell.geometry.CurveRenderer(getDisplayAdapterService());
        curveRenderer.setNormalAxis(getNormalAxis());
        org.vcell.util.Origin origin = mesh.getOrigin();
        org.vcell.util.Extent extent = mesh.getExtent();
        curveRenderer.setWorldOrigin(new org.vcell.util.Coordinate(origin.getX(), origin.getY(), origin.getZ()));
        Coordinate pixeldelta = getPixelDelta(extent, mesh, meshMode, imageScale);
        curveRenderer.setWorldDelta(new org.vcell.util.Coordinate(pixeldelta.getX(), pixeldelta.getY(), pixeldelta.getZ()));
        Hashtable<SampledCurve, int[]> curvesAndMembraneIndexes = meshDisplayAdapter.getCurvesAndMembraneIndexes(getNormalAxis(), getSlice());
        if (curvesAndMembraneIndexes != null) {
            Curve[] curves = (Curve[]) org.vcell.util.BeanUtils.getArray(curvesAndMembraneIndexes.keys(), Curve.class);
            for (int i = 0; curves != null && i < curves.length; i++) {
                curveRenderer.addCurve(curves[i]);
                curveRenderer.renderPropertySegmentColors(curves[i], getCurveColors(curvesAndMembraneIndexes, curves[i], meshDisplayAdapter));
                curveRenderer.renderPropertyLineWidthMultiplier(curves[i], membrScale);
            }
            Graphics2D g = (Graphics2D) bufferedImage.getGraphics();
            curveRenderer.setAntialias(false);
            curveRenderer.draw(g);
        }
        return ((DataBufferInt) bufferedImage.getData().getDataBuffer()).getData();
    } else {
        throw new RuntimeException("unsupported VariableType " + getServerPDEDataContext().getDataIdentifier().getVariableType());
    }
}
Also used : Extent(org.vcell.util.Extent) DataBufferInt(java.awt.image.DataBufferInt) BufferedImage(java.awt.image.BufferedImage) MeshDisplayAdapter(cbit.vcell.solvers.MeshDisplayAdapter) SampledCurve(cbit.vcell.geometry.SampledCurve) Hashtable(java.util.Hashtable) Curve(cbit.vcell.geometry.Curve) SampledCurve(cbit.vcell.geometry.SampledCurve) Extent(org.vcell.util.Extent) Graphics2D(java.awt.Graphics2D) Coordinate(org.vcell.util.Coordinate) CartesianMesh(cbit.vcell.solvers.CartesianMesh) Coordinate(org.vcell.util.Coordinate)

Example 15 with Curve

use of cbit.vcell.geometry.Curve in project vcell by virtualcell.

the class GeometryFilamentCurvePanel method setCurve2.

/**
 * Set the Curve2 to a new value.
 * @param newValue cbit.vcell.geometry.Curve
 */
/* WARNING: THIS METHOD WILL BE REGENERATED. */
private void setCurve2(cbit.vcell.geometry.Curve newValue) {
    if (ivjCurve2 != newValue) {
        try {
            cbit.vcell.geometry.Curve oldValue = getCurve2();
            ivjCurve2 = newValue;
            connPtoP6SetSource();
            firePropertyChange("curve", oldValue, newValue);
        // user code begin {1}
        // user code end
        } catch (java.lang.Throwable ivjExc) {
            // user code begin {2}
            // user code end
            handleException(ivjExc);
        }
    }
    ;
// user code begin {3}
// user code end
}
Also used : Curve(cbit.vcell.geometry.Curve)

Aggregations

Curve (cbit.vcell.geometry.Curve)17 SampledCurve (cbit.vcell.geometry.SampledCurve)10 ControlPointCurve (cbit.vcell.geometry.ControlPointCurve)8 CurveSelectionCurve (cbit.vcell.geometry.CurveSelectionCurve)7 SinglePoint (cbit.vcell.geometry.SinglePoint)6 VariableType (cbit.vcell.math.VariableType)6 CurveSelectionInfo (cbit.vcell.geometry.CurveSelectionInfo)5 CurveRenderer (cbit.vcell.geometry.CurveRenderer)4 CartesianMesh (cbit.vcell.solvers.CartesianMesh)4 Coordinate (org.vcell.util.Coordinate)4 SpatialSelectionVolume (cbit.vcell.simdata.SpatialSelectionVolume)3 ImageException (cbit.image.ImageException)2 SpatialSelection (cbit.vcell.simdata.SpatialSelection)2 SpatialSelectionMembrane (cbit.vcell.simdata.SpatialSelectionMembrane)2 ActionEvent (java.awt.event.ActionEvent)2 ActionListener (java.awt.event.ActionListener)2 PropertyVetoException (java.beans.PropertyVetoException)2 Vector (java.util.Vector)2 JPanel (javax.swing.JPanel)2 DataAccessException (org.vcell.util.DataAccessException)2