Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2714/src/net/sourceforge/bprocessor/gl/tool
Modified Files:
AbstractTool.java MoveTool.java
Log Message:
Index: MoveTool.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/MoveTool.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** MoveTool.java 18 Jan 2006 11:41:14 -0000 1.25
--- MoveTool.java 18 Jan 2006 11:46:50 -0000 1.26
***************
*** 87,118 ****
/**
- * Collect vertices from object
- * @param o The object
- * @param vertices The vertices
- */
- private void collect(Object o, Set vertices) {
- if (o instanceof Vertex) {
- vertices.add(o);
- } else if (o instanceof Edge) {
- Edge edge = (Edge) o;
- vertices.add(edge.getFrom());
- vertices.add(edge.getTo());
- } else if (o instanceof Surface) {
- Surface surface = (Surface) o;
- vertices.addAll(surface.getVertices());
- if (surface.getHoles() != null) {
- Iterator iter = surface.getHoles().iterator();
- while (iter.hasNext()) {
- Surface current = (Surface) iter.next();
- collect(current, vertices);
- }
- }
- } else if (o instanceof ClippingPlane) {
- ClippingPlane plane = (ClippingPlane) o;
- vertices.add(plane.origin());
- }
- }
-
- /**
* Update selection
*
--- 87,90 ----
***************
*** 148,160 ****
vertices = new HashSet();
! Iterator iter = selection.iterator();
! while (iter.hasNext()) {
! collect(iter.next(), vertices);
! }
! // There is a delay before selection has been updated with target
! // because asynch notifications are being used to update selection.
! // TODO fix it
! // Meanwhile just collect points from target.
! collect(target, vertices);
}
}
--- 120,124 ----
vertices = new HashSet();
! collect(selection, vertices);
}
}
Index: AbstractTool.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/AbstractTool.java,v
retrieving revision 1.49
retrieving revision 1.50
diff -C2 -d -r1.49 -r1.50
*** AbstractTool.java 13 Jan 2006 15:57:32 -0000 1.49
--- AbstractTool.java 18 Jan 2006 11:46:50 -0000 1.50
***************
*** 14,17 ****
--- 14,18 ----
import net.sourceforge.bprocessor.model.Surface;
import net.sourceforge.bprocessor.model.Vertex;
+ import net.sourceforge.bprocessor.gl.model.ClippingPlane;
import net.sourceforge.bprocessor.gl.view.View;
import net.sourceforge.bprocessor.gl.GLView;
***************
*** 747,749 ****
--- 748,791 ----
return;
}
+
+ /**
+ * Collect all vertices from a collection of objects
+ * @param objects Collection of objects
+ * @param vertices Set of vertices
+ */
+ protected void collect(Collection objects, Set vertices) {
+ Iterator iter = objects.iterator();
+ while (iter.hasNext()) {
+ Object current = iter.next();
+ collect(current, vertices);
+ }
+ }
+
+ /**
+ * Collect vertices from object
+ * @param o The object
+ * @param vertices The vertices
+ */
+ private void collect(Object o, Set vertices) {
+ if (o instanceof Vertex) {
+ vertices.add(o);
+ } else if (o instanceof Edge) {
+ Edge edge = (Edge) o;
+ vertices.add(edge.getFrom());
+ vertices.add(edge.getTo());
+ } else if (o instanceof Surface) {
+ Surface surface = (Surface) o;
+ vertices.addAll(surface.getVertices());
+ if (surface.getHoles() != null) {
+ Iterator iter = surface.getHoles().iterator();
+ while (iter.hasNext()) {
+ Surface current = (Surface) iter.next();
+ collect(current, vertices);
+ }
+ }
+ } else if (o instanceof ClippingPlane) {
+ ClippingPlane plane = (ClippingPlane) o;
+ vertices.add(plane.origin());
+ }
+ }
}
|