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 view/lava/mindMa...


From: Asko Soukka
Subject: [ff-cvs] fenfire/org/fenfire demo/mm.py view/lava/mindMa...
Date: Fri, 15 Aug 2003 15:05:59 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Asko Soukka <address@hidden>    03/08/15 15:05:59

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

Log message:
        geometry update

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/mm.py.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/mindMapView2D.py.diff?tr1=1.19&tr2=1.20&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/demo/mm.py
diff -u fenfire/org/fenfire/demo/mm.py:1.16 fenfire/org/fenfire/demo/mm.py:1.17
--- fenfire/org/fenfire/demo/mm.py:1.16 Fri Aug 15 11:00:07 2003
+++ fenfire/org/fenfire/demo/mm.py      Fri Aug 15 15:05:59 2003
@@ -189,9 +189,10 @@
             vs.coords.transformPoints3(cs, [0,0,0], into)
 
             # scaling
-            nodeScale = (100+into[2])+2
-            if mindView.maxDepth > 20: nodeScale *= 20./mindView.maxDepth
-            nodeScale = 1-math.log10(nodeScale/2.)
+            nodeScale = (100+into[2])+4
+            if mindView.maxDepth > 40: nodeScale *= 40./mindView.maxDepth
+            nodeScale = 1-math.log10(nodeScale/4.)
+            nodeview.setScale(1)
 
             if node == self.context.main.getPlane():
                 self.context.scale = self.context.main.getFocus().getZoom()
@@ -218,11 +219,11 @@
             else:
                 fen.graph.add(self.context.main.getPlane(), 
STRUCTLINK.linkedTo, node)
         elif rmb == 'unlink':
-            if node == self.context.main.getPlane():
-                pass
+            if node == self.context.main.getPlane():  pass
             else:
-                if ff.util.RDFUtil.isLinkedWith(fen.graph, node, 
self.context.main.getPlane()):
-                    self.context.rmLinkTo(node, self.context.main.getPlane())
+#               if ff.util.RDFUtil.isLinkedWith(fen.graph, node, 
self.context.main.getPlane()) \
+#                      or ff.util.RDFUtil.isLinkedWith(fen.graph, 
self.context.main.getPlane(), node):
+                self.context.rmLinkTo(node, self.context.main.getPlane())
         self.context.fastMouseChg = 0
 
 
Index: fenfire/org/fenfire/view/lava/mindMapView2D.py
diff -u fenfire/org/fenfire/view/lava/mindMapView2D.py:1.19 
fenfire/org/fenfire/view/lava/mindMapView2D.py:1.20
--- fenfire/org/fenfire/view/lava/mindMapView2D.py:1.19 Fri Aug 15 11:00:07 2003
+++ fenfire/org/fenfire/view/lava/mindMapView2D.py      Fri Aug 15 15:05:59 2003
@@ -5,16 +5,12 @@
 from java.lang import Math
 
 import vob
-#import vob.putil.misc
 import org.fenfire as ff
 import org.fenfire.vocab.STRUCTLINK as LINK
 from org.fenfire.vocab import *
 from org.fenfire.vocab.lava import MINDSTRUCT as MIND
 from org.fenfire.swamp import Nodes
 
-# coloredquad
-from vob.putil.misc import *
-
 def p(*s):
     print 'mindMapView2D', s
 
@@ -156,7 +152,7 @@
     def getNodeSize(self, depth):
         """Node size is relative to depth as 1-math.log10(depth)."""
         assert depth <= self.maxDepth, 'Depth is greater than maxDepth.'
-        if depth < 1: depth = 1
+        if depth < 1: depth = 1 # same size for center and the first depth
         if self.maxDepth > 10: depth = depth * (10/self.maxDepth)
 
         s =(self.box[1] * 1./self.nodeScale) * (1-math.log10(depth))
@@ -228,7 +224,9 @@
                              + rotationAngle*float(len(links)-currentIndex)
             else: startAngle = 0
 
-            self.doMindMapCS(vs, paper2screen, node, links, 0,0, startAngle + 
self.rotation, rotationAngle, 1)
+            for i in range(2, self.maxDepth+1):
+                self.doMindMapCS(vs, paper2screen, node, None, links, 0,0,
+                                 startAngle + self.rotation, rotationAngle, 1, 
i)
             self.current['startAngle'] = startAngle
             self.current['rotationAngle'] = rotationAngle
         self.drawMindMap(vs)
@@ -276,25 +274,26 @@
         if dbg: p('linked nodes: ', nodes)
         return nodes
 
-    def doMindMapCS(self, vs, into, centerNode, links, x, y, startAngle, 
rotationAngle, depth):
+    def doMindMapCS(self, vs, into, centerNode, oldCenter, links, x, y,
+                    startAngle, rotationAngle, depth, maxDepth):
         """ Recursively go through all cs """
-
         fen = self.fen
 
-        for i in range(len(links)):
-            link = links[i]
-            if link == centerNode: raise 'own node!!'
-            if self.net.hasBeenLinked(centerNode, link): continue
-            self.net.link(centerNode, link)
+        if depth < maxDepth:
+            for i in range(len(links)):
+                link = links[i]
+                if link == centerNode: raise 'own node!!'
+                if self.net.hasBeenLinked(centerNode, link): continue
+                self.net.link(centerNode, link)
             
-            if self.nodes.get(link) == None:
-                pl = self.getPlace(vs, into, x, y, link, 
startAngle+rotationAngle*i, depth)
-                if dbg: p('new node', pl)
-                self.nodes.put(link, pl)
-                self.doLink.put(link, '1')
-            else:
-                pl = self.nodes.get(link)
-                if dbg: p('old node', pl)
+                if self.nodes.get(link) == None:
+                    pl = self.getPlace(vs, into, x, y, link, 
startAngle+rotationAngle*i, depth)
+                    if dbg: p('new node', pl)
+                    self.nodes.put(link, pl)
+                    self.doLink.put(link, '1')
+                else:
+                    pl = self.nodes.get(link)
+                    if dbg: p('old node', pl)
 
         # debugging..
         if dbg:
@@ -302,11 +301,13 @@
             for link in links:
                 p('    ',self.alphContent.getText(link),self.nodes.get(link))
 
-        if depth >= self.maxDepth: return
+        if depth >= maxDepth: return
         for i in range(len(links)):
             link = links[i]
-            if self.doLink.get(link) != None:
-                self.doLink.put(link, None)
+            if link == oldCenter: continue
+            if 1: # Ask mudyc about this, how this will affect
+#            if self.doLink.get(link) != None:
+#               self.doLink.put(link, None)
                 place = self.nodes.get(link)
                 newLinks = self.getLinks(fen, link)
                 newAngle = Math.PI*2./float(len(newLinks))
@@ -319,8 +320,8 @@
                                     + newAngle*float(len(newLinks)-fromIndex)
                 else: newStartAngle = 0
                 
-                self.doMindMapCS(vs, into, link, newLinks, place[1], place[2],
-                                 newStartAngle, newAngle, depth + 1)
+                self.doMindMapCS(vs, into, link, centerNode, newLinks, 
place[1], place[2],
+                                 newStartAngle, newAngle, depth + 1, maxDepth)
             
     def getPlace(self, vs, into, x0,y0, key, angle, depth):
         xy = self.getXY(x0,y0, angle, depth)
@@ -348,9 +349,9 @@
         vs.coords.transformPoints3(cs, [0,0,0], into)
         
         # scaling
-        scale = (100+into[2])+2
-        if self.maxDepth > 20: scale *= 20./self.maxDepth
-        scale = 1-math.log10(scale/2.)
+        scale = (100+into[2])+4
+        if self.maxDepth > 40: scale *= 40./self.maxDepth
+        scale = 1-math.log10(scale/4.)
 
         self.nodef.setScale(scale)
         p = self.nodef.f(self.fen.graph, node)




reply via email to

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