Author: tfmorris
Date: 2008-11-21 14:28:14-0800
New Revision: 16121

Modified:
   trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/PathItemPlacement.java

Log:
Decrease scale factor to make repositioning smoother and more accurate

Modified: 
trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/PathItemPlacement.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/PathItemPlacement.java?view=diff&rev=16121&p1=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/PathItemPlacement.java&p2=trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/PathItemPlacement.java&r1=16120&r2=16121
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/PathItemPlacement.java 
(original)
+++ trunk/src/argouml-app/src/org/argouml/uml/diagram/ui/PathItemPlacement.java 
2008-11-21 14:28:14-0800
@@ -253,6 +253,7 @@
 
         // Check for a collision between our computed position and the edge
         if (useCollisionCheck) {
+            double scaleFactor = 1.2; // increase offset by 20% at a time
 
             // TODO: The size of text figs, which is what we care about most,
             // isn't computed correctly by GEF. If we got ambitious, we could
@@ -265,8 +266,8 @@
             Point[] points = fp.getPoints();
             if (intersects(points, result, size)) {
 
-                // increase offset by 50% at a time until we're clear
-                int scaledOffset = vectorOffset;
+                // increase offset by 20% at a time until we're clear
+                int scaledOffset = (int) (vectorOffset * scaleFactor);
                 // If offset is zero, use a default based on the size of the 
fig
                 if (scaledOffset == 0) {
                     scaledOffset = (size.width + size.height) / 4;
@@ -277,8 +278,7 @@
                 // limit our retries in case its too hard to get free
                 while (intersects(points, result, size) && count++ < limit) {
                     applyOffset(slope, scaledOffset, result);
-                    // Add double our offset every try
-                    scaledOffset *= 2;
+                    scaledOffset *= scaleFactor;
                 }
                 // If we timed out, give it one more try on the other side
                 if (false /* count >= limit */) {
@@ -293,6 +293,7 @@
                     while (intersects(points, result, size) 
                             && count++ < limit) {
                         applyOffset(slope, scaledOffset, result);
+                        scaledOffset *= scaleFactor;
                     }
                 }
 //                LOG.debug("Final point #" + count + " " + result

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to