[Top][All Lists]
[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()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] fenfire/org/fenfire view/buoy/AbstractMainNode2...,
Matti Katila <=