[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ff-cvs] fenfire/org/fenfire demo/mm.py fenmm/MMGeometry...
From: |
Asko Soukka |
Subject: |
[ff-cvs] fenfire/org/fenfire demo/mm.py fenmm/MMGeometry... |
Date: |
Mon, 25 Aug 2003 04:40:28 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Branch:
Changes by: Asko Soukka <address@hidden> 03/08/25 04:40:28
Modified files:
org/fenfire/demo: mm.py
org/fenfire/fenmm: MMGeometry.java
org/fenfire/view/lava: mindMapView2D.py
Log message:
great interpolation update
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/mm.py.diff?tr1=1.35&tr2=1.36&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenmm/MMGeometry.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/mindMapView2D.py.diff?tr1=1.38&tr2=1.39&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/demo/mm.py
diff -u fenfire/org/fenfire/demo/mm.py:1.35 fenfire/org/fenfire/demo/mm.py:1.36
--- fenfire/org/fenfire/demo/mm.py:1.35 Mon Aug 25 03:27:51 2003
+++ fenfire/org/fenfire/demo/mm.py Mon Aug 25 04:40:27 2003
@@ -271,6 +271,7 @@
def pressed(self, x,y):
return self
def changedRelative(self, x):
+ x = x / 2.
main = self.context.main
f = main.getFocus()
fX, fY = f.getPanX(), f.getPanY()
@@ -388,7 +389,7 @@
# draw cursor
if accursed:
nodeview = ff.view.TextNodeView(fen.txtfunc, style)
- if structLink.isLinked(accursed):
+ if structLink.isLinked(accursed) or self.context.home == accursed:
if hasattr(self.view, "zoomPanCS"):
self.context.c.render(vs, cs, self.view.zoomPanCS,
nodeview.f(fen.graph, accursed))
else: self.context.c.render(vs, cs, nodeview.f(fen.graph,
accursed))
Index: fenfire/org/fenfire/fenmm/MMGeometry.java
diff -u fenfire/org/fenfire/fenmm/MMGeometry.java:1.1
fenfire/org/fenfire/fenmm/MMGeometry.java:1.2
--- fenfire/org/fenfire/fenmm/MMGeometry.java:1.1 Mon Aug 25 03:27:51 2003
+++ fenfire/org/fenfire/fenmm/MMGeometry.java Mon Aug 25 04:40:27 2003
@@ -15,19 +15,24 @@
public static final String rcsid = "$Id:";
private final static int INITIAL_CAPACITY = 10;
- public static double getScale(int depth) { return
1-(Math.log(depth+1)/Math.E); }
+ public static double getScale(int depth) { return
1-(Math.log((depth+1))/Math.E); }
public static double getTextScale(int depth) { return
1-(Math.log(depth+1)/Math.E)/2; }
- private static ConstGraph g;
- private static int maxDepth;
- private static float filletLength;
- private static float filletWidth;
- private static float initRotation;
+ private ConstGraph g;
+ private int maxDepth;
+ private float filletLength;
+ private float filletWidth;
+ private float initRotation;
public MMGeometry(ConstGraph g,
float filletLength, float filletWidth,
float initRotation, int maxDepth) {
this.g = g;
+ init(filletLength, filletWidth, initRotation, maxDepth);
+ }
+
+ public void init(float filletLength, float filletWidth,
+ float initRotation, int maxDepth) {
this.maxDepth = maxDepth;
this.filletLength = filletLength;
this.filletWidth = filletWidth;
@@ -90,19 +95,18 @@
if (links.size() < 1) net.link(node, node); // XXX probably not the
right way
else {
curStartAngle = getStartAngle(path);
- curRotationAngle = 2f*Math.PI / links.size();
+ // curRotationAngle = (2f*Math.PI) / links.size();
for (int i=2; i<maxDepth+1; i++)
buildDepth(vs, cs, net, node, null, links, 0, 0,
curStartAngle + initRotation,
curRotationAngle, 1, i);
}
- curCenter = node;
+ // curCenter = node;
return net;
}
private double getStartAngle(List path) {
Iterator i = path.iterator();
- double startAngle = 0;
while (i.hasNext()) {
Object node = i.next();
if (curCenter != node) {
@@ -121,13 +125,15 @@
curIndex = links.indexOf(prevCenter);
}
- double rotationAngle = 2*Math.PI / links.size();
+ curRotationAngle = (2f*Math.PI) / links.size();
// Calculates the "correct" starting angle
if (prevIndex >= 0 && curIndex >= 0)
- startAngle = prevStartAngle + prevRotationAngle*prevIndex
-Math.PI
- + rotationAngle*(links.size() - curIndex);
- } return startAngle;
+ curStartAngle = prevStartAngle + prevRotationAngle*prevIndex
-Math.PI
+ + curRotationAngle*(links.size() - curIndex);
+ else curRotationAngle = 0;
+ curCenter = node;
+ } return curStartAngle;
}
/**
@@ -163,15 +169,15 @@
MMPlace pl = net.getPlace(link);
List nextLinks = getLinkedNodes(g, link);
- double nextAngle = Math.PI*2f/nextLinks.size();
+ double nextAngle = (2f*Math.PI)/nextLinks.size();
int index = nextLinks.indexOf(centerNode);
double nextStartAngle;
- if (index >= 0) nextStartAngle = (startAngle+rotationAngle*i-Math.PI)
- + nextAngle*(float)(nextLinks.size()-index);
+ if (index >= 0) nextStartAngle = startAngle+rotationAngle*i -Math.PI
+ + nextAngle*(nextLinks.size()-index);
else nextStartAngle = 0;
- buildDepth(vs, into, net, link, centerNode, nextLinks, pl.x, pl.x,
+ buildDepth(vs, into, net, link, centerNode, nextLinks, pl.x, pl.y,
nextStartAngle, nextAngle, beginDepth + 1, endDepth);
}
}
Index: fenfire/org/fenfire/view/lava/mindMapView2D.py
diff -u fenfire/org/fenfire/view/lava/mindMapView2D.py:1.38
fenfire/org/fenfire/view/lava/mindMapView2D.py:1.39
--- fenfire/org/fenfire/view/lava/mindMapView2D.py:1.38 Mon Aug 25 03:27:51 2003
+++ fenfire/org/fenfire/view/lava/mindMapView2D.py Mon Aug 25 04:40:28 2003
@@ -126,6 +126,9 @@
self.filletLength = 150
self.initRotation = 0
+ self.geometry = MMGeometry(self.fen.graph, self.filletLength,
self.filletWidth,
+ self.initRotation, self.depth)
+
# fillet set up
self.angle = 1
self.thick = 1
@@ -170,9 +173,9 @@
path = java.util.ArrayList(1)
path.add(node)
- geometry = MMGeometry(self.fen.graph, self.filletLength,
self.filletWidth,
- self.initRotation, self.depth)
- self.net = geometry.buildMindNet(vs, paper2screen, path)
+ self.geometry.init(self.filletLength, self.filletWidth,
+ self.initRotation, self.depth)
+ self.net = self.geometry.buildMindNet(vs, paper2screen, path)
self.drawMindMap(vs)
self.oldCenter = node
- [ff-cvs] fenfire/org/fenfire demo/mm.py fenmm/MMGeometry...,
Asko Soukka <=