Thread: [Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/tool AbstractTool.java, 1.85, 1.86 Abstrac
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2006-07-20 11:08:44
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv11126/src/net/sourceforge/bprocessor/gl/tool Modified Files: AbstractTool.java AbstractPencil.java Log Message: Fixed bug in AbstractPencil with shift-locking direction Index: AbstractPencil.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/AbstractPencil.java,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** AbstractPencil.java 20 Jul 2006 08:41:59 -0000 1.44 --- AbstractPencil.java 20 Jul 2006 11:08:39 -0000 1.45 *************** *** 106,109 **** --- 106,111 ---- */ protected Intersection findIntersection(MouseEvent e) { + boolean constrain = lock || e.isShiftDown(); + if (start != null) { Vertex planeNormal = plane.normal(); *************** *** 114,118 **** --- 116,126 ---- planeNormal.getY() * start.vertex().getY() + planeNormal.getZ() * start.vertex().getZ())); + if (!constrain) { + locked = start.vertex().minus(current.vertex()); + locked.normalize(); + } } + + Collection unwanted = new HashSet(); unwanted.addAll(elements); *************** *** 121,125 **** (Intersection) glv.getView().getObjectAtPoint(e.getX(), e.getY(), unwanted, true, plane); ! if (lock) { intersection = lockedIntersection(intersection); } --- 129,133 ---- (Intersection) glv.getView().getObjectAtPoint(e.getX(), e.getY(), unwanted, true, plane); ! if (constrain) { intersection = lockedIntersection(intersection); } *************** *** 134,142 **** private Intersection lockedIntersection(Intersection intersection) { if (start != null) { ! Vertex lockedcopy = locked.copy(); Vertex unlocked = intersection.vertex().minus(start.vertex()); ! lockedcopy.scale(locked.dot(unlocked) / locked.length()); ! lockedcopy = lockedcopy.add(start.vertex()); ! return new Intersection(lockedcopy, intersection.type(), intersection.object()); } else { return intersection; --- 142,150 ---- private Intersection lockedIntersection(Intersection intersection) { if (start != null) { ! Vertex direction = locked.copy(); Vertex unlocked = intersection.vertex().minus(start.vertex()); ! direction.scale(locked.dot(unlocked)); ! Vertex vertex = start.vertex().add(direction); ! return new Intersection(vertex, intersection.type(), intersection.object()); } else { return intersection; *************** *** 728,743 **** number = ""; } ! if (e.getKeyCode() == KeyEvent.VK_SHIFT) { ! if (start != null && current != null) { ! locked = start.vertex().minus(current.vertex()); ! locked.scale(1 / locked.length()); ! lock = true; ! } ! } else if (e.getKeyCode() == KeyEvent.VK_CAPS_LOCK) { ! if (start != null && current != null) { ! locked = start.vertex().minus(current.vertex()); ! locked.scale(1 / locked.length()); ! } ! lock = !lock; } else if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { cleanUp(); --- 736,741 ---- number = ""; } ! if (e.getKeyCode() == KeyEvent.VK_CAPS_LOCK) { ! lock = true; } else if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { cleanUp(); *************** *** 804,808 **** public void keyReleased(KeyEvent e) { super.keyReleased(e); ! if (e.getKeyCode() == KeyEvent.VK_SHIFT) { lock = false; } --- 802,806 ---- public void keyReleased(KeyEvent e) { super.keyReleased(e); ! if (e.getKeyCode() == KeyEvent.VK_CAPS_LOCK) { lock = false; } *************** *** 819,822 **** --- 817,821 ---- hooverEdge = null; lock = false; + locked = null; constructors(new LinkedList()); feedback(new LinkedList()); Index: AbstractTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/AbstractTool.java,v retrieving revision 1.85 retrieving revision 1.86 diff -C2 -d -r1.85 -r1.86 *** AbstractTool.java 9 Jul 2006 16:22:19 -0000 1.85 --- AbstractTool.java 20 Jul 2006 11:08:39 -0000 1.86 *************** *** 209,212 **** --- 209,213 ---- */ public void keyPressed(KeyEvent e) { + Camera c = Project.getInstance().getCurrentCamera(); Vertex up = new Vertex(c.getRoll()[0], c.getRoll()[1], c.getRoll()[2]); *************** *** 245,288 **** } ! if ((e.getModifiersEx() & KeyEvent.SHIFT_DOWN_MASK) == KeyEvent.SHIFT_DOWN_MASK) { ! // IF SHIFT IS PRESSED AS MODIFIER ! if (e.getKeyCode() == KeyEvent.VK_W) { ! glv.changeTool(Tool.WALK_TOOL); ! } else if (e.getKeyCode() == KeyEvent.VK_F) { ! glv.changeTool(Tool.FLY_TOOL); ! } ! } else { ! if (e.getModifiers() == 0) { ! if (e.getKeyCode() == KeyEvent.VK_UP) { ! c.translate(new double[] {up.getX(), up.getY(), up.getZ()}); ! } else if (e.getKeyCode() == KeyEvent.VK_DOWN) { ! c.translate(new double[] {-up.getX(), -up.getY(), -up.getZ()}); ! } else if (e.getKeyCode() == KeyEvent.VK_LEFT) { ! c.translate(new double[] {sidewards.getX(), sidewards.getY(), sidewards.getZ()}); ! } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) { ! c.translate(new double[] {-sidewards.getX(), -sidewards.getY(), -sidewards.getZ()}); ! } else if (e.getKeyCode() == KeyEvent.VK_Z) { ! c.zoomout(); ! } else if (e.getKeyCode() == KeyEvent.VK_X) { ! c.zoomin(); ! } else if (e.getKeyCode() == KeyEvent.VK_Q) { ! glv.changeTool(Tool.SELECT_TOOL); ! } else if (e.getKeyCode() == KeyEvent.VK_W) { ! glv.changeTool(Tool.PENCIL_TOOL); ! } else if (e.getKeyCode() == KeyEvent.VK_M) { ! glv.changeTool(Tool.MOVE_TOOL); ! } else if (e.getKeyCode() == KeyEvent.VK_R) { ! glv.changeTool(Tool.CAMERA_TOOL); ! } else if (e.getKeyCode() == KeyEvent.VK_E) { ! glv.changeTool(Tool.EXTRUSION_TOOL); ! } else if (e.getKeyCode() == KeyEvent.VK_F5) { ! glv.getView().changeDrawMode(View.WIREFRAME_MODE); ! } else if (e.getKeyCode() == KeyEvent.VK_F6) { ! glv.getView().changeDrawMode(View.SOLID_MODE); ! } else if (e.getKeyCode() == KeyEvent.VK_F7) { ! glv.getView().changeDrawMode(View.LIGHTING_MODE); ! } else { ! key(e); ! } } } --- 246,280 ---- } ! if (e.getModifiers() == 0) { ! if (e.getKeyCode() == KeyEvent.VK_UP) { ! c.translate(new double[] {up.getX(), up.getY(), up.getZ()}); ! } else if (e.getKeyCode() == KeyEvent.VK_DOWN) { ! c.translate(new double[] {-up.getX(), -up.getY(), -up.getZ()}); ! } else if (e.getKeyCode() == KeyEvent.VK_LEFT) { ! c.translate(new double[] {sidewards.getX(), sidewards.getY(), sidewards.getZ()}); ! } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) { ! c.translate(new double[] {-sidewards.getX(), -sidewards.getY(), -sidewards.getZ()}); ! } else if (e.getKeyCode() == KeyEvent.VK_Z) { ! c.zoomout(); ! } else if (e.getKeyCode() == KeyEvent.VK_X) { ! c.zoomin(); ! } else if (e.getKeyCode() == KeyEvent.VK_Q) { ! glv.changeTool(Tool.SELECT_TOOL); ! } else if (e.getKeyCode() == KeyEvent.VK_W) { ! glv.changeTool(Tool.PENCIL_TOOL); ! } else if (e.getKeyCode() == KeyEvent.VK_M) { ! glv.changeTool(Tool.MOVE_TOOL); ! } else if (e.getKeyCode() == KeyEvent.VK_R) { ! glv.changeTool(Tool.CAMERA_TOOL); ! } else if (e.getKeyCode() == KeyEvent.VK_E) { ! glv.changeTool(Tool.EXTRUSION_TOOL); ! } else if (e.getKeyCode() == KeyEvent.VK_F5) { ! glv.getView().changeDrawMode(View.WIREFRAME_MODE); ! } else if (e.getKeyCode() == KeyEvent.VK_F6) { ! glv.getView().changeDrawMode(View.SOLID_MODE); ! } else if (e.getKeyCode() == KeyEvent.VK_F7) { ! glv.getView().changeDrawMode(View.LIGHTING_MODE); ! } else { ! key(e); } } |