gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] fenfire/org/fenfire view/buoy/AbstractMainNode2...


From: Matti Katila
Subject: [Gzz-commits] fenfire/org/fenfire view/buoy/AbstractMainNode2...
Date: Wed, 13 Aug 2003 04:47:45 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Matti Katila <address@hidden>   03/08/13 04:47:45

Modified files:
        org/fenfire/view/buoy: AbstractMainNode2D.java 
        org/fenfire/view/lava: mindMapView2D.py 
Added files:
        org/fenfire/demo: mm.py 

Log message:
        new mindmap demo, quite qute.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/mm.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java.diff?tr1=1.40&tr2=1.41&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/mindMapView2D.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java
diff -u fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.40 
fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.41
--- fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.40  Thu Aug  7 
07:10:07 2003
+++ fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java       Wed Aug 13 
04:47:44 2003
@@ -263,7 +263,9 @@
 
     public boolean mouse(VobMouseEvent e, VobScene oldVobScene) {
        mouseController.deliverEvent(e);
-       return context.changeFastAfterMouseEvent();
+       if (context != null)
+           return context.changeFastAfterMouseEvent();
+       else return true;
     }
 
     public void chgFast(VobScene oldVobScene, int parent) {
Index: fenfire/org/fenfire/view/lava/mindMapView2D.py
diff -u fenfire/org/fenfire/view/lava/mindMapView2D.py:1.4 
fenfire/org/fenfire/view/lava/mindMapView2D.py:1.5
--- fenfire/org/fenfire/view/lava/mindMapView2D.py:1.4  Tue Aug 12 07:32:55 2003
+++ fenfire/org/fenfire/view/lava/mindMapView2D.py      Wed Aug 13 04:47:45 2003
@@ -8,6 +8,7 @@
 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
@@ -20,6 +21,8 @@
 
 
 
+paper = vob.gl.SpecialPapers.selectionPaper(None);
+whiteground = vob.gl.GLRen.createFixedPaperQuad(paper, 0, 0, 1, 1, 0, 10, 10, 
10);
 
 
 
@@ -28,12 +31,53 @@
     def __init__(self, plane, view2d, focus, controller):
        ff.view.buoy.MainNode2D.__init__(self, plane, view2d, controller);
 
+    def init(self, fen, nodeview):
+        self.fen, self.viewfunc = fen, nodeview
+        
+
     def renderMain(self, vs, into):
         ff.view.buoy.MainNode2D.renderMain(self, vs, into)
 
+        # then draw unused mind data around.
+        unused = []
+        iter = self.fen.graph.findN_X11_Iter(RDF.type, MIND.Data)
+        while (iter.hasNext()):
+            obj = iter.next()
+            if ff.util.RDFUtil.isLinked(self.fen.graph, obj): continue
+            unused.append(obj)
+
+        if len(unused) == 0: return
+        d = 360.0/len(unused)
+        for i in range(len(unused)):
+            self.makeCSforUnusedAround(unused[i], vs, Math.toRadians(i*d))
+
+        
+    def makeCSforUnusedAround(self, key, vs, angle):
+        angle += 0.5 * Math.PI
+        angle %= 2.0 * Math.PI
+        wi, h = vs.size.width, vs.size.height
+        a, b = wi/2.3, h/2.99
+        x0,y0 = wi/2.0, h/2.0
+        bx, by = wi/7, h/27
+        
+        e = Math.sqrt(1 - b**2/a**2)
 
+        r = a * Math.sqrt( (1 - e**2) / ( 1 - e**2 * Math.cos(angle)**2)) 
+        
+        x = r * Math.cos(angle) + x0
+        y = -r * Math.sin(angle) + y0
+         
+        cs = vs.orthoBoxCS(0, key, 0,x-bx/2,y-by/2, 1,1, bx,by)
+        self.place(key, vs, cs)
 
+    def place(self, node, vs, cs):
+        p = self.viewfunc.f(self.fen.graph, node)
 
+        cs_background = vs.coords.ortho(cs,0, 0,0, p.getWidth(), p.getHeight())
+        vs.put(whiteground, cs_background)
+        
+        cs = vs.coords.orthoBox(cs,0, 0,0, 1,1, p.getWidth(), p.getHeight())
+        p.place(vs, cs)
 
 
 class MindNet:
@@ -87,6 +131,8 @@
         self.tblsize = 20
         self.mode = 0
 
+        paper = vob.gl.SpecialPapers.selectionPaper(None);
+        self.whiteground = vob.gl.GLRen.createFixedPaperQuad(paper, 0, 0, 1, 
1, 0, 10, 10, 10);
 
     def getSize(self, node, wh):
         s = 240
@@ -243,6 +289,9 @@
     def putNodeContent(self, vs, node, cs):
         p = self.nodef.f(self.fen.graph, node)
 
+        cs_background = vs.coords.ortho(cs,0, 0,0, p.getWidth(), p.getHeight())
+        vs.put(whiteground, cs_background)
+
         cs = vs.coords.orthoBox(cs,0, 0,0, 1,1, p.getWidth(), p.getHeight())
         p.place(vs, cs)
 
@@ -250,68 +299,3 @@
 
 
 
-
-if 1:
-    # Now, before reading the xu stuff, render something 
-    # to try to prevent NV driver
-    # fallback to software rendering.
-    # Might be that it only reserves screen memory when starting to render
-    # and if we reserve it all for textures, ... splat ...
-    vs = w.createVobScene()
-    vs.put(background((.4, .2, .1)))
-    w.renderStill(vs, 0)
-
-    
-    fen = ff.test.fen.newFen()
-    ppAct = ff.modules.pp.PPActionsImpl(fen)
-    
-    paperA = "urn:urn-5:P7OMBN+yp3-m-AkulZN-NeaJV9Sl:_1"
-    paperHome = "urn:urn-5:COz-fSvNBZRieCdefRTKO2Mgcjmz:_1"
-    paperB = "urn:urn-5:P7OMBN+yp3-m-AkulZN-NeaJV9Sl:_2"
-    paperC = "urn:urn-5:P7OMBN+yp3-m-AkulZN-NeaJV9Sl:_5"
-    fen.graph.add(Nodes.get(paperHome), RDF.type, CANVAS2D.Canvas);
-    fen.graph.add(Nodes.get(paperA), RDF.type, CANVAS2D.Canvas);
-    fen.graph.add(Nodes.get(paperB), RDF.type, CANVAS2D.Canvas);
-    fen.graph.add(Nodes.get(paperC), RDF.type, CANVAS2D.Canvas);
-
-    noteA1 = Nodes.get(ppAct.newNote(paperA, -30,-30, 'This is a test!'))
-    noteA2 = Nodes.get(ppAct.newNote(paperA, -60,-70, 'This is a test2!'))
-    noteA4 = Nodes.get(ppAct.newNote(paperA, -60,70, 'This is a very long test 
which is used to see if '))
-
-    fen.graph.add(noteA2, RDF.type, ff.vocab.lava.MINDSTRUCT.Data)
-
-    ppAct.assocNotes(noteA1, 1, noteA2);
-
-    noteB1 = Nodes.get(ppAct.newNote(paperB, 1000,500, 'This is an another 
test!'))
-    ppAct.assocNotes(noteA1, 1, noteB1)
-    noteHome = Nodes.get(ppAct.newNote(paperHome, 0, 0, 'HOME'))
-    ppAct.assocNotes(noteHome, 1, noteA1)
-
-
-
-    nodeview = ff.view.TextNodeView(fen.txtfunc,
-                                    
vob.GraphicsAPI.getInstance().getTextStyle("sans", 0, 24),
-                                    1)
-    nodeview.setHasNoContext()
-    mindView = MindMapView2D(fen, nodeview)
-
-
-
-class VeryStupidBuoyManagerForHumppake:
-    def __init__(self):
-        self.main = MindMapMainNode2D(noteA2, mindView,
-                                      
ff.view.buoy.AbstractMainNode2D.SimpleFocus(0,0), None)
-
-    def scene(self, vs):
-        vs.put(background((.36, .74, 1.0)))
-        cs = vs.orthoBoxCS(0, "foo",0, 50,50, 1,1, 450,450)
-        self.main.renderMain(vs, cs)
-
-    def mouse(self, ev):
-        pass
-
-    def key(self, key):
-        vob.AbstractUpdateManager.chg()
-
-
-currentScene = VeryStupidBuoyManagerForHumppake()




reply via email to

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