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;
}
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);
}
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;
}
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());
}
}
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
}
Aggregations