[Top][All Lists]
[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),