gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] gzz gzz/view/PageSpanCellView.java test/gzz/gfx...


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz gzz/view/PageSpanCellView.java test/gzz/gfx...
Date: Wed, 29 Jan 2003 07:16:41 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        03/01/29 07:16:39

Modified files:
        gzz/view       : PageSpanCellView.java 
        test/gzz/gfx/gl: pagespanpaper.test 
        test/gzz/view  : pagespancellview.test 

Log message:
        PagespanCellview size

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/view/PageSpanCellView.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/gzz/gfx/gl/pagespanpaper.test.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/gzz/view/pagespancellview.test.diff?tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: gzz/gzz/view/PageSpanCellView.java
diff -u gzz/gzz/view/PageSpanCellView.java:1.3 
gzz/gzz/view/PageSpanCellView.java:1.4
--- gzz/gzz/view/PageSpanCellView.java:1.3      Wed Jan 29 04:50:17 2003
+++ gzz/gzz/view/PageSpanCellView.java  Wed Jan 29 07:16:39 2003
@@ -23,37 +23,28 @@
 
     public boolean useBg = true;
 
+    Enfilade1D cached;
+    PageSpan[] pages;
+    PageSpanPaper[] psps;
+    float[] xywh;
+    float w;
+    float h;
+    float xoffs, yoffs;
 
-
-    /** Place the pages into the given coordinate system at the default scale,
-     * centered at the given location.
-     */
-    /*
-    public void placeCentered(Cell c, VobScene vs, int into, ViewContext 
context, PageSpan center) {
-       placeCentered(
-           cell.space.cellTexter.getEnfilade(cell, None),
-           vs, into, context, center);
-    }
-    */
-
-    /** Place the given enfilade in the coordinate system.
-     * @param center The pagespan which defines where the origin will be
-     * @param importance The importance to be given to the image requests
-     * @param pixelscale The pixel scale at which the image requests are made
-     */
-    public void placeCentered(Enfilade1D enf, VobScene vs, int into, 
-                               ViewContext context, PageSpan center,
-                               float importance, float pixelscale) {
+    public void getSize(Enfilade1D enf, ViewContext context, float[] out, 
+                           PageSpan center) {
        int npages = enf.length();
 
-       PageSpan[] pages = new PageSpan[npages];
-       PageSpanPaper[] psps = new PageSpanPaper[npages];
-       float[] xywh = new float[npages * 4]; // x, y, w, h in PAPER coordinates
-       float w = 0;
+       pages = new PageSpan[npages];
+       psps = new PageSpanPaper[npages];
+       xywh = new float[npages * 4]; // x, y, w, h in PAPER coordinates
+       w = 0;
+       h = 0;
 
        boolean foundCenter = false;
-       float xoffs = 0;
-       float yoffs = 0;
+       xoffs = 0;
+       yoffs = 0;
+
        for(int p = 0; p < npages; p++) {
            pages[p] = (PageSpan)enf.sub(p, p+1).getList().get(0); // XXX 
INEFFICIENT!
            GLSpanner.SpanRect rect = GLSpanner.getSpanRect(pages[p]);
@@ -86,7 +77,43 @@
                
            }
            w += scale * xywh[4*p + 2];
+           if(h < scale * xywh[4*p + 3])
+               h = scale * xywh[4*p + 3];
+       }
+
+       if(out != null) {
+           out[0] = w;
+           out[1] = h;
        }
+
+       cached = enf;
+
+    }
+
+
+
+    /** Place the pages into the given coordinate system at the default scale,
+     * centered at the given location.
+     */
+    /*
+    public void placeCentered(Cell c, VobScene vs, int into, ViewContext 
context, PageSpan center) {
+       placeCentered(
+           cell.space.cellTexter.getEnfilade(cell, None),
+           vs, into, context, center);
+    }
+    */
+
+    /** Place the given enfilade in the coordinate system.
+     * @param center The pagespan which defines where the origin will be
+     * @param importance The importance to be given to the image requests
+     * @param pixelscale The pixel scale at which the image requests are made
+     */
+    public void placeCentered(Enfilade1D enf, VobScene vs, int into, 
+                               ViewContext context, PageSpan center,
+                               float importance, float pixelscale) {
+       if(cached != enf)
+           getSize(enf, context, null, center);
+       int npages = enf.length();
 
        // Now we can draw the pages.
        float curx = -xoffs;
Index: gzz/test/gzz/gfx/gl/pagespanpaper.test
diff -u gzz/test/gzz/gfx/gl/pagespanpaper.test:1.4 
gzz/test/gzz/gfx/gl/pagespanpaper.test:1.5
--- gzz/test/gzz/gfx/gl/pagespanpaper.test:1.4  Mon Jan 27 12:26:05 2003
+++ gzz/test/gzz/gfx/gl/pagespanpaper.test      Wed Jan 29 07:16:39 2003
@@ -70,7 +70,8 @@
 
     for i in range(0, 30):
        pagespan.getTexture(1, 5000)
-       gzz.client.AbstractUpdateManager.tickIdle()
+       for j in range(0, 10):
+           gzz.client.AbstractUpdateManager.tickIdle()
        render(vs)
 
        # check the rendered image's color
Index: gzz/test/gzz/view/pagespancellview.test
diff -u gzz/test/gzz/view/pagespancellview.test:1.3 
gzz/test/gzz/view/pagespancellview.test:1.4
--- gzz/test/gzz/view/pagespancellview.test:1.3 Wed Jan 29 04:50:17 2003
+++ gzz/test/gzz/view/pagespancellview.test     Wed Jan 29 07:16:39 2003
@@ -1,6 +1,7 @@
 from __future__ import nested_scopes
 import sys
 import traceback
+import jarray
 needGL()
 
 import gzz
@@ -60,6 +61,15 @@
     failUnlessEqual(s.width, 612)
     failUnlessEqual(s.height, 792)
 
+def testSize():
+
+    s = sc.getCurrent().getSize()
+    z = jarray.zeros(2, "f")
+    PageSpanCellView().getSize(enfMaker.makeEnfilade(sc.getCurrent()), None, 
z, None)
+
+    failUnlessApprox(.1, z[0], 2 * 612)
+    failUnlessApprox(.1, z[1], 792)
+
 def testSimply():
     """Test that the view renders something
 
@@ -68,7 +78,8 @@
     passed = 0
 
     for i in range(0, 50):
-       gzz.client.AbstractUpdateManager.tickIdle()
+       for j in range(0, 20):
+           gzz.client.AbstractUpdateManager.tickIdle()
 
        vs = getvs()
        vs.map.put(SolidBgVob(Color.yellow))
@@ -90,7 +101,7 @@
            passed = 1
            break
 
-       Thread.sleep(300)
+       Thread.sleep(200)
 
     failUnlessEqual(passed, 1, "didn't get the image " + exc)
 




reply via email to

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