Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22285/src/net/sourceforge/bprocessor/gl/tool
Modified Files:
PencilTool.java
Log Message:
More snapping in pencil
Index: PencilTool.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/PencilTool.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** PencilTool.java 1 Sep 2005 08:33:58 -0000 1.11
--- PencilTool.java 5 Sep 2005 11:43:56 -0000 1.12
***************
*** 42,45 ****
--- 42,48 ----
protected Vertex current = null;
+ /** The align vertex */
+ protected Vertex alignVertex = null;
+
/** The edges */
***************
*** 76,79 ****
--- 79,94 ----
/**
+ * Set the align vertex
+ * @param vertex The vertex
+ */
+ protected void setAlignVertex(Vertex vertex) {
+ if (vertex != null) {
+ glv.getView().setAlignPoint(new double[]{vertex.getX(), vertex.getY(), vertex.getZ()});
+ } else {
+ glv.getView().setAlignPoint(null);
+ }
+ alignVertex = vertex;
+ }
+ /**
* Intern the surface
* @param surface The surface
***************
*** 94,97 ****
--- 109,114 ----
void onVertex(Vertex vertex) {
System.out.println(vertex);
+
+ setAlignVertex(vertex);
if (active == null) {
edges = new ArrayList();
***************
*** 101,104 ****
--- 118,122 ----
active = new Edge("E" + edgeNum++, from, to);
glv.getView().setActiveEdge(active);
+ glv.getView().setSnapVertex(to);
} else {
// The following lines of code are there to make sure
***************
*** 129,132 ****
--- 147,152 ----
from = null;
to = null;
+ setAlignVertex(null);
+ glv.getView().setSnapVertex(null);
}
}
***************
*** 139,146 ****
protected double round(double value) {
int i = (int) value;
! if (Math.abs(i - value) < 0.2) {
return Math.round(value);
} else {
! return value;
}
}
--- 159,195 ----
protected double round(double value) {
int i = (int) value;
! if (Math.abs(i - value) < 0.3) {
return Math.round(value);
} else {
! return ((double) Math.round(value * 1000)) / 1000.0;
! }
! }
!
!
! /**
! * Snaps the vertex
! * @param vertex The vertex to snap
! */
! protected void snap(Vertex vertex) {
! if (alignVertex != null) {
! if (Math.abs(alignVertex.getX() - vertex.getX()) < 0.3) {
! vertex.setX(alignVertex.getX());
! } else {
! vertex.setX(round(current.getX()));
! }
! if (Math.abs(alignVertex.getY() - vertex.getY()) < 0.3) {
! vertex.setY(alignVertex.getY());
! } else {
! vertex.setY(round(current.getY()));
! }
! if (Math.abs(alignVertex.getZ() - vertex.getZ()) < 0.3) {
! vertex.setZ(alignVertex.getZ());
! } else {
! vertex.setZ(round(current.getZ()));
! }
! } else {
! vertex.setX(round(current.getX()));
! vertex.setY(round(current.getY()));
! vertex.setZ(round(current.getZ()));
}
}
***************
*** 184,190 ****
}
if (current.getId() == null) {
! current.setX(round(current.getX()));
! current.setY(round(current.getY()));
! current.setZ(round(current.getZ()));
}
}
--- 233,238 ----
}
if (current.getId() == null) {
! snap(current);
!
}
}
***************
*** 196,199 ****
--- 244,248 ----
protected void pressed(MouseEvent e) {
super.pressed(e);
+ findVertex(e);
onVertex(current);
}
***************
*** 205,208 ****
--- 254,258 ----
super.moved(e);
findVertex(e);
+
if (to != null) {
to.setX(current.getX());
|