diff --git a/config/plugins.properties b/config/plugins.properties
index 522d343..a809559 100644
--- a/config/plugins.properties
+++ b/config/plugins.properties
@@ -1,5 +1,6 @@
+CamerasSimple.java=disabled
+ScreenPanel.java=enabled
Camtool.java=disabled
-Cameras.java=disabled
LaserGunAlignment.java=enabled
test2.java=disabled
GunSolenoidAlignment.java=enabled
diff --git a/devices/CurrentCamera.properties b/devices/CurrentCamera.properties
index fae8b48..c261cc3 100644
--- a/devices/CurrentCamera.properties
+++ b/devices/CurrentCamera.properties
@@ -1,4 +1,4 @@
-#Mon Sep 19 17:59:05 CEST 2016
+#Wed Sep 21 11:41:23 CEST 2016
colormap=Grayscale
colormapAutomatic=true
colormapMax=0.0
@@ -6,8 +6,8 @@ colormapMin=0.0
flipHorizontally=false
flipVertically=false
grayscale=false
-imageHeight=1200
-imageWidth=1246
+imageHeight=1024
+imageWidth=1280
invert=false
rescaleFactor=1.0
rescaleOffset=0.0
@@ -18,9 +18,9 @@ roiY=0
rotation=0.0
rotationCrop=true
scale=1.0
-spatialCalOffsetX=-630.0
-spatialCalOffsetY=-612.0
-spatialCalScaleX=26.761819803746654
-spatialCalScaleY=26.595744680851062
+spatialCalOffsetX=NaN
+spatialCalOffsetY=NaN
+spatialCalScaleX=NaN
+spatialCalScaleY=NaN
spatialCalUnits=mm
transpose=false
diff --git a/plugins/ScreenPanel.form b/plugins/ScreenPanel.form
index a08cd9f..4047de7 100644
--- a/plugins/ScreenPanel.form
+++ b/plugins/ScreenPanel.form
@@ -239,7 +239,7 @@
-
+
@@ -270,43 +270,38 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
@@ -368,6 +363,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -403,12 +409,10 @@
-
-
-
-
-
-
+
+
+
+
@@ -417,39 +421,33 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -593,7 +591,7 @@
-
+
@@ -654,7 +652,7 @@
-
+
@@ -704,7 +702,7 @@
-
+
diff --git a/plugins/ScreenPanel.java b/plugins/ScreenPanel.java
index dbe6952..5d109fc 100644
--- a/plugins/ScreenPanel.java
+++ b/plugins/ScreenPanel.java
@@ -34,11 +34,8 @@ import ch.psi.pshell.imaging.Overlay;
import ch.psi.pshell.imaging.Overlays;
import ch.psi.pshell.imaging.Overlays.Text;
import ch.psi.pshell.imaging.Pen;
-import static ch.psi.pshell.imaging.Renderer.PEN_ERROR_TEXT;
-import static ch.psi.pshell.imaging.RendererMenu.PEN_MARKER;
import ch.psi.pshell.imaging.RendererMode;
import ch.psi.pshell.imaging.Source;
-import ch.psi.pshell.imaging.Utils;
import ch.psi.pshell.scripting.InterpreterResult;
import ch.psi.pshell.scripting.ScriptManager;
import ch.psi.utils.Arr;
@@ -53,7 +50,6 @@ import java.awt.Dimension;
import java.awt.Font;
import java.awt.Point;
import java.awt.image.BufferedImage;
-import java.awt.image.DataBufferByte;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
@@ -63,6 +59,7 @@ import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JDialog;
+import javax.swing.SwingUtilities;
import org.apache.commons.math3.analysis.function.Gaussian;
import org.apache.commons.math3.fitting.GaussianCurveFitter;
import org.apache.commons.math3.fitting.WeightedObservedPoint;
@@ -93,6 +90,8 @@ public class ScreenPanel extends Panel {
ex.printStackTrace();
}
}
+ renderer.setProfileNormalized(true);
+ renderer.setShowProfileLimits(true);
showFit = buttonFit.isSelected();
}
@@ -159,16 +158,15 @@ public class ScreenPanel extends Panel {
comboCameras.setSelectedItem(-1);
if (model.getSize() > 0) {
try {
- //setCamera((String)comboCameras.getSelectedItem());
if (App.hasArgument("cam")) {
- comboCameras.setSelectedItem(App.getArgumentValue("cam"));
+ comboCameras.setSelectedItem(App.getArgumentValue("cam"));
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
- startTimer(1000);
+ startTimer(1000);
}
@Override
@@ -353,13 +351,6 @@ public class ScreenPanel extends Panel {
camera.getConfig().spatialCalScaleX = 1.0;
camera.getConfig().spatialCalScaleY = 1.0;
}
- /*
- double[] origin = ((Camtool)camera).origin.read();
- if (origin.length>=2){
- camera.getConfig().spatialCalOffsetX = origin[0];
- camera.getConfig().spatialCalOffsetY = origin[1];
- }
- */
}
buttonReticle.setEnabled(camera.getConfig().isCalibrated());
buttonGrabBackground.setEnabled(camera instanceof Camtool);
@@ -373,10 +364,22 @@ public class ScreenPanel extends Panel {
renderer.setDevice(camera);
renderer.setAutoScroll(true);
renderer.setMarker(marker);
-
+ firstImage = true;
+
camera.addListener(new ImageListener() {
@Override
public void onImage(Object o, BufferedImage bi, Data data) {
+ if (firstImage && (bi!=null)){
+ if ((renderer.getMode()==RendererMode.Zoom) || (renderer.getMode()==RendererMode.Fixed)){
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ centralizeRenderer();
+ }
+ });
+ }
+ firstImage = false;
+ }
if ((bi == null) || (!showFit)) {
renderer.removeOverlays(fitOv);
fitOv = null;
@@ -396,7 +399,8 @@ public class ScreenPanel extends Panel {
} catch (Exception ex) {
if (renderer.getDevice() == null) {
renderer.setZoom(1.0);
- renderer.addOverlay(new Text(PEN_ERROR_TEXT, ex.toString(), new Font("Verdana", Font.PLAIN, 12), new Point(20, 20)));
+ renderer.setMode(RendererMode.Zoom);
+ renderer.addOverlay(new Text(renderer.getPenErrorText(), ex.toString(), new Font("Verdana", Font.PLAIN, 12), new Point(20, 20)));
}
} finally {
checkReticle();
@@ -440,6 +444,8 @@ public class ScreenPanel extends Panel {
valueFilter.setDevice(filter);
}
+
+ volatile Boolean firstImage;
void checkReticle() {
if ((renderer.getDevice() != null) && (camera != null) && (camera.getConfig().isCalibrated()) && buttonReticle.isSelected()) {
@@ -453,6 +459,21 @@ public class ScreenPanel extends Panel {
renderer.refresh();
}
+ void checkMarker() {
+ if (camera != null) {
+ if (buttonMarker.isSelected()) {
+ Dimension d = renderer.getImageSize();
+ Point p = (d == null) ? new Point(renderer.getWidth() / 2, renderer.getHeight() / 2) : new Point(d.width / 2, d.height / 2);
+ Overlay ov = null;
+ marker = new Overlays.Crosshairs(renderer.getPenMarker(), p, new Dimension(100, 100));
+ marker.setMovable(true);
+ } else {
+ marker = null;
+ }
+ renderer.setMarker(marker);
+ }
+ }
+
void updateZoom() {
try {
buttonZoomStretch.setSelected(renderer.getMode() == RendererMode.Stretch);
@@ -466,6 +487,8 @@ public class ScreenPanel extends Panel {
buttonZoom05.setSelected(true);
} else if (renderer.getZoom() == 0.25) {
buttonZoom025.setSelected(true);
+ } else if (renderer.getZoom() == 2.0) {
+ buttonZoom2.setSelected(true);
} else {
buttonGroup1.clearSelection();
}
@@ -548,7 +571,7 @@ public class ScreenPanel extends Panel {
Double ySigma = null;
if (data != null) {
//img = Utils.grayscale(img);
- double maxPlot = 255.0;
+ int profileSize = Math.min(data.getWidth(), data.getHeight())/4;
try {
double[] sum = (double[]) Convert.toDouble(data.integrateVertically());
@@ -559,18 +582,17 @@ public class ScreenPanel extends Panel {
sum[i] = sum[i] - min;
}
- maxPlot = 4 * stats.getMax() / data.getHeight();
-
double[] gaussian = fitGaussian(sum, x);
if (gaussian != null) {
if ((gaussian[2] < sum.length * 0.45) && (gaussian[0] > min * 0.03)) {
+ double maxPlot = gaussian[0];
xMean = gaussian[1];
xSigma = gaussian[2];
gaussian[0] += min;
double[] fit = getFitFunction(gaussian, x);
int[] y = new int[x.length];
for (int i = 0; i < x.length; i++) {
- y[i] = (int) (data.getHeight() - 1 - (fit[i] / maxPlot));
+ y[i] = (int) (data.getHeight() - 1 - ((fit[i] / maxPlot) * profileSize));
}
vpoly = new Overlays.Polyline(fitPen, x, y);
}
@@ -587,12 +609,12 @@ public class ScreenPanel extends Panel {
for (int i = 0; i < sum.length; i++) {
sum[i] = sum[i] - min;
}
- maxPlot = 4 * stats.getMax() / data.getWidth();
double[] gaussian = fitGaussian(sum, x);
if (gaussian != null) {
//Only aknowledge beam fully inside the image and peak over 3% of min
if ((gaussian[2] < sum.length * 0.45) && (gaussian[0] > min * 0.03)) {
+ double maxPlot = gaussian[0];
yMean = gaussian[1];
ySigma = gaussian[2];
gaussian[0] += min;
@@ -600,7 +622,7 @@ public class ScreenPanel extends Panel {
int[] y = new int[x.length];
for (int i = 0; i < x.length; i++) {
- y[i] = (int) (fit[i] / maxPlot);
+ y[i] = (int) ((fit[i] / maxPlot) * profileSize);
}
hpoly = new Overlays.Polyline(fitPen, y, x);
}
@@ -953,6 +975,22 @@ public class ScreenPanel extends Panel {
}
}).start();
}
+
+ void centralizeRenderer(){
+ Point center = null;
+ Dimension size = renderer.getImageSize();
+ double zoom = (renderer.getMode() == RendererMode.Fixed) ? 1.0: renderer.getZoom();
+ if (renderer.getCalibration()!=null){
+ center = renderer.getCalibration().getCenter();
+ } else if (size!=null){
+ center = new Point(size.width/2, size.height/2);
+ }
+ if (center!=null){
+ Point topleft = new Point(Math.max((int) (center.x - renderer.getWidth()/2/zoom), 0),
+ Math.max((int) (center.y - renderer.getHeight()/2/zoom) , 0));
+ renderer.setViewPosition(topleft);
+ }
+ }
////////
@SuppressWarnings("unchecked")
@@ -984,6 +1022,7 @@ public class ScreenPanel extends Panel {
buttonZoomNormal = new javax.swing.JRadioButton();
buttonZoom025 = new javax.swing.JRadioButton();
buttonZoom05 = new javax.swing.JRadioButton();
+ buttonZoom2 = new javax.swing.JRadioButton();
jPanel2 = new javax.swing.JPanel();
buttonGrayscale = new javax.swing.JRadioButton();
buttonRainbow = new javax.swing.JRadioButton();
@@ -1191,6 +1230,14 @@ public class ScreenPanel extends Panel {
}
});
+ buttonGroup1.add(buttonZoom2);
+ buttonZoom2.setText("2");
+ buttonZoom2.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonZoom2ActionPerformed(evt);
+ }
+ });
+
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
@@ -1198,33 +1245,31 @@ public class ScreenPanel extends Panel {
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel3Layout.createSequentialGroup()
- .addComponent(buttonZoomFit)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(buttonZoom025)
- .addComponent(buttonZoom05))
- .addGap(47, 47, 47))
- .addGroup(jPanel3Layout.createSequentialGroup()
- .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(buttonZoomNormal)
- .addComponent(buttonZoomStretch))
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
+ .addComponent(buttonZoomFit)
+ .addComponent(buttonZoomNormal)
+ .addComponent(buttonZoomStretch))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(buttonZoom025)
+ .addComponent(buttonZoom05)
+ .addComponent(buttonZoom2))
+ .addGap(47, 47, 47))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
- .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel3Layout.createSequentialGroup()
- .addComponent(buttonZoomNormal)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(buttonZoomFit))
- .addGroup(jPanel3Layout.createSequentialGroup()
- .addComponent(buttonZoom025)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(buttonZoom05)))
+ .addGap(4, 4, 4)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(buttonZoomNormal)
+ .addComponent(buttonZoom025))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(buttonZoomStretch)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(buttonZoomFit)
+ .addComponent(buttonZoom05))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(buttonZoomStretch)
+ .addComponent(buttonZoom2))
.addContainerGap())
);
@@ -1328,11 +1373,10 @@ public class ScreenPanel extends Panel {
.addComponent(spinnerMin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(buttonRainbow)
- .addComponent(buttonGrayscale)
- .addComponent(buttonTemperature))
- .addComponent(checkHistogram, javax.swing.GroupLayout.Alignment.TRAILING))
+ .addComponent(checkHistogram)
+ .addComponent(buttonTemperature)
+ .addComponent(buttonRainbow)
+ .addComponent(buttonGrayscale))
.addContainerGap())
);
@@ -1341,31 +1385,28 @@ public class ScreenPanel extends Panel {
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
- .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel2Layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
- .addComponent(buttonAutomatic)
- .addComponent(buttonGrayscale))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
- .addComponent(buttonFullRange)
- .addComponent(buttonRainbow))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
- .addComponent(buttonManual)
- .addComponent(buttonTemperature)))
- .addGroup(jPanel2Layout.createSequentialGroup()
- .addGap(77, 77, 77)
- .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel3)
- .addComponent(spinnerMin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel4)
- .addComponent(spinnerMax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(checkHistogram))))
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addGap(4, 4, 4)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(buttonAutomatic)
+ .addComponent(buttonGrayscale))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(buttonFullRange)
+ .addComponent(buttonRainbow))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(buttonManual)
+ .addComponent(buttonTemperature))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 4, Short.MAX_VALUE)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel3)
+ .addComponent(spinnerMin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel4)
+ .addComponent(spinnerMax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(checkHistogram))
+ .addContainerGap())
);
jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Source"));
@@ -1401,7 +1442,7 @@ public class ScreenPanel extends Panel {
jPanel5Layout.setVerticalGroup(
jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel5Layout.createSequentialGroup()
- .addContainerGap()
+ .addGap(4, 4, 4)
.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonCamtool)
.addComponent(buttonDirect))
@@ -1431,7 +1472,7 @@ public class ScreenPanel extends Panel {
panelScreenLayout.setVerticalGroup(
panelScreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelScreenLayout.createSequentialGroup()
- .addContainerGap()
+ .addGap(4, 4, 4)
.addComponent(comboScreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(valueScreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -1461,7 +1502,7 @@ public class ScreenPanel extends Panel {
panelScreen1Layout.setVerticalGroup(
panelScreen1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelScreen1Layout.createSequentialGroup()
- .addContainerGap()
+ .addGap(4, 4, 4)
.addComponent(comboFilter, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(valueFilter, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -1484,7 +1525,7 @@ public class ScreenPanel extends Panel {
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
- .addGap(10, 10, 10)
+ .addContainerGap()
.addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(panelScreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
@@ -1580,18 +1621,7 @@ public class ScreenPanel extends Panel {
private void buttonMarkerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMarkerActionPerformed
try {
- if (camera != null) {
- if (buttonMarker.isSelected()) {
- Dimension d = renderer.getImageSize();
- Point p = (d == null) ? new Point(renderer.getWidth() / 2, renderer.getHeight() / 2) : new Point(d.width / 2, d.height / 2);
- Overlay ov = null;
- marker = new Overlays.Crosshairs(PEN_MARKER, p, new Dimension(100, 100));
- marker.setMovable(true);
- } else {
- marker = null;
- }
- renderer.setMarker(marker);
- }
+ checkMarker();
} catch (Exception ex) {
showException(ex);
}
@@ -1674,7 +1704,8 @@ public class ScreenPanel extends Panel {
private void buttonZoomNormalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoomNormalActionPerformed
try {
renderer.setMode(RendererMode.Fixed);
- renderer.setViewPosition(new Point(0, 0));
+ //renderer.setViewPosition(new Point(0, 0));
+ centralizeRenderer();
} catch (Exception ex) {
showException(ex);
}
@@ -1684,15 +1715,25 @@ public class ScreenPanel extends Panel {
try {
if ((camera != null) && (camera instanceof ColormapSource)) {
ColormapSource source = (ColormapSource) camera;
+ Color colorReticule = new Color(64,64,64);
+ Color colorMarker = new Color(128,128,128);
if (buttonGrayscale.isSelected()) {
+ colorReticule = new Color(0, 192, 0);
+ colorMarker = new Color(64, 255, 64);
source.getConfig().colormap = Colormap.Grayscale;
}
- if (buttonTemperature.isSelected()) {
+ if (buttonTemperature.isSelected()) {
source.getConfig().colormap = Colormap.Temperature;
}
- if (buttonRainbow.isSelected()) {
+ if (buttonRainbow.isSelected()) {
source.getConfig().colormap = Colormap.Rainbow;
}
+
+ renderer.setPenReticle(new Pen(colorReticule));
+ renderer.setPenProfile(new Pen(colorReticule));
+ renderer.setPenMarker(new Pen(colorMarker, 2));
+ renderer.setShowReticle(false);
+ checkReticle();
source.getConfig().colormapAutomatic = buttonAutomatic.isSelected();
source.getConfig().colormapMin = buttonFullRange.isSelected() ? Double.NaN : (Integer) spinnerMin.getValue();
source.getConfig().colormapMax = buttonFullRange.isSelected() ? Double.NaN : (Integer) spinnerMax.getValue();
@@ -1711,13 +1752,15 @@ public class ScreenPanel extends Panel {
private void buttonZoom025ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoom025ActionPerformed
renderer.setZoom(0.25);
renderer.setMode(RendererMode.Zoom);
- renderer.setViewPosition(new Point(0, 0));
+ //renderer.setViewPosition(new Point(0, 0));
+ centralizeRenderer();
}//GEN-LAST:event_buttonZoom025ActionPerformed
private void buttonZoom05ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoom05ActionPerformed
renderer.setZoom(0.5);
renderer.setMode(RendererMode.Zoom);
- renderer.setViewPosition(new Point(0, 0));
+ //renderer.setViewPosition(new Point(0, 0));
+ centralizeRenderer();
}//GEN-LAST:event_buttonZoom05ActionPerformed
private void buttonCamtoolActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCamtoolActionPerformed
@@ -1765,6 +1808,12 @@ public class ScreenPanel extends Panel {
}
}//GEN-LAST:event_checkHistogramActionPerformed
+ private void buttonZoom2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoom2ActionPerformed
+ renderer.setZoom(2.0);
+ renderer.setMode(RendererMode.Zoom);
+ centralizeRenderer();
+ }//GEN-LAST:event_buttonZoom2ActionPerformed
+
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JRadioButton buttonAutomatic;
private javax.swing.JRadioButton buttonCamtool;
@@ -1788,6 +1837,7 @@ public class ScreenPanel extends Panel {
private javax.swing.JRadioButton buttonTemperature;
private javax.swing.JRadioButton buttonZoom025;
private javax.swing.JRadioButton buttonZoom05;
+ private javax.swing.JRadioButton buttonZoom2;
private javax.swing.JRadioButton buttonZoomFit;
private javax.swing.JRadioButton buttonZoomNormal;
private javax.swing.JRadioButton buttonZoomStretch;