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/TextNodeVie...


From: Asko Soukka
Subject: [ff-cvs] fenfire/org/fenfire demo/mm.py view/TextNodeVie...
Date: Fri, 15 Aug 2003 09:44:46 -0400

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

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

Log message:
        scalable text and cursor

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

Patches:
Index: fenfire/org/fenfire/demo/mm.py
diff -u fenfire/org/fenfire/demo/mm.py:1.13 fenfire/org/fenfire/demo/mm.py:1.14
--- fenfire/org/fenfire/demo/mm.py:1.13 Fri Aug 15 07:01:18 2003
+++ fenfire/org/fenfire/demo/mm.py      Fri Aug 15 09:44:46 2003
@@ -2,7 +2,7 @@
 
 # This demo is a for mindmap
 
-import java, jarray
+import java, jarray, math
 from java.lang import Math
 
 import vob
@@ -188,22 +188,27 @@
             into = jarray.zeros(3, 'f')
             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.)
+
             if node == self.context.main.getPlane():
                 self.context.scale = self.context.main.getFocus().getZoom()
                 self.context.offset = nodeview.getPos(fen.graph, 
context.getAccursed(),
-                                                  
(x-into[0])/self.context.scale,
-                                                  
(y-into[1])/self.context.scale)
+                                                  
(x-into[0])/self.context.scale/nodeScale,
+                                                  
(y-into[1])/self.context.scale/scale)
             elif ff.util.RDFUtil.isLinked(fen.graph, node):
                 self.context.offset = nodeview.getPos(fen.graph, 
context.getAccursed(),
-                                                  
(x-into[0])/self.context.scale,
-                                                  
(y-into[1])/self.context.scale)
+                                                  
(x-into[0])/self.context.scale/nodeScale,
+                                                  
(y-into[1])/self.context.scale/nodeScale)
                 self.context.scale = 1
                 self.context.main.setNewPlane(node, 0,0,1)
             else:
                 self.context.scale = 1
                 self.context.offset = nodeview.getPos(fen.graph, 
context.getAccursed(),
-                                                  
(x-into[0])/self.context.scale,
-                                                  
(y-into[1])/self.context.scale)
+                                                  
(x-into[0])/self.context.scale/nodeScale,
+                                                  
(y-into[1])/self.context.scale/nodeScale)
 
         elif rmb == 'link':
             if node == self.context.main.getPlane():
@@ -267,11 +272,35 @@
         # flag for cursor('wait')
         self.startup = 1 
 
+        ### custom controller support
+        self.naxes = 0
+#        try:
+        self.ps2 = vob.input.impl.PS2MouseDevice("/dev/input/mouse0", "main",
+                                                 
vob.input.impl.PS2MouseDevice.IMPS_PROTO)
+        self.naxes = len(self.ps2.getAxes())
+        self.axes = [
+            vob.input.impl.StandardBoundedFloatModel(0, 400,
+                                                     actionPerformed = lambda 
x: vob.AbstractUpdateManager.chg())
+            for i in range(0,self.naxes)]
+        for i in range(0,self.naxes):
+            self.ps2.getAxes()[i].setMainListener(
+                vob.input.BoundedFloatLinearAbsoluteAdapter(self.axes[i]))
+#        except: pass
+
     def scene(self, vs):
+        # custom controller support
+        if self.naxes >= 1:
+            mindView.nodeScale = self.axes[0].getValue() / 10. + 1
+        if self.naxes >= 2:
+            mindView.distanceScale = self.axes[1].getValue() / 50. + 1
+        if self.naxes >= 3:
+            mindView.rotation = self.axes[2].getValue() / -4
+
         context.oldVS = vs
         vs.put(background(context.bgcolor))
         cs = vs.orthoBoxCS(0, "foo",0, 50,50, 1,1, 750,650)
         self.main.renderMain(vs, cs)
+
         if self.startup: w.setCursor('default'); self.startup = 0
 
     def mouse(self, ev):
Index: fenfire/org/fenfire/view/TextNodeView.java
diff -u fenfire/org/fenfire/view/TextNodeView.java:1.14 
fenfire/org/fenfire/view/TextNodeView.java:1.15
--- fenfire/org/fenfire/view/TextNodeView.java:1.14     Thu Aug 14 03:36:37 2003
+++ fenfire/org/fenfire/view/TextNodeView.java  Fri Aug 15 09:44:46 2003
@@ -41,7 +41,7 @@
  */
 public class TextNodeView extends org.fenfire.view.lava.TextHandler 
        implements NodeFunction {
-public static final String rcsid = "$Id: TextNodeView.java,v 1.14 2003/08/14 
07:36:37 humppake Exp $";
+public static final String rcsid = "$Id: TextNodeView.java,v 1.15 2003/08/15 
13:44:46 humppake Exp $";
     public static boolean dbg = false;
     private static void pa(String s) { System.out.println("TextNodeView::"+s); 
}
 
@@ -76,7 +76,7 @@
        if (s.length() == 0) return 0;
 
        HChain ch = getChain(s);
-       final HBroken br = breaker.breakLines(ch, width, scale);
+       final HBroken br = breaker.breakLines(ch, width*scale, scale);
 
        int pos = 0;
        int line = 0;
@@ -135,7 +135,7 @@
        }
 
        HChain ch = getChain(s);
-       final HBroken br = breaker.breakLines(ch, width, scale);
+       final HBroken br = breaker.breakLines(ch, width*scale, scale);
 
        float xoffs[] = new float[1];
        int line = br.getLine(pos, xoffs);
@@ -166,7 +166,7 @@
            };
 
        HChain ch = getChain(s);
-       final HBroken br = breaker.breakLines(ch, width, scale);
+       final HBroken br = breaker.breakLines(ch, width*scale, scale);
        final float height = br.getHeight();
 
        final float width;
Index: fenfire/org/fenfire/view/lava/mindMapView2D.py
diff -u fenfire/org/fenfire/view/lava/mindMapView2D.py:1.16 
fenfire/org/fenfire/view/lava/mindMapView2D.py:1.17
--- fenfire/org/fenfire/view/lava/mindMapView2D.py:1.16 Fri Aug 15 07:44:46 2003
+++ fenfire/org/fenfire/view/lava/mindMapView2D.py      Fri Aug 15 09:44:46 2003
@@ -115,6 +115,9 @@
         self.nodef = nodef
         self.context = None
         self.maxDepth = 5
+        self.nodeScale = 17.5
+        self.distanceScale = 5.
+        self.rotation = 0.
 
         # Stored data to help interpolation to nodes next to accursed
         self.current = {'centerNode': None, 'startAngle': 0., 'rotationAngle': 
0.}
@@ -154,7 +157,7 @@
         if depth < 1: depth = 1
         if self.maxDepth > 10: depth = depth * (10/self.maxDepth)
 
-        s =(self.box[1] * 1./17.5) * (1-math.log10(depth))
+        s =(self.box[1] * 1./self.nodeScale) * (1-math.log10(depth))
         if dbg: p('size:', s)
         return s
 
@@ -164,7 +167,7 @@
         if depth == 0: return 0
         if self.maxDepth > 10: depth = depth * (10/self.maxDepth)
 
-        d = (self.box[0] * 1./5.) * (1-math.log10(depth))
+        d = (self.box[0] * 1./self.distanceScale) * (1-math.log10(depth))
         if dbg: p('dist: ', d)
         return d
 
@@ -223,7 +226,7 @@
                              + rotationAngle*float(len(links)-currentIndex)
             else: startAngle = 0
 
-            self.doMindMapCS(vs, paper2screen, node, links, 0,0, startAngle, 
rotationAngle, 1)
+            self.doMindMapCS(vs, paper2screen, node, links, 0,0, startAngle + 
self.rotation, rotationAngle, 1)
             self.current['startAngle'] = startAngle
             self.current['rotationAngle'] = rotationAngle
         self.drawMindMap(vs)
@@ -353,17 +356,19 @@
         x = - p.getWidth()/2.0
         y = - p.getHeight()/2.0
 
-        cs_background = vs.orthoCS(cs,'background',-100, x,y, p.getWidth(), 
p.getHeight())
+        cs_background = vs.orthoCS(cs,'background',0, x,y, p.getWidth(), 
p.getHeight())
         if self.context and self.context.getAccursed() == node:
             vs.put(whiteground_accursed, cs_background)
         else: vs.put(whiteground, cs_background)
 
-        cs = vs.orthoBoxCS(cs,node,-100, x,y, 1,1, p.getWidth(), p.getHeight())
+        cs = vs.orthoBoxCS(cs,node,0, x,y, 1,1, p.getWidth(), p.getHeight())
         p.place(vs, cs)
         vs.coords.activate(cs)
 
         # draw cursor
         if self.context and self.context.getAccursed() == node:
+            into = jarray.zeros(3, 'f')
+            vs.coords.transformPoints3(cs, [0,0,0], into)
             cs = vs.orthoCS(0, 0, -100, into[0], into[1], 1, 1)
             self.context.drawCursor(vs, node, cs)
 




reply via email to

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