gzz-commits
[Top][All Lists]
Advanced

[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)




reply via email to

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