fenfire-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ff-cvs] fenfire/org/fenfire demo/mm.py fenmm/MMGeometry...


From: Asko Soukka
Subject: [ff-cvs] fenfire/org/fenfire demo/mm.py fenmm/MMGeometry...
Date: Mon, 25 Aug 2003 04:40:28 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Asko Soukka <address@hidden>    03/08/25 04:40:28

Modified files:
        org/fenfire/demo: mm.py 
        org/fenfire/fenmm: MMGeometry.java 
        org/fenfire/view/lava: mindMapView2D.py 

Log message:
        great interpolation update

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/mm.py.diff?tr1=1.35&tr2=1.36&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenmm/MMGeometry.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/mindMapView2D.py.diff?tr1=1.38&tr2=1.39&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/demo/mm.py
diff -u fenfire/org/fenfire/demo/mm.py:1.35 fenfire/org/fenfire/demo/mm.py:1.36
--- fenfire/org/fenfire/demo/mm.py:1.35 Mon Aug 25 03:27:51 2003
+++ fenfire/org/fenfire/demo/mm.py      Mon Aug 25 04:40:27 2003
@@ -271,6 +271,7 @@
     def pressed(self, x,y):
         return self
     def changedRelative(self, x):
+        x = x / 2.
         main = self.context.main
         f = main.getFocus()
         fX, fY = f.getPanX(), f.getPanY()
@@ -388,7 +389,7 @@
         # draw cursor
         if accursed:
             nodeview = ff.view.TextNodeView(fen.txtfunc, style)
-            if structLink.isLinked(accursed):
+            if structLink.isLinked(accursed) or self.context.home == accursed:
                 if hasattr(self.view, "zoomPanCS"):
                     self.context.c.render(vs, cs, self.view.zoomPanCS, 
nodeview.f(fen.graph, accursed))
                 else: self.context.c.render(vs, cs, nodeview.f(fen.graph, 
accursed))
Index: fenfire/org/fenfire/fenmm/MMGeometry.java
diff -u fenfire/org/fenfire/fenmm/MMGeometry.java:1.1 
fenfire/org/fenfire/fenmm/MMGeometry.java:1.2
--- fenfire/org/fenfire/fenmm/MMGeometry.java:1.1       Mon Aug 25 03:27:51 2003
+++ fenfire/org/fenfire/fenmm/MMGeometry.java   Mon Aug 25 04:40:27 2003
@@ -15,19 +15,24 @@
     public static final String rcsid = "$Id:";
     private final static int INITIAL_CAPACITY = 10;
 
-    public static double getScale(int depth) { return 
1-(Math.log(depth+1)/Math.E); }
+    public static double getScale(int depth) { return 
1-(Math.log((depth+1))/Math.E); }
     public static double getTextScale(int depth) { return 
1-(Math.log(depth+1)/Math.E)/2; }
 
-    private static ConstGraph g;
-    private static int maxDepth;
-    private static float filletLength;
-    private static float filletWidth;
-    private static float initRotation;
+    private ConstGraph g;
+    private int maxDepth;
+    private float filletLength;
+    private float filletWidth;
+    private float initRotation;
 
     public MMGeometry(ConstGraph g,
                      float filletLength, float filletWidth,
                      float initRotation, int maxDepth) {
        this.g = g;
+       init(filletLength, filletWidth, initRotation, maxDepth);
+    }
+
+    public void init(float filletLength, float filletWidth,
+                    float initRotation, int maxDepth) {
        this.maxDepth = maxDepth;
        this.filletLength = filletLength;
        this.filletWidth = filletWidth;
@@ -90,19 +95,18 @@
         if (links.size() < 1) net.link(node, node); // XXX probably not the 
right way
        else {
            curStartAngle = getStartAngle(path);
-           curRotationAngle = 2f*Math.PI / links.size();
+           // curRotationAngle = (2f*Math.PI) / links.size();
             for (int i=2; i<maxDepth+1; i++)
                 buildDepth(vs, cs, net, node, null, links, 0, 0,
                           curStartAngle + initRotation,
                           curRotationAngle, 1, i);
        }
-       curCenter = node;
+       // curCenter = node;
        return net;
     }
 
     private double getStartAngle(List path) {
        Iterator i = path.iterator();
-       double startAngle = 0;
        while (i.hasNext()) {
            Object node = i.next();
            if (curCenter != node) {
@@ -121,13 +125,15 @@
                curIndex = links.indexOf(prevCenter);
            }
            
-           double rotationAngle = 2*Math.PI / links.size();
+           curRotationAngle = (2f*Math.PI) / links.size();
 
            // Calculates the "correct" starting angle
            if (prevIndex >= 0 && curIndex >= 0)
-               startAngle = prevStartAngle + prevRotationAngle*prevIndex 
-Math.PI
-                   + rotationAngle*(links.size() - curIndex);
-       } return startAngle;
+               curStartAngle = prevStartAngle + prevRotationAngle*prevIndex 
-Math.PI
+                   + curRotationAngle*(links.size() - curIndex);
+           else curRotationAngle = 0;
+           curCenter = node;
+       } return curStartAngle;
    }
 
    /**
@@ -163,15 +169,15 @@
           
           MMPlace pl = net.getPlace(link);
           List nextLinks = getLinkedNodes(g, link);
-          double nextAngle = Math.PI*2f/nextLinks.size();
+          double nextAngle = (2f*Math.PI)/nextLinks.size();
            int index = nextLinks.indexOf(centerNode);
 
           double nextStartAngle;
-          if (index >= 0) nextStartAngle = (startAngle+rotationAngle*i-Math.PI)
-                                 + nextAngle*(float)(nextLinks.size()-index);
+          if (index >= 0) nextStartAngle = startAngle+rotationAngle*i -Math.PI
+                                 + nextAngle*(nextLinks.size()-index);
           else nextStartAngle = 0;
             
-          buildDepth(vs, into, net, link, centerNode, nextLinks, pl.x, pl.x,
+          buildDepth(vs, into, net, link, centerNode, nextLinks, pl.x, pl.y,
                      nextStartAngle, nextAngle, beginDepth + 1, endDepth);
        }
    }
Index: fenfire/org/fenfire/view/lava/mindMapView2D.py
diff -u fenfire/org/fenfire/view/lava/mindMapView2D.py:1.38 
fenfire/org/fenfire/view/lava/mindMapView2D.py:1.39
--- fenfire/org/fenfire/view/lava/mindMapView2D.py:1.38 Mon Aug 25 03:27:51 2003
+++ fenfire/org/fenfire/view/lava/mindMapView2D.py      Mon Aug 25 04:40:28 2003
@@ -126,6 +126,9 @@
         self.filletLength = 150
         self.initRotation = 0
         
+        self.geometry = MMGeometry(self.fen.graph, self.filletLength, 
self.filletWidth,
+                                   self.initRotation, self.depth)
+
         # fillet set up
         self.angle = 1
         self.thick = 1
@@ -170,9 +173,9 @@
             path = java.util.ArrayList(1)
             path.add(node)
          
-        geometry = MMGeometry(self.fen.graph, self.filletLength, 
self.filletWidth,
-                              self.initRotation, self.depth)
-        self.net = geometry.buildMindNet(vs, paper2screen, path)
+        self.geometry.init(self.filletLength, self.filletWidth,
+                           self.initRotation, self.depth)
+        self.net = self.geometry.buildMindNet(vs, paper2screen, path)
         self.drawMindMap(vs)
         self.oldCenter = node
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]