[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/tool FinalMoveTool.java, 1.1, 1.2
Status: Pre-Alpha
Brought to you by:
henryml
|
From: Michael L. <he...@us...> - 2007-05-09 08:33:27
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv10841/src/net/sourceforge/bprocessor/gl/tool Modified Files: FinalMoveTool.java Log Message: A little progress on final move Improved handling of ignored geometry in hitdetection: Cannot click through a surface Index: FinalMoveTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/FinalMoveTool.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FinalMoveTool.java 8 May 2007 13:24:04 -0000 1.1 --- FinalMoveTool.java 9 May 2007 08:33:27 -0000 1.2 *************** *** 10,15 **** --- 10,22 ---- import java.awt.Cursor; import java.awt.event.MouseEvent; + import java.util.Collection; + import java.util.LinkedList; import net.sourceforge.bprocessor.gl.GLView; + import net.sourceforge.bprocessor.gl.view.View; + import net.sourceforge.bprocessor.model.Edge; + import net.sourceforge.bprocessor.model.Geometric; + import net.sourceforge.bprocessor.model.Selection; + import net.sourceforge.bprocessor.model.Vertex; /** *************** *** 18,21 **** --- 25,32 ---- public class FinalMoveTool extends AbstractPencil { + private Collection<Geometric> geometrics; + private Collection<Vertex> vertices; + + /** * @param glv GLView *************** *** 27,30 **** --- 38,62 ---- } + private void updateFeedback() { + if (geometrics == null) { + if (!Selection.primary().isEmpty()) { + if (current != null) { + makeTarget(current); + updateConstructors(); + } + } + } else { + if (current != null) { + Edge edge = new Edge(start.vertex(), current.vertex()); + edge.setStrippled(true); + Collection feedback = new LinkedList(); + feedback.add(edge); + feedback(feedback); + makeTarget(current); + updateConstructors(); + } + } + } + /** {@inheritDoc} */ @Override *************** *** 33,42 **** } ! /** {@inheritDoc} */ @Override protected void moved(MouseEvent e) { ! // TODO Auto-generated method stub ! } --- 65,87 ---- } ! /** {@inheritDoc} */ @Override protected void moved(MouseEvent e) { ! if (geometrics == null) { ! if (Selection.primary().isEmpty()) { ! findTarget(e, View.HANDLES); ! glv.getView().makeTarget(target); ! } else { ! current = findIntersection(e); ! if (current != null) { ! current = current.copy(); ! updateFeedback(); ! } ! } ! } else { ! current = findIntersection(e); ! updateFeedback(); ! } } *************** *** 44,50 **** @Override protected void pressed(MouseEvent e) { ! // TODO Auto-generated method stub ! } } --- 89,113 ---- @Override protected void pressed(MouseEvent e) { ! if (geometrics == null) { ! geometrics = new LinkedList(); ! if (Selection.primary().isEmpty()) { ! geometrics.add((Geometric) target); ! } else { ! geometrics.addAll(Selection.primary()); ! } ! current = findIntersection(e); ! start = current.copy(); ! updateFeedback(); ! } else { ! cleanUp(); ! } } + /** + * {@inheritDoc} + */ + public void cleanUp() { + super.cleanUp(); + geometrics = null; + } } |