[#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 Overlay extrasOverlay, caretOverlay;
|
||||||
private BufferedImage cgCaretRaster, cpCaretRaster;
|
private BufferedImage cgCaretRaster, cpCaretRaster;
|
||||||
private volatile boolean redrawExtras = true;
|
private volatile boolean redrawExtras = true;
|
||||||
|
private boolean drawCarets = true;
|
||||||
|
|
||||||
private final ArrayList<FigureElement> relativeExtra = new ArrayList<FigureElement>();
|
private final ArrayList<FigureElement> relativeExtra = new ArrayList<FigureElement>();
|
||||||
private final ArrayList<FigureElement> absoluteExtra = 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);
|
rr.render(drawable, configuration, selection);
|
||||||
|
|
||||||
drawExtras(gl, glu);
|
drawExtras(gl, glu);
|
||||||
|
if (drawCarets) {
|
||||||
drawCarets(gl, glu);
|
drawCarets(gl, glu);
|
||||||
|
}
|
||||||
|
|
||||||
// GLJPanel with GLSL Flipper relies on this:
|
// GLJPanel with GLSL Flipper relies on this:
|
||||||
gl.glFrontFace(GL.GL_CCW);
|
gl.glFrontFace(GL.GL_CCW);
|
||||||
@ -710,4 +713,11 @@ public class RocketFigure3d extends JPanel implements GLEventListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isDrawCarets() {
|
||||||
|
return drawCarets;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDrawCarets(boolean drawCarets) {
|
||||||
|
this.drawCarets = drawCarets;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -73,6 +73,8 @@ public class RocketFigure extends AbstractScaleFigure {
|
|||||||
private double rotation;
|
private double rotation;
|
||||||
private Transformation axialRotation;
|
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
|
* The shapes to be drawn are stored in this Priority Queue, where the first shape to be drawn is the one with
|
||||||
* the highest priority, namely being the one where the corresponding RocketComponent has the highest displayOrder
|
* the highest priority, namely being the one where the corresponding RocketComponent has the highest displayOrder
|
||||||
@ -320,9 +322,12 @@ public class RocketFigure extends AbstractScaleFigure {
|
|||||||
|
|
||||||
|
|
||||||
// Draw relative extras
|
// Draw relative extras
|
||||||
|
if (drawCarets) {
|
||||||
for (FigureElement e : relativeExtra) {
|
for (FigureElement e : relativeExtra) {
|
||||||
e.paint(g2, scale);
|
e.paint(g2, scale);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Draw absolute extras
|
// Draw absolute extras
|
||||||
g2.setTransform(baseTransform);
|
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.Dimension;
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
import java.awt.event.InputEvent;
|
import java.awt.event.InputEvent;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -120,6 +122,7 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
|
|||||||
private final ScaleScrollPane scrollPane;
|
private final ScaleScrollPane scrollPane;
|
||||||
|
|
||||||
private final JPanel figureHolder;
|
private final JPanel figureHolder;
|
||||||
|
private JLabel zoomLabel;
|
||||||
|
|
||||||
private JLabel infoMessage;
|
private JLabel infoMessage;
|
||||||
|
|
||||||
@ -259,6 +262,7 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
|
|||||||
figureHolder.add(figure3d, BorderLayout.CENTER);
|
figureHolder.add(figure3d, BorderLayout.CENTER);
|
||||||
rotationSlider.setEnabled(false);
|
rotationSlider.setEnabled(false);
|
||||||
scaleSelector.setEnabled(false);
|
scaleSelector.setEnabled(false);
|
||||||
|
zoomLabel.repaint(); // Makes sure the zoom label is above the scaleSelector
|
||||||
|
|
||||||
revalidate();
|
revalidate();
|
||||||
figureHolder.revalidate();
|
figureHolder.revalidate();
|
||||||
@ -328,7 +332,8 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
|
|||||||
|
|
||||||
// Zoom level selector
|
// Zoom level selector
|
||||||
scaleSelector = new ScaleSelector(scrollPane);
|
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");
|
ribbon.add(scaleSelector, "cell 1 1");
|
||||||
|
|
||||||
// Show CG/CP
|
// Show CG/CP
|
||||||
@ -337,6 +342,19 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
|
|||||||
showCGCP.setSelected(true);
|
showCGCP.setSelected(true);
|
||||||
ribbon.add(showCGCP, "cell 2 1, gapleft para");
|
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
|
// Vertical separator
|
||||||
JSeparator sep = new JSeparator(SwingConstants.VERTICAL);
|
JSeparator sep = new JSeparator(SwingConstants.VERTICAL);
|
||||||
Dimension d_sep = sep.getPreferredSize();
|
Dimension d_sep = sep.getPreferredSize();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user