gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] fenfire/org/fenfire demo/buoyoing.py impl/Simpl...


From: Tuomas J. Lukka
Subject: [Gzz-commits] fenfire/org/fenfire demo/buoyoing.py impl/Simpl...
Date: Mon, 28 Apr 2003 04:57:28 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Changes by:     Tuomas J. Lukka <address@hidden>        03/04/28 04:57:27

Modified files:
        org/fenfire/demo: buoyoing.py 
        org/fenfire/impl: SimpleNodeContent.java 
        org/fenfire/index/impl: EnfiladeOverlapIndex.java 
        org/fenfire/view: CanvasView2D.java PageScrollView2D.java 
        org/fenfire/view/buoy: MainNode2D.java NodeType2D.java 
                               PPConnector.java 
                               TransclusionConnector.java 
Added files:
        org/fenfire/view/buoy: AbstractMainNode2D.java 
                               AbstractNodeType2D.java 
                               NodeType2DFull.java 

Log message:
        Much work on buoyoing. Getting there...

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/buoyoing.py.diff?tr1=1.31&tr2=1.32&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/impl/SimpleNodeContent.java.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/index/impl/EnfiladeOverlapIndex.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/CanvasView2D.java.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/PageScrollView2D.java.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/AbstractNodeType2D.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/NodeType2DFull.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/MainNode2D.java.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/NodeType2D.java.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/PPConnector.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/TransclusionConnector.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/demo/buoyoing.py
diff -u fenfire/org/fenfire/demo/buoyoing.py:1.31 
fenfire/org/fenfire/demo/buoyoing.py:1.32
--- fenfire/org/fenfire/demo/buoyoing.py:1.31   Sun Apr 27 16:19:24 2003
+++ fenfire/org/fenfire/demo/buoyoing.py        Mon Apr 28 04:57:27 2003
@@ -26,6 +26,7 @@
 
 import sys
 import jarray
+import java
 
 del(sys.modules["org"])
 
@@ -66,12 +67,6 @@
 fen.txtfunc = fen.txt.getNodeFunction()
 fen.enfiladeOverlap = fen.txt.getTransclusionIndex()
 
-# Create the buoy view elements
-scrollblockLinker = ff.view.buoy.ScrollBlockNodeLinker(fen)
-# scrollblockLinker.transclusionPageSpanNodeType = (
-#      ff.view.buoy.pagespanNodes.WholePageSpanNodeType(scrollblockLinker)
-#      )
-
 ppAct = ff.modules.pp.PPActionsImpl(fen)
 class PpContext(ff.view.NodeView.Context, ff.modules.pp.PpContext):
     def __init__(self, ppAc):
@@ -120,16 +115,10 @@
     #linkid1 = addTrans(span, paper)
 
     paperB = ppAct.newPaper()
-    note2 = Nodes.get(ppAct.newNote(paperB, 10,30, 'This is an another test!'))
+    note2 = Nodes.get(ppAct.newNote(paperB, 1000,500, 'This is an another 
test!'))
 
     ppAct.assocNotes(note1, 1, note2)
 
-#scrollblockLinker.xuIndex = xuindexer
-#scrollblockLinker.xulinkPageSpanNodeType = 
ff.view.buoy.pagespanNodes.AnchorPageSpanNodeType(scrollblockLinker)
-
-# For now, no transclusions there
-#scrollblockLinker.transclusionPageSpanNodeType = None
-
 textstyle = vob.GraphicsAPI.getInstance().getTextStyle("sans", 0, 24)
 textnodeview = ff.view.TextNodeView(fen.txtfunc, textstyle, 1)
 pagenodeview = ff.view.PageNodeView(fen.txtfunc)
@@ -138,12 +127,16 @@
                                            pagenodeview)
 nodeview = ff.swamp.CachedNodeFunction(50, fen.constgraph, dispnodeview);
 view = ff.view.CanvasView2D(fen, nodeview)
+view.cull = 1
 paperview = ff.view.PaperView2D(vob.putil.demowindow.w, view)
+
 irregu = ff.view.IrregularViewportView2D(paperview)
+# irregu = paperview
 
 # paperviewonly = ff.view.PaperView2D(vob.putil.demowindow.w, None)
 
 ff.view.buoy.NodeType2D.effigy = 0
+ff.view.buoy.NodeType2DFull.effigy = 0
 
 # irregu.debugFlags = irregu.DEBUG_CONTENT | irregu.DEBUG_CHILD
 # irregu.border = 10
@@ -160,12 +153,20 @@
 ppconnector = ff.view.buoy.PPConnector(fen, irregu)
 tconnector = ff.view.buoy.TransclusionConnector(fen)
 
-pagescroll2d = ff.view.IrregularViewportView2D(
-           ff.view.PaperView2D(vob.putil.demowindow.w, 
-                       ff.view.PageScrollView2D()))
+#pagescroll2d = ff.view.IrregularViewportView2D(
+#          ff.view.PaperView2D(vob.putil.demowindow.w, 
+#                      ff.view.PageScrollView2D()))
+pagescroll2d = ff.view.PageScrollView2D()
 
 tconnector.normalNodeNodeType = ff.view.buoy.NodeType2D(irregu)
-tconnector.pageImageScrollNodeType = ff.view.buoy.NodeType2D(pagescroll2d)
+tconnector.pageImageScrollNodeType = ff.view.buoy.NodeType2DFull(pagescroll2d)
+
+print "DUMPING ENFOVERLAP!"
+em = fen.enfiladeOverlap.getContents()
+for k in em.keySet():
+    print "\t",k,"\t",em[k]
+print "DUMPED!"
+
 
 class Scene(vob.buoy.buoymanager.RealBuoyManager):
     def __init__(self):
Index: fenfire/org/fenfire/impl/SimpleNodeContent.java
diff -u fenfire/org/fenfire/impl/SimpleNodeContent.java:1.8 
fenfire/org/fenfire/impl/SimpleNodeContent.java:1.9
--- fenfire/org/fenfire/impl/SimpleNodeContent.java:1.8 Sun Apr 27 16:19:24 2003
+++ fenfire/org/fenfire/impl/SimpleNodeContent.java     Mon Apr 28 04:57:27 2003
@@ -25,7 +25,7 @@
 
 public class SimpleNodeContent implements NodeContent {
     public static boolean dbg = true;
-public static final String rcsid = "$Id: SimpleNodeContent.java,v 1.8 
2003/04/27 20:19:24 tjl Exp $";
+public static final String rcsid = "$Id: SimpleNodeContent.java,v 1.9 
2003/04/28 08:57:27 tjl Exp $";
     private static void pa(String s) { System.out.println("AlphContent: "+s); }
     SpanReader spanReader;
 
@@ -78,14 +78,17 @@
        TripleSetObs obs = new TripleSetObs() {
            public void chg() { rereadIndex(); }
            public void chgTriple(int dir, Object o1, Object o2, Object o3) {
-               if(dbg) pa("SNC TRINDEX: Single triple chgd!!!!");
-               trIndex.set(dir, o1, o3);
+               if(dbg) pa("SNC TRINDEX: Single triple chgd!!!! ");
+               Object content = func.f(fen.constgraph, o1);
+               if(dbg) pa("SNC TRINDEX: "+o1+" "+content);
+               trIndex.set(dir, o1, content);
            }
        };
        trIndex.clear();
        for(Iterator i = fen.constgraph.findN_X1A_Iter(FF.content, obs); 
i.hasNext();) {
            Object node = i.next();
-           Object content = fen.constgraph.find1_11X(node, FF.content);
+           Object content = func.f(fen.constgraph, node);
+           if(dbg) pa("SNC content: "+node+" "+content);
            trIndex.set(1, node, content);
        }
     }
Index: fenfire/org/fenfire/index/impl/EnfiladeOverlapIndex.java
diff -u fenfire/org/fenfire/index/impl/EnfiladeOverlapIndex.java:1.3 
fenfire/org/fenfire/index/impl/EnfiladeOverlapIndex.java:1.4
--- fenfire/org/fenfire/index/impl/EnfiladeOverlapIndex.java:1.3        Sun Apr 
27 16:23:01 2003
+++ fenfire/org/fenfire/index/impl/EnfiladeOverlapIndex.java    Mon Apr 28 
04:57:27 2003
@@ -50,7 +50,7 @@
     }
 
     public void set(int dir, Object entryName, Object value) {
-       if(value == null) {
+       if(value == null || dir < 0) {
            map.remove(entryName);
            return;
        }
Index: fenfire/org/fenfire/view/CanvasView2D.java
diff -u fenfire/org/fenfire/view/CanvasView2D.java:1.6 
fenfire/org/fenfire/view/CanvasView2D.java:1.7
--- fenfire/org/fenfire/view/CanvasView2D.java:1.6      Fri Apr 25 10:43:04 2003
+++ fenfire/org/fenfire/view/CanvasView2D.java  Mon Apr 28 04:57:27 2003
@@ -20,18 +20,20 @@
 /** A View2D on a PP-like canvas.
  */
 public class CanvasView2D extends View2D {
-public static final String rcsid = "$Id: CanvasView2D.java,v 1.6 2003/04/25 
14:43:04 tjl Exp $";
+public static final String rcsid = "$Id: CanvasView2D.java,v 1.7 2003/04/28 
08:57:27 tjl Exp $";
     public static boolean dbg = true;
     private static void pa(String s) { System.out.println("SpatialPlane::"+s); 
}
     
     private Fen fen;
     private NodeFunction nodeView;
+    public boolean cull;
 
     public CanvasView2D(Fen fen, NodeFunction nodeView) {
        this.fen = fen;
        this.nodeView = nodeView;
     }
 
+
     public void render(VobScene vs, Object container,
                       int matchingParent, int box2screen, int box2plane)
     {
@@ -41,6 +43,7 @@
 
        Iterator iter = fen.constgraph.findN_11X_Iter(container, 
                                                      PP.contains);
+
        while (iter.hasNext()) {
            Object n = iter.next();
 
@@ -58,6 +61,9 @@
                                x, y, 1, 1,
                            p.getWidth(), p.getHeight());
            vs.matcher.add(matchingParent, cs, matchKey);
+           if(cull) {
+               cs = vs.cullCS(cs, "CULL", box2screen);
+           }
            p.place(vs, cs);
        }
     }
Index: fenfire/org/fenfire/view/PageScrollView2D.java
diff -u fenfire/org/fenfire/view/PageScrollView2D.java:1.5 
fenfire/org/fenfire/view/PageScrollView2D.java:1.6
--- fenfire/org/fenfire/view/PageScrollView2D.java:1.5  Sun Apr 27 16:19:25 2003
+++ fenfire/org/fenfire/view/PageScrollView2D.java      Mon Apr 28 04:57:27 2003
@@ -33,6 +33,8 @@
  *  The <code>plane</code> object passed to <code>render()</code>
  *  is the <code>PageScrollBlock</code> object.
  *  XXX cache?
+ *  <p>
+ *  XXX!!! NO CULLING!
  */
 public class PageScrollView2D extends View2D {
 
@@ -64,7 +66,7 @@
        PageSpanLayout layout = (PageSpanLayout)scroll2layout.f(null, block);
        int paper2box = vs.invertCS(box2paper, "PGSVinv");
        int paper2screen = vs.concatCS(box2screen, "PGSVconc", paper2box);
-       layout.place(vs, paper2screen, 1, 1, box2screen, matchingParent);
+       layout.place(vs, paper2screen, .05f, 1000f, -1 /*box2screen*/, 
matchingParent);
     }
 
 
Index: fenfire/org/fenfire/view/buoy/MainNode2D.java
diff -u fenfire/org/fenfire/view/buoy/MainNode2D.java:1.11 
fenfire/org/fenfire/view/buoy/MainNode2D.java:1.12
--- fenfire/org/fenfire/view/buoy/MainNode2D.java:1.11  Sun Apr 27 07:40:27 2003
+++ fenfire/org/fenfire/view/buoy/MainNode2D.java       Mon Apr 28 04:57:27 2003
@@ -37,26 +37,19 @@
  *  a View2D. This class implements the keyboard and mouse
  *  command for moving on the spatial plane.
  */
-public class MainNode2D implements BuoyViewMainNode {
+public class MainNode2D extends AbstractMainNode2D {
     public static boolean dbg = true;
     private static void pa(String s) { System.out.println(s); }
     
-    protected Object plane;
-    protected View2D view2d;
-
-    protected float panX, panY;
     protected float zoom;
 
     private float tmp[] = new float[2];
 
-    public View2D getView2D() { return view2d; }
-
     /** Create a main node with a given plane, pan, and zoom.
      */
     public MainNode2D(Object plane, View2D view2d,
                      float panX, float panY, float zoom) {
-       this.plane = plane; this.view2d = view2d;
-       this.panX = panX; this.panY = panY;
+       super(plane, view2d, panX, panY);
        this.zoom = zoom;
     }
     
@@ -71,19 +64,15 @@
        }
     }
 
-    private int box2screen = -1;
-    private int box2paper = -1;
-    private float w, h;
-
     public void renderMain(VobScene vs, int into) {
        vs.coords.getSqSize(into, tmp);
-       w = tmp[0]; h = tmp[1];
+       boxw = tmp[0]; boxh = tmp[1];
        box2screen = into;
 
        // create the coordsys, then position it through other method
        // this way, we only have the positioning code in one place
        box2paper = vs.coords.orthoBox(0,0,0,0,0,0,0,0);
-       vs.matcher.add(box2screen, box2paper, "MainNode2D_B2P");
+       vs.matcher.add(box2screen, box2paper, "BOX2PAPER");
        setZoomPan(vs, box2paper);
 
        view2d.render(vs, plane, into, into, box2paper);
@@ -96,8 +85,8 @@
      */
     private void setZoomPan(VobScene vs, int mainFrame) {
        vs.coords.setOrthoBoxParams(box2paper, 0, 
-                       panX-w/zoom/2, panY-h/zoom/2, 
-                                   1/zoom, 1/zoom, w, h);
+                       panX-boxw/zoom/2, panY-boxh/zoom/2, 
+                                   1/zoom, 1/zoom, boxw, boxh);
     }
 
     public void keystroke(String s) {
@@ -110,19 +99,6 @@
     private float m_state_zoom = -1;
     private float pan[] = new float[2];
 
-    private float[] v2dwh = new float[2];
-
-    /** Clip the values in Pan to the size of the canvas.
-     */
-    private void clipPan() {
-       view2d.getSize(plane, v2dwh);
-       if(v2dwh[0] >= 0) {
-           if(panX < 0) panX = 0;
-           if(panX > v2dwh[0]) panX = v2dwh[0];
-           if(panY < 0) panY = 0;
-           if(panY > v2dwh[1]) panY = v2dwh[1];
-       }
-    }
 
     public boolean mouse(MouseEvent e, VobScene oldVobScene) {
        if (e.getID() == MouseEvent.MOUSE_PRESSED) {
@@ -157,20 +133,7 @@
        // Move around by clicking
        if(m_state[2] == e.BUTTON1_MASK && 
           e.getID() == MouseEvent.MOUSE_CLICKED){
-
-           float[] pt = new float[] { e.getX(), e.getY(), 0 };
-
-           if(dbg) pa("P1: "+pt[0]+" "+pt[1]+" "+pt[2]);
-           oldVobScene.coords.inverseTransformPoints3(
-                   box2screen, pt, pt);
-           if(dbg) pa("P2: "+pt[0]+" "+pt[1]+" "+pt[2]);
-           oldVobScene.coords.transformPoints3(box2paper, pt, pt);
-           if(dbg) pa("P3: "+pt[0]+" "+pt[1]+" "+pt[2]);
-
-           panX = pt[0]; panY = pt[1];
-           clipPan();
-               
-           AbstractUpdateManager.chg();
+           mouseMoveClick(e.getX(), e.getY(), oldVobScene);
            return false;
        }
 
Index: fenfire/org/fenfire/view/buoy/NodeType2D.java
diff -u fenfire/org/fenfire/view/buoy/NodeType2D.java:1.5 
fenfire/org/fenfire/view/buoy/NodeType2D.java:1.6
--- fenfire/org/fenfire/view/buoy/NodeType2D.java:1.5   Sun Apr 27 07:40:27 2003
+++ fenfire/org/fenfire/view/buoy/NodeType2D.java       Mon Apr 28 04:57:27 2003
@@ -38,18 +38,15 @@
 /** A BuoyViewNodeType showing areas of 2D planes rendered through
  *  a View2D.
  */
-public class NodeType2D implements BuoyViewNodeType {
+public class NodeType2D extends AbstractNodeType2D {
     public static boolean dbg = false;
     private static void pa(String s) { System.out.println(s); }
 
     public static int effigy = 0;
     
-    protected View2D view2d;
-
-    public View2D getView2D() { return view2d; }
 
     public NodeType2D(View2D view2d) {
-       this.view2d = view2d;
+       super(view2d);
     }
     
     public Object getSize(Object linkId, Object anchor,
@@ -66,8 +63,6 @@
        if(effigy != 0) {
            Vob eff = org.nongnu.libvob.gl.GLRen.createQuad(effigy-1);
            vs.map.put( eff, into);
-           //vs.map.put(new org.nongnu.libvob.vobs.RectBgVob(
-       //              Color.green, true, Color.black), into);
            return into;
        }
        Pair p = (Pair)anchor;
@@ -88,21 +83,10 @@
 //     int box2paper = vs.coords.orthoBox(0, 0, 0, 0, 
 //                                        1, 1, 
 //                                        w, h);
-       vs.matcher.add(into, box2paper, "BUOYPAP");
+       vs.matcher.add(into, box2paper, "BOX2PAPER");
 
        view2d.render(vs, plane, into, into, box2paper);
 
        return vs.coords.translate(into, w/2f, h/2f);
-    }
-
-    public BuoyViewMainNode createMainNode(Object linkId, 
-                                          Object anchor) {
-       Pair p = (Pair)anchor;
-       Object plane = p.first;
-       Rectangle rect = (Rectangle)p.second;
-
-       return new MainNode2D(plane, view2d,
-                             rect.x+rect.width/2f,
-                             rect.y+rect.height/2f, 1);
     }
 }
Index: fenfire/org/fenfire/view/buoy/PPConnector.java
diff -u fenfire/org/fenfire/view/buoy/PPConnector.java:1.3 
fenfire/org/fenfire/view/buoy/PPConnector.java:1.4
--- fenfire/org/fenfire/view/buoy/PPConnector.java:1.3  Sun Apr 27 07:40:27 2003
+++ fenfire/org/fenfire/view/buoy/PPConnector.java      Mon Apr 28 04:57:27 2003
@@ -16,7 +16,7 @@
 /** Make the kinds of links familiar from PP structure.
  */
 public class PPConnector implements BuoyViewConnector {
-public static final String rcsid = "$Id: PPConnector.java,v 1.3 2003/04/27 
11:40:27 tjl Exp $";
+public static final String rcsid = "$Id: PPConnector.java,v 1.4 2003/04/28 
08:57:27 tjl Exp $";
     public static boolean dbg = false;
     private static void pa(String s) { System.out.println("PPLinker:"+s); }
 
@@ -44,6 +44,8 @@
            if(!(next instanceof Pair)) continue;
            Pair pair = (Pair)next;
            int cs = m.getCS(parentCs, pair);
+           int culledCS = m.getCS(cs, "CULL");
+           if(culledCS > 0) cs = culledCS;
 
            Object container = pair.first;
            Object node = pair.second;
@@ -55,24 +57,25 @@
            while (iter.hasNext()) {
                Object obj = iter.next();
                Object plane = fen.constgraph.find1_X11(PP.contains, obj);
-               Pair anchor = new Pair(plane, getRect(node));
+               Pair anchor = new Pair(plane, getRect(obj));
                l.link(1, cs, nodeType, new Pair(node, obj), anchor);
            }
 
            // Left links!
            iter = fen.constgraph.findN_X11_Iter(PP.association, node);
            while (iter.hasNext()) {
-               Object sub = iter.next();
-               Object plane = fen.constgraph.find1_X11(PP.contains, sub);
-               Pair anchor = new Pair(plane, getRect(node));
-               l.link(-1, cs, nodeType, new Pair(sub, node), anchor);
+               Object obj = iter.next();
+               Object plane = fen.constgraph.find1_X11(PP.contains, obj);
+               Pair anchor = new Pair(plane, getRect(obj));
+               l.link(-1, cs, nodeType, new Pair(obj, node), anchor);
            }
        }
     }
 
+    public int dx = -100, dy = -200, w = 400, h = 400;
     protected java.awt.Rectangle getRect(Object node) {
        int x = RDFUtil.getInt(fen, node, SPATIAL.coordX);
        int y = RDFUtil.getInt(fen, node, SPATIAL.coordY);
-       return new java.awt.Rectangle(x-20, y-20, 240, 140);
+       return new java.awt.Rectangle(x+dx, y+dy, w, h);
     }
 }
Index: fenfire/org/fenfire/view/buoy/TransclusionConnector.java
diff -u fenfire/org/fenfire/view/buoy/TransclusionConnector.java:1.3 
fenfire/org/fenfire/view/buoy/TransclusionConnector.java:1.4
--- fenfire/org/fenfire/view/buoy/TransclusionConnector.java:1.3        Sun Apr 
27 16:19:25 2003
+++ fenfire/org/fenfire/view/buoy/TransclusionConnector.java    Mon Apr 28 
04:57:27 2003
@@ -20,15 +20,15 @@
 /** Hang transclusion buoys.
  */
 public class TransclusionConnector implements BuoyViewConnector {
-public static final String rcsid = "$Id: TransclusionConnector.java,v 1.3 
2003/04/27 20:19:25 tjl Exp $";
+public static final String rcsid = "$Id: TransclusionConnector.java,v 1.4 
2003/04/28 08:57:27 tjl Exp $";
     public static boolean dbg = true;
     private static void pa(String s) { System.out.println("PPLinker:"+s); }
 
 
     private Fen fen;
 
-    public NodeType2D pageImageScrollNodeType;
-    public NodeType2D normalNodeNodeType;
+    public AbstractNodeType2D pageImageScrollNodeType;
+    public AbstractNodeType2D normalNodeNodeType;
 
     // Function: node -> pair(scrollblock, rect)
     private class SB4Node implements NodeFunction {
@@ -76,6 +76,8 @@
                if(anchor == null) continue;
 
                int cs =m.getCS(parentCs, key);
+               int culledCS = m.getCS(cs, "CULL");
+               if(culledCS > 0) cs = culledCS;
 
                l.link(1, cs, pageImageScrollNodeType,
                            new Pair(node, ((Pair)anchor).first), 




reply via email to

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