Loading GUI/src/main/java/cz/fidentis/analyst/gui/core/RenderingToolBar.javadeleted 100644 → 0 +0 −139 Original line number Diff line number Diff line package cz.fidentis.analyst.gui.core; import com.jogamp.opengl.GL2; import cz.fidentis.analyst.gui.canvas.Canvas; import cz.fidentis.analyst.gui.scene.DrawableMesh; import java.awt.Color; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.net.URL; import java.util.HashMap; import java.util.Map; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JToolBar; import javax.swing.SwingConstants; import org.openide.awt.Mnemonics; /** * Rendering toolbar. * * @author Radek Oslejsek */ public class RenderingToolBar extends JToolBar { public static final int WIDTH = 48; public static final Color REFLECTIONS_COLOR = Color.DARK_GRAY; public enum Button { WIREFRAME, // wire-frame vs. filled triangles BACKGROUND, // light vs. dark background REFLECTIONS; // ligths producing reflections on surface @Override public String toString() { switch (this) { default: return super.toString().toLowerCase(); } } } private final Map<Button, JButton> buttons = new HashMap<>(); private final Canvas canvas; public RenderingToolBar(Canvas canvas) { this.canvas = canvas; initToolBar(); initButtons(); initEvents(); } private void initToolBar() { setOrientation(javax.swing.SwingConstants.VERTICAL); setRollover(true); setFloatable(false); } private void initButtons() { for (Button butEnum: Button.values()) { JButton button = new JButton(); URL icon = getClass().getResource("/" + butEnum + "28x28.png"); if (icon != null) { button.setIcon(new ImageIcon(icon)); } Mnemonics.setLocalizedText(button, org.openide.util.NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar." + butEnum +".text")); button.setFocusable(false); button.setText(null); button.setToolTipText(butEnum.toString()); button.setHorizontalTextPosition(SwingConstants.CENTER); button.setVerticalTextPosition(SwingConstants.BOTTOM); buttons.put(butEnum, button); add(button); } } private void initEvents() { for (Button butEnum: Button.values()) { JButton button = buttons.get(butEnum); button.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent evt) { switch (butEnum) { case WIREFRAME: wireframeButtonClicked(evt); break; case BACKGROUND: backgroundButtonClicked(evt); break; case REFLECTIONS: reflectionsButtonClicked(evt); break; } } }); } } private void wireframeButtonClicked(MouseEvent evt) { boolean on = buttons.get(Button.WIREFRAME).isSelected(); for (DrawableMesh dm: canvas.getScene().getDrawables()) { if (on) { dm.setRenderMode(GL2.GL_FILL); buttons.get(Button.WIREFRAME).setSelected(false); } else { dm.setRenderMode(GL2.GL_LINE); buttons.get(Button.WIREFRAME).setSelected(true); } } canvas.renderScene(); } private void backgroundButtonClicked(MouseEvent evt) { boolean on = buttons.get(Button.BACKGROUND).isSelected(); if (on) { canvas.getSceneRenderer().setDarkBackground(); buttons.get(Button.BACKGROUND).setSelected(false); } else { canvas.getSceneRenderer().setBrightBackground(); buttons.get(Button.BACKGROUND).setSelected(true); } canvas.renderScene(); } private void reflectionsButtonClicked(MouseEvent evt) { boolean on = buttons.get(Button.REFLECTIONS).isSelected(); for (DrawableMesh dm: canvas.getScene().getDrawables()) { if (on) { dm.setHighlights(Color.BLACK); buttons.get(Button.REFLECTIONS).setSelected(false); } else { dm.setHighlights(REFLECTIONS_COLOR); buttons.get(Button.REFLECTIONS).setSelected(true); } } canvas.renderScene(); } } GUI/src/main/java/cz/fidentis/analyst/gui/rndtoolbar/BackgroundAction.java 0 → 100644 +36 −0 Original line number Diff line number Diff line package cz.fidentis.analyst.gui.rndtoolbar; import cz.fidentis.analyst.gui.canvas.Canvas; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.JToggleButton; /** * Switches between bark and blight background of the scene. * * @author Radek Oslejsek */ public class BackgroundAction extends AbstractAction { private final Canvas canvas; /** * Constructor. * @param canvas OpenGL canvas */ public BackgroundAction(Canvas canvas) { this.canvas = canvas; } @Override public void actionPerformed(ActionEvent e) { JToggleButton button = (JToggleButton) e.getSource(); if (button.isSelected()) { canvas.getSceneRenderer().setBrightBackground(); } else { canvas.getSceneRenderer().setDarkBackground(); } canvas.renderScene(); } } GUI/src/main/java/cz/fidentis/analyst/gui/rndtoolbar/PointCloudRenderingAction.java 0 → 100644 +34 −0 Original line number Diff line number Diff line package cz.fidentis.analyst.gui.rndtoolbar; import com.jogamp.opengl.GL2; import cz.fidentis.analyst.gui.canvas.Canvas; import cz.fidentis.analyst.gui.scene.DrawableMesh; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; /** * Turns on the rending mode that draws triangle vertices only. * * @author Radek Oslejsek */ public class PointCloudRenderingAction extends AbstractAction { private final Canvas canvas; /** * Constructor. * @param canvas OpenGL canvas */ public PointCloudRenderingAction(Canvas canvas) { this.canvas = canvas; } @Override public void actionPerformed(ActionEvent e) { for (DrawableMesh dm: canvas.getScene().getDrawables()) { dm.setRenderMode(GL2.GL_POINT); } canvas.renderScene(); } } GUI/src/main/java/cz/fidentis/analyst/gui/rndtoolbar/ReflectionsAction.java 0 → 100644 +40 −0 Original line number Diff line number Diff line package cz.fidentis.analyst.gui.rndtoolbar; import cz.fidentis.analyst.gui.canvas.Canvas; import static cz.fidentis.analyst.gui.rndtoolbar.RenderingToolBar.REFLECTIONS_COLOR; import cz.fidentis.analyst.gui.scene.DrawableMesh; import java.awt.Color; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.JToggleButton; /** * Switches on/off surface reflections. * * @author Radek Oslejsek */ public class ReflectionsAction extends AbstractAction { private final Canvas canvas; /** * Constructor. * @param canvas OpenGL canvas */ public ReflectionsAction(Canvas canvas) { this.canvas = canvas; } @Override public void actionPerformed(ActionEvent e) { JToggleButton button = (JToggleButton) e.getSource(); for (DrawableMesh dm: canvas.getScene().getDrawables()) { if (button.isSelected()) { dm.setHighlights(REFLECTIONS_COLOR); } else { dm.setHighlights(Color.BLACK); } } canvas.renderScene(); } } GUI/src/main/java/cz/fidentis/analyst/gui/rndtoolbar/RenderingToolBar.java 0 → 100644 +137 −0 Original line number Diff line number Diff line package cz.fidentis.analyst.gui.rndtoolbar; import com.jogamp.opengl.GL2; import cz.fidentis.analyst.gui.canvas.Canvas; import cz.fidentis.analyst.gui.scene.DrawableMesh; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.net.URL; import java.util.HashMap; import java.util.Map; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPopupMenu; import javax.swing.JToggleButton; import javax.swing.JToolBar; import javax.swing.SwingConstants; import org.openide.awt.Actions; import org.openide.awt.DropDownButtonFactory; import org.openide.awt.Mnemonics; import org.openide.util.NbBundle; /** * Rendering toolbar. * * @author Radek Oslejsek */ public class RenderingToolBar extends JToolBar { public static final int WIDTH = 58; public static final Color REFLECTIONS_COLOR = Color.DARK_GRAY; public static final String RENDERING_MODE_BUTTON_ICON = "wireframe28x28.png"; public static final String BACKGROUND_BUTTON_ICON = "background28x28.png"; public static final String REFLECTIONS_BUTTON_ICON = "reflections28x28.png"; private final Canvas canvas; public RenderingToolBar(Canvas canvas) { this.canvas = canvas; initToolBar(); initBackgroundButton(); initReflectionsButton(); initRenderingModeButton(); } private void initToolBar() { setOrientation(javax.swing.SwingConstants.VERTICAL); setRollover(true); setFloatable(false); } private void initRenderingModeButton() { JPopupMenu popup = new JPopupMenu(); JMenuItem menuItem1 = new JMenuItem(new SmoothRenderingAction(canvas)); JMenuItem menuItem2 = new JMenuItem(new WireframeRenderingAction(canvas)); JMenuItem menuItem3 = new JMenuItem(new PointCloudRenderingAction(canvas)); //menuItem1.setIcon(defaultIcon); menuItem1.setText(NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.smooth.text")); menuItem2.setText(NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.wireframe.text")); menuItem3.setText(NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.pointcloud.text")); popup.add(menuItem1); popup.add(menuItem2); popup.add(menuItem3); // The button that will display the default action and the // dropdown arrow JButton button = DropDownButtonFactory.createDropDownButton( new ImageIcon(new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB)), popup); URL icon = getClass().getResource("/" + RenderingToolBar.RENDERING_MODE_BUTTON_ICON); if (icon != null) { button.setIcon(new ImageIcon(icon)); } //Mnemonics.setLocalizedText(button, NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.renderingmode.text")); button.setToolTipText(NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.renderingmode.text")); button.setFocusable(false); //button.setText(null); add(button); } private void initBackgroundButton() { JToggleButton button = new JToggleButton(); button.setAction(new BackgroundAction(canvas)); URL icon = getClass().getResource("/" + RenderingToolBar.BACKGROUND_BUTTON_ICON); if (icon != null) { button.setIcon(new ImageIcon(icon)); } //Mnemonics.setLocalizedText(button, NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.background.text")); button.setFocusable(false); // button.setText(null); button.setToolTipText(NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.background.text")); add(button); } private void initReflectionsButton() { JToggleButton button = new JToggleButton(); button.setAction(new ReflectionsAction(canvas)); URL icon = getClass().getResource("/" + RenderingToolBar.REFLECTIONS_BUTTON_ICON); if (icon != null) { button.setIcon(new ImageIcon(icon)); } //Mnemonics.setLocalizedText(button, NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.background.text")); button.setFocusable(false); // button.setText(null); button.setToolTipText(NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.reflections.text")); add(button); } /* private void reflectionsButtonClicked(MouseEvent evt) { boolean on = buttons.get(Button.REFLECTIONS).isSelected(); for (DrawableMesh dm: canvas.getScene().getDrawables()) { if (on) { dm.setHighlights(Color.BLACK); buttons.get(Button.REFLECTIONS).setSelected(false); } else { dm.setHighlights(REFLECTIONS_COLOR); buttons.get(Button.REFLECTIONS).setSelected(true); } } canvas.renderScene(); } */ } Loading
GUI/src/main/java/cz/fidentis/analyst/gui/core/RenderingToolBar.javadeleted 100644 → 0 +0 −139 Original line number Diff line number Diff line package cz.fidentis.analyst.gui.core; import com.jogamp.opengl.GL2; import cz.fidentis.analyst.gui.canvas.Canvas; import cz.fidentis.analyst.gui.scene.DrawableMesh; import java.awt.Color; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.net.URL; import java.util.HashMap; import java.util.Map; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JToolBar; import javax.swing.SwingConstants; import org.openide.awt.Mnemonics; /** * Rendering toolbar. * * @author Radek Oslejsek */ public class RenderingToolBar extends JToolBar { public static final int WIDTH = 48; public static final Color REFLECTIONS_COLOR = Color.DARK_GRAY; public enum Button { WIREFRAME, // wire-frame vs. filled triangles BACKGROUND, // light vs. dark background REFLECTIONS; // ligths producing reflections on surface @Override public String toString() { switch (this) { default: return super.toString().toLowerCase(); } } } private final Map<Button, JButton> buttons = new HashMap<>(); private final Canvas canvas; public RenderingToolBar(Canvas canvas) { this.canvas = canvas; initToolBar(); initButtons(); initEvents(); } private void initToolBar() { setOrientation(javax.swing.SwingConstants.VERTICAL); setRollover(true); setFloatable(false); } private void initButtons() { for (Button butEnum: Button.values()) { JButton button = new JButton(); URL icon = getClass().getResource("/" + butEnum + "28x28.png"); if (icon != null) { button.setIcon(new ImageIcon(icon)); } Mnemonics.setLocalizedText(button, org.openide.util.NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar." + butEnum +".text")); button.setFocusable(false); button.setText(null); button.setToolTipText(butEnum.toString()); button.setHorizontalTextPosition(SwingConstants.CENTER); button.setVerticalTextPosition(SwingConstants.BOTTOM); buttons.put(butEnum, button); add(button); } } private void initEvents() { for (Button butEnum: Button.values()) { JButton button = buttons.get(butEnum); button.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent evt) { switch (butEnum) { case WIREFRAME: wireframeButtonClicked(evt); break; case BACKGROUND: backgroundButtonClicked(evt); break; case REFLECTIONS: reflectionsButtonClicked(evt); break; } } }); } } private void wireframeButtonClicked(MouseEvent evt) { boolean on = buttons.get(Button.WIREFRAME).isSelected(); for (DrawableMesh dm: canvas.getScene().getDrawables()) { if (on) { dm.setRenderMode(GL2.GL_FILL); buttons.get(Button.WIREFRAME).setSelected(false); } else { dm.setRenderMode(GL2.GL_LINE); buttons.get(Button.WIREFRAME).setSelected(true); } } canvas.renderScene(); } private void backgroundButtonClicked(MouseEvent evt) { boolean on = buttons.get(Button.BACKGROUND).isSelected(); if (on) { canvas.getSceneRenderer().setDarkBackground(); buttons.get(Button.BACKGROUND).setSelected(false); } else { canvas.getSceneRenderer().setBrightBackground(); buttons.get(Button.BACKGROUND).setSelected(true); } canvas.renderScene(); } private void reflectionsButtonClicked(MouseEvent evt) { boolean on = buttons.get(Button.REFLECTIONS).isSelected(); for (DrawableMesh dm: canvas.getScene().getDrawables()) { if (on) { dm.setHighlights(Color.BLACK); buttons.get(Button.REFLECTIONS).setSelected(false); } else { dm.setHighlights(REFLECTIONS_COLOR); buttons.get(Button.REFLECTIONS).setSelected(true); } } canvas.renderScene(); } }
GUI/src/main/java/cz/fidentis/analyst/gui/rndtoolbar/BackgroundAction.java 0 → 100644 +36 −0 Original line number Diff line number Diff line package cz.fidentis.analyst.gui.rndtoolbar; import cz.fidentis.analyst.gui.canvas.Canvas; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.JToggleButton; /** * Switches between bark and blight background of the scene. * * @author Radek Oslejsek */ public class BackgroundAction extends AbstractAction { private final Canvas canvas; /** * Constructor. * @param canvas OpenGL canvas */ public BackgroundAction(Canvas canvas) { this.canvas = canvas; } @Override public void actionPerformed(ActionEvent e) { JToggleButton button = (JToggleButton) e.getSource(); if (button.isSelected()) { canvas.getSceneRenderer().setBrightBackground(); } else { canvas.getSceneRenderer().setDarkBackground(); } canvas.renderScene(); } }
GUI/src/main/java/cz/fidentis/analyst/gui/rndtoolbar/PointCloudRenderingAction.java 0 → 100644 +34 −0 Original line number Diff line number Diff line package cz.fidentis.analyst.gui.rndtoolbar; import com.jogamp.opengl.GL2; import cz.fidentis.analyst.gui.canvas.Canvas; import cz.fidentis.analyst.gui.scene.DrawableMesh; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; /** * Turns on the rending mode that draws triangle vertices only. * * @author Radek Oslejsek */ public class PointCloudRenderingAction extends AbstractAction { private final Canvas canvas; /** * Constructor. * @param canvas OpenGL canvas */ public PointCloudRenderingAction(Canvas canvas) { this.canvas = canvas; } @Override public void actionPerformed(ActionEvent e) { for (DrawableMesh dm: canvas.getScene().getDrawables()) { dm.setRenderMode(GL2.GL_POINT); } canvas.renderScene(); } }
GUI/src/main/java/cz/fidentis/analyst/gui/rndtoolbar/ReflectionsAction.java 0 → 100644 +40 −0 Original line number Diff line number Diff line package cz.fidentis.analyst.gui.rndtoolbar; import cz.fidentis.analyst.gui.canvas.Canvas; import static cz.fidentis.analyst.gui.rndtoolbar.RenderingToolBar.REFLECTIONS_COLOR; import cz.fidentis.analyst.gui.scene.DrawableMesh; import java.awt.Color; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.JToggleButton; /** * Switches on/off surface reflections. * * @author Radek Oslejsek */ public class ReflectionsAction extends AbstractAction { private final Canvas canvas; /** * Constructor. * @param canvas OpenGL canvas */ public ReflectionsAction(Canvas canvas) { this.canvas = canvas; } @Override public void actionPerformed(ActionEvent e) { JToggleButton button = (JToggleButton) e.getSource(); for (DrawableMesh dm: canvas.getScene().getDrawables()) { if (button.isSelected()) { dm.setHighlights(REFLECTIONS_COLOR); } else { dm.setHighlights(Color.BLACK); } } canvas.renderScene(); } }
GUI/src/main/java/cz/fidentis/analyst/gui/rndtoolbar/RenderingToolBar.java 0 → 100644 +137 −0 Original line number Diff line number Diff line package cz.fidentis.analyst.gui.rndtoolbar; import com.jogamp.opengl.GL2; import cz.fidentis.analyst.gui.canvas.Canvas; import cz.fidentis.analyst.gui.scene.DrawableMesh; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.net.URL; import java.util.HashMap; import java.util.Map; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPopupMenu; import javax.swing.JToggleButton; import javax.swing.JToolBar; import javax.swing.SwingConstants; import org.openide.awt.Actions; import org.openide.awt.DropDownButtonFactory; import org.openide.awt.Mnemonics; import org.openide.util.NbBundle; /** * Rendering toolbar. * * @author Radek Oslejsek */ public class RenderingToolBar extends JToolBar { public static final int WIDTH = 58; public static final Color REFLECTIONS_COLOR = Color.DARK_GRAY; public static final String RENDERING_MODE_BUTTON_ICON = "wireframe28x28.png"; public static final String BACKGROUND_BUTTON_ICON = "background28x28.png"; public static final String REFLECTIONS_BUTTON_ICON = "reflections28x28.png"; private final Canvas canvas; public RenderingToolBar(Canvas canvas) { this.canvas = canvas; initToolBar(); initBackgroundButton(); initReflectionsButton(); initRenderingModeButton(); } private void initToolBar() { setOrientation(javax.swing.SwingConstants.VERTICAL); setRollover(true); setFloatable(false); } private void initRenderingModeButton() { JPopupMenu popup = new JPopupMenu(); JMenuItem menuItem1 = new JMenuItem(new SmoothRenderingAction(canvas)); JMenuItem menuItem2 = new JMenuItem(new WireframeRenderingAction(canvas)); JMenuItem menuItem3 = new JMenuItem(new PointCloudRenderingAction(canvas)); //menuItem1.setIcon(defaultIcon); menuItem1.setText(NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.smooth.text")); menuItem2.setText(NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.wireframe.text")); menuItem3.setText(NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.pointcloud.text")); popup.add(menuItem1); popup.add(menuItem2); popup.add(menuItem3); // The button that will display the default action and the // dropdown arrow JButton button = DropDownButtonFactory.createDropDownButton( new ImageIcon(new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB)), popup); URL icon = getClass().getResource("/" + RenderingToolBar.RENDERING_MODE_BUTTON_ICON); if (icon != null) { button.setIcon(new ImageIcon(icon)); } //Mnemonics.setLocalizedText(button, NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.renderingmode.text")); button.setToolTipText(NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.renderingmode.text")); button.setFocusable(false); //button.setText(null); add(button); } private void initBackgroundButton() { JToggleButton button = new JToggleButton(); button.setAction(new BackgroundAction(canvas)); URL icon = getClass().getResource("/" + RenderingToolBar.BACKGROUND_BUTTON_ICON); if (icon != null) { button.setIcon(new ImageIcon(icon)); } //Mnemonics.setLocalizedText(button, NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.background.text")); button.setFocusable(false); // button.setText(null); button.setToolTipText(NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.background.text")); add(button); } private void initReflectionsButton() { JToggleButton button = new JToggleButton(); button.setAction(new ReflectionsAction(canvas)); URL icon = getClass().getResource("/" + RenderingToolBar.REFLECTIONS_BUTTON_ICON); if (icon != null) { button.setIcon(new ImageIcon(icon)); } //Mnemonics.setLocalizedText(button, NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.background.text")); button.setFocusable(false); // button.setText(null); button.setToolTipText(NbBundle.getMessage(RenderingToolBar.class, "RenderingToolBar.reflections.text")); add(button); } /* private void reflectionsButtonClicked(MouseEvent evt) { boolean on = buttons.get(Button.REFLECTIONS).isSelected(); for (DrawableMesh dm: canvas.getScene().getDrawables()) { if (on) { dm.setHighlights(Color.BLACK); buttons.get(Button.REFLECTIONS).setSelected(false); } else { dm.setHighlights(REFLECTIONS_COLOR); buttons.get(Button.REFLECTIONS).setSelected(true); } } canvas.renderScene(); } */ }