[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] fenfire ./TODO-loom org/fenfire/loom/Loom.java ...
From: |
Benja Fallenstein |
Subject: |
[Gzz-commits] fenfire ./TODO-loom org/fenfire/loom/Loom.java ... |
Date: |
Tue, 04 Mar 2003 11:49:26 -0500 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Changes by: Benja Fallenstein <address@hidden> 03/03/04 11:49:25
Modified files:
. : TODO-loom
org/fenfire/loom: Loom.java NodeView.java SimpleView.java
SimpleView.test WheelView.java WheelView.test
Added files:
org/fenfire/loom: NodeView.test
Log message:
Fix interp problem for now-- trade for no interpolation from/to focus,
yet
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/TODO-loom.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/NodeView.test?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/Loom.java.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/NodeView.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/SimpleView.java.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/SimpleView.test.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/WheelView.java.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/WheelView.test.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
Patches:
Index: fenfire/TODO-loom
diff -u fenfire/TODO-loom:1.13 fenfire/TODO-loom:1.14
--- fenfire/TODO-loom:1.13 Tue Mar 4 10:48:15 2003
+++ fenfire/TODO-loom Tue Mar 4 11:49:25 2003
@@ -14,7 +14,7 @@
0.1: Working RDF browser
- README documenting how you can use this so far
- - fix interpolation
+ - fix interpolation from/to focus
- make mouse work better-- figure out how
- currently clicking on literal rotates to it,
clicking on node makes it focus
Index: fenfire/org/fenfire/loom/Loom.java
diff -u fenfire/org/fenfire/loom/Loom.java:1.7
fenfire/org/fenfire/loom/Loom.java:1.8
--- fenfire/org/fenfire/loom/Loom.java:1.7 Tue Mar 4 10:48:15 2003
+++ fenfire/org/fenfire/loom/Loom.java Tue Mar 4 11:49:25 2003
@@ -108,8 +108,11 @@
final TextStyle style = api.getTextStyle("Serif", 0, 12);
final NodeView nodeView = new NodeView() {
- public void render(VobScene sc, int into, RDFNode node,
- Property prop, int dir) {
+ public void render(VobScene sc, int into, Nodespec spec) {
+ RDFNode node = spec.node;
+ Property prop = spec.prop;
+ int dir = spec.dir;
+
RectBgVob bg = new RectBgVob();
if(node.equals(cursor.getRotationNode(dir))) // if selected
bg.addColor(Color.red);
Index: fenfire/org/fenfire/loom/NodeView.java
diff -u fenfire/org/fenfire/loom/NodeView.java:1.3
fenfire/org/fenfire/loom/NodeView.java:1.4
--- fenfire/org/fenfire/loom/NodeView.java:1.3 Tue Mar 4 06:17:19 2003
+++ fenfire/org/fenfire/loom/NodeView.java Tue Mar 4 11:49:25 2003
@@ -38,17 +38,9 @@
* @param vs The VobScene to render the node into.
* @param into The coordinate system inside <code>vs</code>
* to render the node into.
- * @param node The node to render.
- * @param prop The property through which the node
- * is related to the focus (<code>null</code>
- * for the focus itself).
- * @param dir Larger than zero if the node is posward
- * from the focus; smaller than zero if the node
- * is negward from the focus; zero if the node
- * <em>is</em> the focus.
+ * @param spec Information about the node to render.
*/
- void render(VobScene vs, int into, RDFNode node,
- Property prop, int dir);
+ void render(VobScene vs, int into, Nodespec spec);
/** Get the default size of a node.
* @param node The node to get size for, or null for a default size.
@@ -57,4 +49,65 @@
*/
//void getSize(RDFNode node, float[] out);
+
+
+ /** Information about a node to be rendered.
+ * Also used as the key for the coordsys containing
+ * the node.
+ * XXX better name for this class?
+ */
+ class Nodespec {
+ /** Create a nodespec for the focused node.
+ */
+ public Nodespec(RDFNode focus) {
+ node = focus;
+ prop = null;
+ dir = 0;
+ }
+
+ /** Create a nodespec for a node in the context.
+ */
+ public Nodespec(RDFNode node, Property prop, int dir) {
+ this.node = node;
+ this.prop = prop;
+ this.dir = dir;
+ }
+
+ public boolean equals(Object o) {
+ if(!(o instanceof Nodespec)) return false;
+ Nodespec s = (Nodespec)o;
+
+ boolean propeq;
+ if(prop == null || s.prop == null)
+ propeq = (prop == s.prop);
+ else
+ propeq = prop.equals(s.prop);
+
+ return propeq && dir == s.dir && node.equals(s.node);
+ }
+
+ public int hashCode() {
+ if(prop != null)
+ return dir * (node.hashCode() ^ ~prop.hashCode());
+ else
+ return node.hashCode();
+ }
+
+ /** The node rendered in this cs.
+ */
+ public RDFNode node;
+
+ /** The property through which the node
+ * is related to the focus (<code>null</code>
+ * for the focus itself).
+ */
+ public Property prop;
+
+ /** Larger than zero if the node is posward
+ * from the focus; smaller than zero if the node
+ * is negward from the focus; zero if the node
+ * <em>is</em> the focus.
+ */
+ public int dir;
+ }
}
Index: fenfire/org/fenfire/loom/SimpleView.java
diff -u fenfire/org/fenfire/loom/SimpleView.java:1.4
fenfire/org/fenfire/loom/SimpleView.java:1.5
--- fenfire/org/fenfire/loom/SimpleView.java:1.4 Tue Mar 4 10:48:15 2003
+++ fenfire/org/fenfire/loom/SimpleView.java Tue Mar 4 11:49:25 2003
@@ -59,10 +59,11 @@
public void render(VobScene sc, int into, Cursor c) {
int midx = sc.size.width/2, midy = sc.size.height/2;
- int cs = sc.orthoBoxCS(into, c.focus, 0, midx-sizex/2, midy-sizey/2,
+ NodeView.Nodespec spec = new NodeView.Nodespec(c.focus);
+ int cs = sc.orthoBoxCS(into, spec, 0, midx-sizex/2, midy-sizey/2,
1, 1, sizex, sizey);
sc.coords.activate(cs);
- nodeView.render(sc, cs, c.focus, null, 0);
+ nodeView.render(sc, cs, spec);
int before = c.getRotationIndex(1);
@@ -72,9 +73,10 @@
for(Iterator j=c.getConnections(1).iterator(); j.hasNext();) {
Statement stmt = (Statement)j.next();
RDFNode node = stmt.getObject();
- int cs2 = sc.orthoBoxCS(into, node, 0, x, y, 1, 1, sizex, sizey);
+ spec = new NodeView.Nodespec(node, stmt.getPredicate(), 1);
+ int cs2 = sc.orthoBoxCS(into, spec, 0, x, y, 1, 1, sizex, sizey);
sc.coords.activate(cs2);
- nodeView.render(sc, cs2, node, stmt.getPredicate(), 1);
+ nodeView.render(sc, cs2, spec);
sc.map.put(conn, cs, cs2);
y += sizey + gapy;
}
@@ -86,9 +88,10 @@
for(Iterator j=c.getConnections(-1).iterator(); j.hasNext();) {
Statement stmt = (Statement)j.next();
RDFNode node = stmt.getSubject();
- int cs2 = sc.orthoBoxCS(into, node, 0, x, y, 1, 1, sizex, sizey);
+ spec = new NodeView.Nodespec(node, stmt.getPredicate(), -1);
+ int cs2 = sc.orthoBoxCS(into, spec, 0, x, y, 1, 1, sizex, sizey);
sc.coords.activate(cs2);
- nodeView.render(sc, cs2, node, stmt.getPredicate(), -1);
+ nodeView.render(sc, cs2, spec);
sc.map.put(conn, cs2, cs);
y += sizey + gapy;
}
Index: fenfire/org/fenfire/loom/SimpleView.test
diff -u fenfire/org/fenfire/loom/SimpleView.test:1.6
fenfire/org/fenfire/loom/SimpleView.test:1.7
--- fenfire/org/fenfire/loom/SimpleView.test:1.6 Tue Mar 4 10:48:15 2003
+++ fenfire/org/fenfire/loom/SimpleView.test Tue Mar 4 11:49:25 2003
@@ -21,6 +21,7 @@
import gzz, java
import jarray
+import gzz.loom.NodeView.Nodespec as Spec
from org.fenfire.test.gfx import getvs
from com.hp.hpl.mesa.rdf import jena
@@ -43,10 +44,10 @@
view = gzz.loom.SimpleView(NodeView())
class NodeView(gzz.loom.NodeView):
- def render(self, vs, cs, node, prop, dir):
- nodes[node] = cs
- dirs[node] = dir
- props[node] = prop
+ def render(self, vs, cs, spec):
+ nodes[spec.node] = cs
+ dirs[spec.node] = spec.dir
+ props[spec.node] = spec.prop
class Cmp(java.util.Comparator):
def __init__(self, get): self.get = get
@@ -70,8 +71,12 @@
cursor.set(r)
view.render(vs, 0, cursor)
- cs_r, cs_s, cs_t, cs_u, cs_v = [vs.matcher.getCS(0, x)
- for x in (r,s,t,u,v)]
+ kr = Spec(r)
+ ks, kt, ku, kv = [Spec(x, p, 1) for x in (s,t,u,v)]
+ kw = Spec(w, p, -1)
+
+ cs_r, cs_s, cs_t, cs_u, cs_v, cs_w = \
+ [vs.matcher.getCS(0, x) for x in (kr,ks,kt,ku,kv,kw)]
assert cs_u == cs_v == -1
@@ -97,8 +102,12 @@
assert cursor.rotation == 0
view.render(vs, 0, cursor)
+ kr = Spec(r)
+ ks, kt, ku, kv = [Spec(x, p, 1) for x in (s,t,u,v)]
+ kw = Spec(w, p, -1)
+
cs_r, cs_s, cs_t, cs_u, cs_v, cs_w = \
- [vs.matcher.getCS(0, x) for x in (r,s,t,u,v,w)]
+ [vs.matcher.getCS(0, x) for x in (kr,ks,kt,ku,kv,kw)]
pr, ps, pt, pu, pv, pw = \
[vs.coords.transformPoint(cs, 0, 0, None)
Index: fenfire/org/fenfire/loom/WheelView.java
diff -u fenfire/org/fenfire/loom/WheelView.java:1.4
fenfire/org/fenfire/loom/WheelView.java:1.5
--- fenfire/org/fenfire/loom/WheelView.java:1.4 Tue Mar 4 10:48:15 2003
+++ fenfire/org/fenfire/loom/WheelView.java Tue Mar 4 11:49:25 2003
@@ -63,10 +63,11 @@
public void render(VobScene sc, int into, Cursor c) {
int midx = sc.size.width/2, midy = sc.size.height/2;
- int cs = sc.orthoBoxCS(into, c.focus, 0, midx-sizex/2, midy-sizey/2,
+ NodeView.Nodespec spec = new NodeView.Nodespec(c.focus);
+ int cs = sc.orthoBoxCS(into, spec, 0, midx-sizex/2, midy-sizey/2,
1, 1, sizex, sizey);
sc.coords.activate(cs);
- nodeView.render(sc, cs, c.focus, null, 0);
+ nodeView.render(sc, cs, spec);
int totpos = c.getConnections(1).size();
int totneg = c.getConnections(-1).size();
@@ -86,12 +87,14 @@
for(Iterator j=c.getConnections(1).iterator(); j.hasNext();) {
Statement stmt = (Statement)j.next();
RDFNode node = stmt.getObject();
- int cs2 = sc.orthoBoxCS(into, node, Math.abs(before),
+ spec = new NodeView.Nodespec(node, stmt.getPredicate(), 1);
+ int cs2 = sc.orthoBoxCS(into, spec, Math.abs(before),
midx+x(cura, r)-sizex/2,
midy+y(cura, r)-sizey/2,
1, 1, sizex, sizey);
sc.coords.activate(cs2);
- nodeView.render(sc, cs2, node, stmt.getPredicate(), 1);
+ nodeView.render(sc, cs2, spec);
+
sc.map.put(conn, cs, cs2);
cura+=rota;
before--;
@@ -103,12 +106,13 @@
for(Iterator j=c.getConnections(-1).iterator(); j.hasNext();) {
Statement stmt = (Statement)j.next();
RDFNode node = stmt.getSubject();
- int cs2 = sc.orthoBoxCS(into, node, Math.abs(before),
+ spec = new NodeView.Nodespec(node, stmt.getPredicate(), -1);
+ int cs2 = sc.orthoBoxCS(into, spec, Math.abs(before),
midx+x(cura, r)-sizex/2,
midy+y(cura, r)-sizey/2,
1, 1, sizex, sizey);
sc.coords.activate(cs2);
- nodeView.render(sc, cs2, node, stmt.getPredicate(), -1);
+ nodeView.render(sc, cs2, spec);
sc.map.put(conn, cs2, cs);
cura+=rota;
before--;
Index: fenfire/org/fenfire/loom/WheelView.test
diff -u fenfire/org/fenfire/loom/WheelView.test:1.6
fenfire/org/fenfire/loom/WheelView.test:1.7
--- fenfire/org/fenfire/loom/WheelView.test:1.6 Tue Mar 4 10:48:15 2003
+++ fenfire/org/fenfire/loom/WheelView.test Tue Mar 4 11:49:25 2003
@@ -22,6 +22,7 @@
import gzz, java
import jarray
import math
+import gzz.loom.NodeView.Nodespec as Spec
from org.fenfire.test.gfx import getvs
from com.hp.hpl.mesa.rdf import jena
@@ -44,10 +45,10 @@
view = gzz.loom.WheelView(NodeView())
class NodeView(gzz.loom.NodeView):
- def render(self, vs, cs, node, prop, dir):
- nodes[node] = cs
- dirs[node] = dir
- props[node] = prop
+ def render(self, vs, cs, spec):
+ nodes[spec.node] = cs
+ dirs[spec.node] = spec.dir
+ props[spec.node] = spec.prop
class Cmp(java.util.Comparator):
def __init__(self, get): self.get = get
@@ -108,8 +109,12 @@
assert cursor.rotation == 0
view.render(vs, 0, cursor)
+ kr = Spec(r)
+ ks, kt, ku, kv = [Spec(x, p, 1) for x in (s,t,u,v)]
+ kw = Spec(w, p, -1)
+
cs_r, cs_s, cs_t, cs_u, cs_v, cs_w = \
- [vs.matcher.getCS(0, x) for x in (r,s,t,u,v,w)]
+ [vs.matcher.getCS(0, x) for x in (kr,ks,kt,ku,kv,kw)]
pr, ps, pt, pu, pv, pw = \
[vs.coords.transformPoint(cs, 0, 0, None)