[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/tool MoveTool.java, 1.64, 1.65 VectorMoveT
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2006-08-14 08:42:08
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv10394/src/net/sourceforge/bprocessor/gl/tool Modified Files: VectorMoveTool.java ControlledMoveTool.java Added Files: MoveTool.java Removed Files: AlternateMoveTool.java Log Message: Renamed refactored move-tool Index: ControlledMoveTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/ControlledMoveTool.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ControlledMoveTool.java 4 Aug 2006 11:48:11 -0000 1.1 --- ControlledMoveTool.java 14 Aug 2006 08:41:57 -0000 1.2 *************** *** 26,30 **** * ControlledMoveTool */ ! public class ControlledMoveTool extends AlternateMoveTool { /** Slidemap */ private Map slideMap; --- 26,30 ---- * ControlledMoveTool */ ! public class ControlledMoveTool extends MoveTool { /** Slidemap */ private Map slideMap; --- NEW FILE: MoveTool.java --- //--------------------------------------------------------------------------------- // $Id: MoveTool.java,v 1.65 2006/08/14 08:41:57 henryml Exp $ // // Copyright (c) 2005 The BProcessor Team (http://bprocessor.sourceforge.net) // Released under the Lesser GNU Public License v2.1 //--------------------------------------------------------------------------------- package net.sourceforge.bprocessor.gl.tool; import java.awt.Cursor; import java.awt.event.MouseEvent; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.Set; import net.sourceforge.bprocessor.gl.GLView; import net.sourceforge.bprocessor.gl.model.Intersection; import net.sourceforge.bprocessor.gl.view.View; import net.sourceforge.bprocessor.model.ClippingPlane; import net.sourceforge.bprocessor.model.Constructor; import net.sourceforge.bprocessor.model.Edge; import net.sourceforge.bprocessor.model.Geometric; import net.sourceforge.bprocessor.model.Project; import net.sourceforge.bprocessor.model.Surface; import net.sourceforge.bprocessor.model.Vertex; /** * Move Tool */ public class MoveTool extends AbstractPencil { /** Entities */ protected Set entities = new HashSet(); /** Vertices */ protected Collection vertices; /** Affected */ private Set affected = new HashSet(); /** From */ private Vertex from; /** Last */ private Vertex last; /** To */ private Vertex to; /** active */ private boolean active; /** dragging flag */ private boolean dragging = false; /** * Constructor for MoveTool * @param glv The GLView * @param cursor The Cursor */ public MoveTool(GLView glv, Cursor cursor) { super(glv, cursor); } /** * Move the vertices * @param objects Collection of geometric objects * @param delta Vertex (vector) */ public void move(Collection objects, Vertex delta) { } /** * Updating after a move. */ protected void update() { Iterator iter = entities.iterator(); while (iter.hasNext()) { Object o = iter.next(); if (o instanceof ClippingPlane) { ClippingPlane plane = (ClippingPlane) o; plane.update(); } } if (vertices != null) { Project.getInstance().changed(vertices); } } /** * Update feedback */ protected void updateFeedback() { if (start == null) { if (!selection.isEmpty()) { if (current != null) { makeTarget(current); updateConstructors(); } } } else { if (current != null) { Edge edge = new Edge(from, to); edge.setStrippled(true); Collection feedback = new LinkedList(); feedback.add(edge); feedback(feedback); makeTarget(current); updateConstructors(); } } } /** * @param e MouseEvent * @return Success */ protected boolean prepare(MouseEvent e) { return true; } /** * @see net.sourceforge.bprocessor.gl.tool.AbstractTool#moved() */ protected void moved(MouseEvent e) { if (start == null) { if (selection.isEmpty()) { findTarget(e, View.HANDLES); glv.getView().makeTarget(target); } else { current = findIntersection(e); if (current != null) { current = current.copy(); updateFeedback(); } } } else { if (!active) { active = prepare(e); if (active) { excluded(affected); } } if (active) { current = findIntersection(e); if (current != null) { current = current.copy(); to = current.vertex(); move(vertices, to.minus(last)); update(); last = to; updateFeedback(); } } } } /** * @see net.sourceforge.bprocessor.gl.tool.AbstractTool#pressed() */ protected void pressed(MouseEvent e) { if (start == null) { if (selection.isEmpty()) { if (target != null) { entities = new HashSet(); entities.add(target); if (((Geometric) target).parent() instanceof Constructor) { Constructor constructor = (Constructor) ((Geometric) target).parent(); from = constructor.getOrigin(); last = ((Vertex) target).copy(); current = new Intersection(from, Intersection.VERTEX, from); } else { current = findIntersection(e).copy(); from = current.vertex(); last = from; } } } else { entities = new HashSet(); entities.addAll(selection); current = findIntersection(e).copy(); from = current.vertex(); last = from; } if (!entities.isEmpty()) { start = current; to = last; updateFeedback(); affected = getAffected(entities); vertices = collect(entities); } } else { Collection surfaces = Edge.surfaces(Vertex.edges(vertices)); Iterator iter = surfaces.iterator(); while (iter.hasNext()) { Surface current = (Surface) iter.next(); holeAnalysis(current); } Project.getInstance().checkpoint(); cleanUp(); moved(e); } } /** * @see net.sourceforge.bprocessor.gl.tool.AbstractTool#dragged() */ protected void dragged(MouseEvent e) { if (!dragging) { dragging = true; } moved(e); } /** * @see net.sourceforge.bprocessor.gl.tool.AbstractTool#released() */ protected void released(MouseEvent e) { if (dragging) { dragging = false; pressed(e); } } /** * @see net.sourceforge.bprocessor.gl.tool.AbstractPencil#cleanUp() */ public void cleanUp() { entities = new HashSet(); affected = new HashSet(); from = null; to = null; last = null; active = false; dragging = false; excluded(new LinkedList()); super.cleanUp(); } } Index: VectorMoveTool.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/VectorMoveTool.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** VectorMoveTool.java 4 Aug 2006 11:48:11 -0000 1.1 --- VectorMoveTool.java 14 Aug 2006 08:41:57 -0000 1.2 *************** *** 20,24 **** * VectorMoveTool */ ! public class VectorMoveTool extends AlternateMoveTool { /** --- 20,24 ---- * VectorMoveTool */ ! public class VectorMoveTool extends MoveTool { /** --- AlternateMoveTool.java DELETED --- |