[Top][All Lists]
[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [ff-cvs] fenfire/org/fenfire demo/mm.py view/TextNodeVie...,
Asko Soukka <=