[#1168] Implement Show/hide CG/CP markings
This commit is contained in:
parent
5df388bafd
commit
18a690d829
@ -83,6 +83,7 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
|
||||
private Overlay extrasOverlay, caretOverlay;
|
||||
private BufferedImage cgCaretRaster, cpCaretRaster;
|
||||
private volatile boolean redrawExtras = true;
|
||||
private boolean drawCarets = true;
|
||||
|
||||
private final ArrayList<FigureElement> relativeExtra = new ArrayList<FigureElement>();
|
||||
private final ArrayList<FigureElement> absoluteExtra = new ArrayList<FigureElement>();
|
||||
@ -324,7 +325,9 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
|
||||
rr.render(drawable, configuration, selection);
|
||||
|
||||
drawExtras(gl, glu);
|
||||
drawCarets(gl, glu);
|
||||
if (drawCarets) {
|
||||
drawCarets(gl, glu);
|
||||
}
|
||||
|
||||
// GLJPanel with GLSL Flipper relies on this:
|
||||
gl.glFrontFace(GL.GL_CCW);
|
||||
@ -709,5 +712,12 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public boolean isDrawCarets() {
|
||||
return drawCarets;
|
||||
}
|
||||
|
||||
public void setDrawCarets(boolean drawCarets) {
|
||||
this.drawCarets = drawCarets;
|
||||
}
|
||||
}
|
||||
|
@ -72,6 +72,8 @@ public class RocketFigure extends AbstractScaleFigure {
|
||||
|
||||
private double rotation;
|
||||
private Transformation axialRotation;
|
||||
|
||||
private boolean drawCarets = true;
|
||||
|
||||
/**
|
||||
* The shapes to be drawn are stored in this Priority Queue, where the first shape to be drawn is the one with
|
||||
@ -320,9 +322,12 @@ public class RocketFigure extends AbstractScaleFigure {
|
||||
|
||||
|
||||
// Draw relative extras
|
||||
for (FigureElement e : relativeExtra) {
|
||||
e.paint(g2, scale);
|
||||
if (drawCarets) {
|
||||
for (FigureElement e : relativeExtra) {
|
||||
e.paint(g2, scale);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Draw absolute extras
|
||||
g2.setTransform(baseTransform);
|
||||
@ -487,4 +492,12 @@ public class RocketFigure extends AbstractScaleFigure {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isDrawCarets() {
|
||||
return drawCarets;
|
||||
}
|
||||
|
||||
public void setDrawCarets(boolean drawCarets) {
|
||||
this.drawCarets = drawCarets;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -5,6 +5,8 @@ import java.awt.BorderLayout;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.Point;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.InputEvent;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.ArrayList;
|
||||
@ -120,6 +122,7 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
|
||||
private final ScaleScrollPane scrollPane;
|
||||
|
||||
private final JPanel figureHolder;
|
||||
private JLabel zoomLabel;
|
||||
|
||||
private JLabel infoMessage;
|
||||
|
||||
@ -259,6 +262,7 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
|
||||
figureHolder.add(figure3d, BorderLayout.CENTER);
|
||||
rotationSlider.setEnabled(false);
|
||||
scaleSelector.setEnabled(false);
|
||||
zoomLabel.repaint(); // Makes sure the zoom label is above the scaleSelector
|
||||
|
||||
revalidate();
|
||||
figureHolder.revalidate();
|
||||
@ -328,7 +332,8 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
|
||||
|
||||
// Zoom level selector
|
||||
scaleSelector = new ScaleSelector(scrollPane);
|
||||
ribbon.add(new JLabel(trans.get("RocketPanel.lbl.Zoom")), "cell 1 0, center");
|
||||
zoomLabel = new JLabel(trans.get("RocketPanel.lbl.Zoom"));
|
||||
ribbon.add(zoomLabel, "cell 1 0, center");
|
||||
ribbon.add(scaleSelector, "cell 1 1");
|
||||
|
||||
// Show CG/CP
|
||||
@ -337,6 +342,19 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
|
||||
showCGCP.setSelected(true);
|
||||
ribbon.add(showCGCP, "cell 2 1, gapleft para");
|
||||
|
||||
showCGCP.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (figure != null) {
|
||||
figure.setDrawCarets(showCGCP.isSelected());
|
||||
}
|
||||
if (figure3d != null) {
|
||||
figure3d.setDrawCarets(showCGCP.isSelected());
|
||||
}
|
||||
updateFigures();
|
||||
}
|
||||
});
|
||||
|
||||
// Vertical separator
|
||||
JSeparator sep = new JSeparator(SwingConstants.VERTICAL);
|
||||
Dimension d_sep = sep.getPreferredSize();
|
||||
|
Loading…
x
Reference in New Issue
Block a user