Update of /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv28626/src/net/sourceforge/bprocessor/gui
Modified Files:
PopupMenu.java
Log Message:
refactored code to the camera
Index: PopupMenu.java
===================================================================
RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/PopupMenu.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** PopupMenu.java 15 Nov 2006 10:28:18 -0000 1.18
--- PopupMenu.java 29 Dec 2006 13:32:57 -0000 1.19
***************
*** 65,69 ****
public static JPopupMenu getSurfaceMenu(Collection c) {
JPopupMenu jm = getEntiesMenu(c);
-
if (c.size() == 1) {
Surface s = (Surface)c.iterator().next();
--- 65,68 ----
***************
*** 71,103 ****
public void actionPerformed(ActionEvent arg0) {
Surface s = (Surface)entity;
! Vertex n = (s.normal());
! Camera current = Project.getInstance().getCurrentCamera();
! Vertex cen = s.center();
! double[] center = current.getCenter();
! double[] cam = current.getCamera();
! double[] dir = new double[]{cam[0] - center[0], cam[1] - center[1], cam[2] - center[2]};
! Vertex r = new Vertex(dir);
! n = r.projectOnto(n);
! Iterator iter = s.getEdges().iterator();
! Vertex roll = new Vertex(current.getRoll());
! Vertex newroll = null;
! double angle = 2 * 3.14;
! while (iter.hasNext()) {
! Edge e = (Edge)iter.next();
! Vertex d = e.getDirection();
! double tmp = d.angle(roll);
! if (tmp < angle) {
! angle = tmp;
! newroll = d;
! }
! }
! newroll.normalize();
! current.setRoll(new double[]{newroll.getX(), newroll.getY(), newroll.getZ()});
! current.setCenter(new double[]{cen.getX(), cen.getY(), cen.getZ()});
! current.setCamera(new double[]{cen.getX() + n.getX(),
! cen.getY() + n.getY(), cen.getZ() + n.getZ()});
! Collection c = new LinkedList();
! c.add(s);
! Project.getInstance().getCurrentCamera().zoomOn(c, 1.0);
}
};
--- 70,74 ----
public void actionPerformed(ActionEvent arg0) {
Surface s = (Surface)entity;
! Camera.focusOn(Project.getInstance().getCurrentCamera(), s);
}
};
|