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;
+ }
}
|