From a834467308680ec7fc4a82e2f5998b85784a7572 Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 29 Jun 2008 21:40:38 -0700 Subject: [PATCH 1/1] checkpoint darcs-hash:20080630044038-5007d-c95737e6e0d2a88d13dbfacfe83d397f41a3a07e.gz --- src/edu/berkeley/qfat/InteractiveMeshViewer.java | 23 +++++++++++----- src/edu/berkeley/qfat/Main.java | 1 + src/edu/berkeley/qfat/MeshViewer.java | 32 +++++++++++----------- 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/src/edu/berkeley/qfat/InteractiveMeshViewer.java b/src/edu/berkeley/qfat/InteractiveMeshViewer.java index ed23803..e024d04 100644 --- a/src/edu/berkeley/qfat/InteractiveMeshViewer.java +++ b/src/edu/berkeley/qfat/InteractiveMeshViewer.java @@ -11,27 +11,36 @@ import java.util.*; import edu.berkeley.qfat.geom.*; import edu.berkeley.qfat.geom.Point; -public class InteractiveMeshViewer extends MeshViewer { +public class InteractiveMeshViewer extends JPanel { public Mesh tile; public Mesh goal; + + private MeshViewer mv; + public InteractiveMeshViewer(JFrame f) { - super(f); + mv = new MeshViewer(); + setLayout(new BorderLayout()); + this.add(mv, BorderLayout.CENTER); setTile(new Mesh(false)); setGoal(new Mesh(false)); } + public void repaint() { + if (mv != null) mv.repaint(); + } + public void setTile(Mesh tile) { - removeMesh(this.tile); + mv.removeMesh(this.tile); this.tile = tile; - addMesh(this.tile); + mv.addMesh(this.tile); } public void setGoal(Mesh goal) { - removeMesh(this.goal); + mv.removeMesh(this.goal); this.goal = goal; goal.option_selectable = false; goal.option_wireframe = true; - addMesh(this.goal); + mv.addMesh(this.goal); } public synchronized void dump() { @@ -75,7 +84,7 @@ public class InteractiveMeshViewer extends MeshViewer { public int vertss; public void keyPressed(KeyEvent e) { - super.keyPressed(e); + //super.keyPressed(e); switch(e.getKeyCode()) { case KeyEvent.VK_SPACE: breaks++; force = true; break; case KeyEvent.VK_UP: temp = temp * 2; break; diff --git a/src/edu/berkeley/qfat/Main.java b/src/edu/berkeley/qfat/Main.java index 5dbba74..75b3f12 100644 --- a/src/edu/berkeley/qfat/Main.java +++ b/src/edu/berkeley/qfat/Main.java @@ -350,6 +350,7 @@ public class Main extends InteractiveMeshViewer { JFrame f = new JFrame(); f.setLayout(new BorderLayout()); Main main = new Main(f); + f.add(main, BorderLayout.CENTER); f.setJMenuBar(main.new MyMenuBar()); f.pack(); f.show(); diff --git a/src/edu/berkeley/qfat/MeshViewer.java b/src/edu/berkeley/qfat/MeshViewer.java index c344bca..7a9fcd5 100644 --- a/src/edu/berkeley/qfat/MeshViewer.java +++ b/src/edu/berkeley/qfat/MeshViewer.java @@ -11,26 +11,25 @@ import java.util.*; import edu.berkeley.qfat.geom.*; import edu.berkeley.qfat.geom.Point; -public class MeshViewer implements GLEventListener, MouseListener, MouseMotionListener, KeyListener, MouseWheelListener { +public class MeshViewer extends JPanel implements GLEventListener, MouseListener, MouseMotionListener, KeyListener, MouseWheelListener { - Mesh.Vertex closest = null; + private float tz = 0; + private float anglex = 0; + private float angley = 0; - private int mousex; - private int mousey; - private Matrix projection = null; - private Point clickPoint = null; - private GLCanvas glcanvas; - private boolean updateVisibilities = false; + private Mesh.Vertex closest = null; + private int mousex; + private int mousey; + private Matrix projection = null; + private Point clickPoint = null; + private GLCanvas glcanvas; + private boolean updateVisibilities = false; private HashSet meshes = new HashSet(); public synchronized void addMesh(Mesh m) { meshes.add(m); } public synchronized void removeMesh(Mesh m) { meshes.remove(m); } - float tz = 0; - float anglex = 0; - float angley = 0; - public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) { } public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) { } @@ -72,7 +71,7 @@ public class MeshViewer implements GLEventListener, MouseListener, MouseMotionLi } public synchronized final void display(GLAutoDrawable drawable) { - glcanvas.setSize(glcanvas.getParent().getWidth(), glcanvas.getParent().getHeight() - 100); + glcanvas.setSize(glcanvas.getParent().getWidth(), glcanvas.getParent().getHeight()); GL gl = glcanvas.getGL();//drawable.getGL(); GLU glu = new GLU(); @@ -221,10 +220,11 @@ public class MeshViewer implements GLEventListener, MouseListener, MouseMotionLi mousey = e.getY(); } - public MeshViewer(JFrame f) { + public MeshViewer() { glcanvas = new GLCanvas(); glcanvas.addGLEventListener(this); - f.add(glcanvas, BorderLayout.CENTER); + setLayout(new BorderLayout()); + this.add(glcanvas, BorderLayout.CENTER); glcanvas.addMouseListener(this); glcanvas.addMouseMotionListener(this); glcanvas.addMouseWheelListener(this); @@ -232,7 +232,7 @@ public class MeshViewer implements GLEventListener, MouseListener, MouseMotionLi } public void repaint() { - glcanvas.repaint(); + if (glcanvas != null) glcanvas.repaint(); } } \ No newline at end of file -- 1.7.10.4