gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] gzz gfx/demo/xupdf.py gfx/libcoords/Coords.cxx ...


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz gfx/demo/xupdf.py gfx/libcoords/Coords.cxx ...
Date: Sun, 20 Oct 2002 05:33:18 -0400

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        02/10/20 05:33:17

Modified files:
        gfx/demo       : xupdf.py 
        gfx/libcoords  : Coords.cxx 
        gfx/libutil    : effects.py 
        gzz/gfx/gl     : GLVobMap.java 
        gzz/view       : pagespanview.py xubuoy.py 
        test/gzz/gfx/gl: glvobcoorder.test 
        test/tools     : gfx.py 

Log message:
        Among twiddles, really important test and bugfix for coordsys 
concatenation

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/xupdf.py.diff?tr1=1.53&tr2=1.54&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libcoords/Coords.cxx.diff?tr1=1.39&tr2=1.40&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libutil/effects.py.diff?tr1=1.18&tr2=1.19&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/gfx/gl/GLVobMap.java.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/view/pagespanview.py.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/view/xubuoy.py.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/gzz/gfx/gl/glvobcoorder.test.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/tools/gfx.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: gzz/gfx/demo/xupdf.py
diff -c gzz/gfx/demo/xupdf.py:1.53 gzz/gfx/demo/xupdf.py:1.54
*** gzz/gfx/demo/xupdf.py:1.53  Fri Oct  4 02:54:11 2002
--- gzz/gfx/demo/xupdf.py       Sun Oct 20 05:33:17 2002
***************
*** 1,15 ****
  from __future__ import nested_scopes
  from gzz.index import XuLink
  from gzz.gfx.gl import Stencil
- from gzz.vob.buoy import NadirAngler
  
  from jarray import array, zeros
  
- from gzz.view import pagespanview
- from gfx.libutil import effects
- reload(pagespanview)
- reload(effects)
- 
  # Now, this is the start of the REAL demo, the one
  # with Xanadu links between PDF and text.
  
--- 1,13 ----
  from __future__ import nested_scopes
+ 
+ import gzz.view.xubuoy
+ reload(gzz.view.xubuoy)
+ 
  from gzz.index import XuLink
  from gzz.gfx.gl import Stencil
  
  from jarray import array, zeros
  
  # Now, this is the start of the REAL demo, the one
  # with Xanadu links between PDF and text.
  
***************
*** 69,77 ****
      cell = home.N(d1)
      space.cellTexter.setEnfilade(cell, p)
      cells.append(cell)
- 
- import gzz.view.xubuoy
- reload(gzz.view.xubuoy)
  
  #execfile("gzz/view/xubuoy.py")
  
--- 67,72 ----
Index: gzz/gfx/libcoords/Coords.cxx
diff -c gzz/gfx/libcoords/Coords.cxx:1.39 gzz/gfx/libcoords/Coords.cxx:1.40
*** gzz/gfx/libcoords/Coords.cxx:1.39   Sat Oct 19 10:27:02 2002
--- gzz/gfx/libcoords/Coords.cxx        Sun Oct 20 05:33:17 2002
***************
*** 622,629 ****
            return super->canPerformGL() && super2->canPerformGL();
        }
        virtual bool performGL() { 
!           if(!super2->performGL()) return false;
!           return super->performGL();
        }
        virtual bool shouldBeDrawn() {
            return super->shouldBeDrawn() && super2->shouldBeDrawn();
--- 622,629 ----
            return super->canPerformGL() && super2->canPerformGL();
        }
        virtual bool performGL() { 
!           if(!super->performGL()) return false;
!           return super2->performGL();
        }
        virtual bool shouldBeDrawn() {
            return super->shouldBeDrawn() && super2->shouldBeDrawn();
Index: gzz/gfx/libutil/effects.py
diff -c gzz/gfx/libutil/effects.py:1.18 gzz/gfx/libutil/effects.py:1.19
*** gzz/gfx/libutil/effects.py:1.18     Sat Oct 19 10:27:22 2002
--- gzz/gfx/libutil/effects.py  Sun Oct 20 05:33:17 2002
***************
*** 1,5 ****
  from gzz.gfx.gl import GL, GLRen, GLSpans, Paper, GLCache
- from gzz.vob.buoy import NadirAngler
  from gzz.vob.buoy import Buoy3Floater, Buoy4Floater
  import math
  
--- 1,4 ----
Index: gzz/gzz/gfx/gl/GLVobMap.java
diff -c gzz/gzz/gfx/gl/GLVobMap.java:1.13 gzz/gzz/gfx/gl/GLVobMap.java:1.14
*** gzz/gzz/gfx/gl/GLVobMap.java:1.13   Wed Oct  2 07:43:44 2002
--- gzz/gzz/gfx/gl/GLVobMap.java        Sun Oct 20 05:33:17 2002
***************
*** 25,31 ****
  import java.awt.*;
  
  public class GLVobMap implements VobMap {
! public static final String rcsid = "$Id: GLVobMap.java,v 1.13 2002/10/02 
11:43:44 humppake Exp $";
      public static boolean dbg = false;
      private static void pa(String s) { System.err.println(s); }
  
--- 25,31 ----
  import java.awt.*;
  
  public class GLVobMap implements VobMap {
! public static final String rcsid = "$Id: GLVobMap.java,v 1.14 2002/10/20 
09:33:17 tjl Exp $";
      public static boolean dbg = false;
      private static void pa(String s) { System.err.println(s); }
  
***************
*** 34,46 ****
      public GLVobMap(gzz.client.gl.GLScreen screen) { 
        this.screen = screen; 
        if(dbg) pa("New GLVobMap for "+screen+": "+this);
      }
  
-     int[] list = new int[10000];
-     int curs = 0;
-     int[] cs = new int[10000];
-     Object[] vobs = new Vob[10000];
-     int nvobs = 0;
      public void put(Vob3 vob, int coordsys1, int coordsys2, int coordsys3) {
        curs = vob.addToListGL(screen, list, curs, coordsys1, 
                               coordsys2, coordsys3);
--- 34,56 ----
      public GLVobMap(gzz.client.gl.GLScreen screen) { 
        this.screen = screen; 
        if(dbg) pa("New GLVobMap for "+screen+": "+this);
+       clear();
+     }
+ 
+     int[] list;
+     int curs;
+     int[] cs;
+     Object[] vobs;
+     int nvobs;
+ 
+     public void clear() {
+       list = new int[10000];
+       curs = 0;
+       cs = new int[10000];
+       vobs = new Vob[10000];
+       nvobs = 0;
      }
  
      public void put(Vob3 vob, int coordsys1, int coordsys2, int coordsys3) {
        curs = vob.addToListGL(screen, list, curs, coordsys1, 
                               coordsys2, coordsys3);
***************
*** 81,85 ****
--- 91,97 ----
        }
        return null;
      }
+ 
+ 
  }
  
Index: gzz/gzz/view/pagespanview.py
diff -c gzz/gzz/view/pagespanview.py:1.13 gzz/gzz/view/pagespanview.py:1.14
*** gzz/gzz/view/pagespanview.py:1.13   Fri Oct  4 02:54:11 2002
--- gzz/gzz/view/pagespanview.py        Sun Oct 20 05:33:17 2002
***************
*** 1,8 ****
  from __future__ import nested_scopes
  from gzz.gfx.gl import GL, GLRen, GLSpans, Paper, GLCache, Stencil
  import gfx.libpaper.papermill
! from gfx.libutil import nvcode
! from gfx.libutil import effects
  import gzz
  import java
  from jarray import zeros
--- 1,7 ----
  from __future__ import nested_scopes
  from gzz.gfx.gl import GL, GLRen, GLSpans, Paper, GLCache, Stencil
  import gfx.libpaper.papermill
! from gfx.libutil import nvcode, effects
  import gzz
  import java
  from jarray import zeros
Index: gzz/gzz/view/xubuoy.py
diff -c gzz/gzz/view/xubuoy.py:1.24 gzz/gzz/view/xubuoy.py:1.25
*** gzz/gzz/view/xubuoy.py:1.24 Sat Oct 19 10:28:06 2002
--- gzz/gzz/view/xubuoy.py      Sun Oct 20 05:33:17 2002
***************
*** 5,14 ****
  
  from gzz.index import XuLink
  from gzz.gfx.gl import Stencil
- from gzz.vob.buoy import NadirAngler
  
  from jarray import array, zeros
  
  from gzz.view import pagespanview
  from gfx.libutil import effects
  
--- 5,15 ----
  
  from gzz.index import XuLink
  from gzz.gfx.gl import Stencil
  
  from jarray import array, zeros
  
+ # import gzz.view.pagespanview
+ # import gfx.libutil.effects
  from gzz.view import pagespanview
  from gfx.libutil import effects
  
***************
*** 143,149 ****
                        maincs, globalview = None,
                        globalusefancypaper = 0,
                        globalshowtessel = 0,
!                       globalspan = None):
        if not self.cell:
            return
        cell = self.cell
--- 144,151 ----
                        maincs, globalview = None,
                        globalusefancypaper = 0,
                        globalshowtessel = 0,
!                       globalspan = None,
!                       nadircs = None):
        if not self.cell:
            return
        cell = self.cell
***************
*** 168,173 ****
--- 170,180 ----
  
        cs1 = floater.buoyCoordsys(main_end_cs, self.cell.getId())
  
+       if nadircs != None:
+           cs1_nad = vs.coords.nadirOrigin(cs1, nadircs)
+           vs.matcher.addSub(cs1, cs1_nad, "N")
+           cs1 = cs1_nad
+ 
  
        # Then, make the buoy coordsys
  
***************
*** 276,282 ****
  
        self.rad = screensize[0] * 5/12  
  
!       self.nadir = NadirAngler(self.ctrx, screensize[1]*2)
        self.clip = 0
        self.selectCS = None
        self.currentvs = None
--- 283,289 ----
  
        self.rad = screensize[0] * 5/12  
  
!       self.nadir = (self.ctrx, screensize[1]*2)
        self.clip = 0
        self.selectCS = None
        self.currentvs = None
***************
*** 480,485 ****
--- 487,494 ----
      def scene(self, vs):
        bg(vs)
  
+       nadircs = vs.translateCS(0, "NAD", *self.nadir)
+ 
        # projx = self.ctrx + 1.5*self.rad
        # fbuoyparams = (self.ctrx, self.ctry, self.rad, 
        #                       projx, self.ctry, 1)
***************
*** 554,560 ****
                        globalview = self.view,
                        globalusefancypaper = self.usefancypaper,
                        globalshowtessel = self.showtessel,
!                       globalspan = self.span)
                self.buoys.append(b)
            for backlink in globalback:
                b = XuPDFBuoy(0,(getattr(backlink,"from"), backlink.to),
--- 563,570 ----
                        globalview = self.view,
                        globalusefancypaper = self.usefancypaper,
                        globalshowtessel = self.showtessel,
!                       globalspan = self.span,
!                       nadircs = nadircs)
                self.buoys.append(b)
            for backlink in globalback:
                b = XuPDFBuoy(0,(getattr(backlink,"from"), backlink.to),
***************
*** 563,569 ****
                        globalview = self.view,
                        globalusefancypaper = self.usefancypaper,
                        globalshowtessel = self.showtessel,
!                       globalspan = self.span)
                self.buoys.append(b)
        self.currentvs = vs
        self.selectCS = None
--- 573,580 ----
                        globalview = self.view,
                        globalusefancypaper = self.usefancypaper,
                        globalshowtessel = self.showtessel,
!                       globalspan = self.span,
!                       nadircs = nadircs)
                self.buoys.append(b)
        self.currentvs = vs
        self.selectCS = None
Index: gzz/test/gzz/gfx/gl/glvobcoorder.test
diff -c gzz/test/gzz/gfx/gl/glvobcoorder.test:1.11 
gzz/test/gzz/gfx/gl/glvobcoorder.test:1.12
*** gzz/test/gzz/gfx/gl/glvobcoorder.test:1.11  Sat Oct 19 10:29:54 2002
--- gzz/test/gzz/gfx/gl/glvobcoorder.test       Sun Oct 20 05:33:17 2002
***************
*** 1,37 ****
  needGL()
  
  from gzz.gfx.gl import GLVobCoorder, GL
  from jarray import array, zeros
  
! def checkTrans(c, cs, srclist, dstlist, delta=0):
      src = array(srclist, 'f')
      dst = zeros(len(src), 'f')
!     c.transformPoints3(cs, src, dst)
      for i in range(0, len(src)):
        failIf(abs(dst[i]-dstlist[i]) > delta, str([srclist, dstlist, dst, i, 
dst[i], dstlist[i]]))
  
! def checkInterp(c1, c2, i, fract, cs, srclist, dstlist, delta=0):
      src = array(srclist, 'f')
      dst = zeros(len(src), 'f')
!     failUnless(c1.transformPoints3_interp(i, c2, fract, 0, cs, src, dst))
      for i in range(0, len(src)):
        failIf(abs(dst[i]-dstlist[i]) > delta, str([srclist, dstlist, dst, i, 
dst[i], dstlist[i]]))
  
  
  def testTransform():
-     c = GLVobCoorder()
  
      cs1 = c.ortho(0, 5, 10, 15, 0.5, 1)
!     checkTrans(c, cs1, [0, 0, 0, 1, 1, 1], [10, 15, 5, 10.5, 16, 6])
  
      cs2 = c.scale(0, 2, 3, 4)
!     checkTrans(c, cs2, [0, 0, 0, 1, 1, 1], [0, 0, 0, 2, 3, 4])
  
      cs3 = c.distort(0, 0, 0, 0.1, 0.1, 20, 5)
!     checkTrans(c, cs3, [0, 0, 0, 0.001, 0.001, 1], [0, 0, 0, 0.02, 0.02, 1], 
delta=0.00001)
  
      cs = c.concat(cs1, cs2)
!     checkTrans(c, cs, [0, 0, 0, 1, 1, 1, 2, 2, 2], [10, 15, 5, 11, 18, 9, 12, 
21, 13])
  
  def checkInverse(c, cs):
      # unit cube
--- 1,71 ----
  needGL()
  
+ from gzz.vob import *
+ from java.awt import Color
+ 
  from gzz.gfx.gl import GLVobCoorder, GL
+ from gzz.gfx.gl import GL, GLRen, GLCache, PaperMill
  from jarray import array, zeros
+ from test.tools.gfx import *
+ 
+ vs = getvs()
+ c = vs.coords
+ 
+ interp = zeros(1000, 'i')
+ interp[0] = 999
+ vs1 = getvs()
+ c1 = vs1.coords
+ vs2 = getvs()
+ c2 = vs2.coords
  
! def checkTrans(vs, cs, srclist, dstlist, delta=0, alsoGL = 1):
      src = array(srclist, 'f')
      dst = zeros(len(src), 'f')
!     vs.coords.transformPoints3(cs, src, dst)
      for i in range(0, len(src)):
        failIf(abs(dst[i]-dstlist[i]) > delta, str([srclist, dstlist, dst, i, 
dst[i], dstlist[i]]))
+     if alsoGL:
+       for i in range(0, len(src), 3):
+           vs.map.clear()
+           vs.map.put(SolidBgVob(Color.red))
+           d = """
+               PointSize 3
+               Color 1 1 1
+               Begin POINTS
+               Vertex %s %s %s
+               End
+           """ % (src[i], src[i+1], src[i+2])
+           print "TEST: ",d
+           vs.map.put(GLCache.getCallListCoorded(d), cs)
+           render(vs)
+           checkNotAvgColor(
+               int(dstlist[i])-1, int(dstlist[i+1])-1,
+               3, 3, (255, 0, 0), delta=50)
  
!           
! 
! def checkInterp(vs1, vs2, i, fract, cs, srclist, dstlist, delta=0):
      src = array(srclist, 'f')
      dst = zeros(len(src), 'f')
!     failUnless(vs1.coords.transformPoints3_interp(i, vs2.coords, 
!                   fract, 0, cs, src, dst))
      for i in range(0, len(src)):
        failIf(abs(dst[i]-dstlist[i]) > delta, str([srclist, dstlist, dst, i, 
dst[i], dstlist[i]]))
  
  
  def testTransform():
  
      cs1 = c.ortho(0, 5, 10, 15, 0.5, 1)
!     checkTrans(vs, cs1, [0, 0, 0, 1, 1, 1], [10, 15, 5, 10.5, 16, 6])
  
      cs2 = c.scale(0, 2, 3, 4)
!     checkTrans(vs, cs2, [0, 0, 0, 1, 1, 1], [0, 0, 0, 2, 3, 4])
  
      cs3 = c.distort(0, 0, 0, 0.1, 0.1, 20, 5)
!     checkTrans(vs, cs3, [0, 0, 0, 0.001, 0.001, 1], [0, 0, 0, 0.02, 0.02, 1], 
delta=0.00001, alsoGL = 0)
  
      cs = c.concat(cs1, cs2)
!     checkTrans(vs, cs, [0, 0, 0, 1, 1, 1, 2, 2, 2], [10, 15, 5, 11, 18, 9, 
12, 21, 13])
  
  def checkInverse(c, cs):
      # unit cube
***************
*** 91,108 ****
  
        checkInverse(c, cs_dist)
  
- interp = zeros(1000, 'i')
- interp[0] = 999
- c1 = GLVobCoorder()
- c2 = GLVobCoorder()
- 
  def testInterpolateTranslation():
  
      cs_trans1 = c1.translate(0, 10, 10)
      cs_trans2 = c2.translate(0, 100, 20)
  
      interp[cs_trans1] = cs_trans2
!     checkInterp(c1, c2, interp, .5, cs_trans1, 
        [0, 0, 0],
        [55, 15, 0]
      )
--- 125,137 ----
  
        checkInverse(c, cs_dist)
  
  def testInterpolateTranslation():
  
      cs_trans1 = c1.translate(0, 10, 10)
      cs_trans2 = c2.translate(0, 100, 20)
  
      interp[cs_trans1] = cs_trans2
!     checkInterp(vs1, vs2, interp, .5, cs_trans1, 
        [0, 0, 0],
        [55, 15, 0]
      )
***************
*** 112,118 ****
      cs_anchor = c1.translate(0, 10, 0)
      cs_b1 = c1.buoyOnCircle(0, cs_anchor, 0, 0, 20, -20, 0, 1)
  
!     checkTrans(c1, cs_b1, 
        [0, 0, 0],
        [20, 0, 0],
        .1)
--- 141,147 ----
      cs_anchor = c1.translate(0, 10, 0)
      cs_b1 = c1.buoyOnCircle(0, cs_anchor, 0, 0, 20, -20, 0, 1)
  
!     checkTrans(vs1, cs_b1, 
        [0, 0, 0],
        [20, 0, 0],
        .1)
***************
*** 120,126 ****
      cs_b2t = c2.affineCoordsys(0, 0, 200, 200, 1, 0, 0, 1)
      interp[cs_b1] = cs_b2t
  
!     checkInterp(c1, c2, interp, .5, cs_b1, 
        [0, 0, 0],
        [110, 100, 0],
        .1)
--- 149,180 ----
      cs_b2t = c2.affineCoordsys(0, 0, 200, 200, 1, 0, 0, 1)
      interp[cs_b1] = cs_b2t
  
!     checkInterp(vs1, vs2, interp, .5, cs_b1, 
        [0, 0, 0],
        [110, 100, 0],
        .1)
+ 
+ def testNadir():
+ 
+     cs_nadir = c1.translate(0, 500, 1000)  
+     cs_center = c1.translate(0, 500, 0)
+     cs_rot = c1.nadirOrigin(cs_center, cs_nadir)
+ 
+     checkTrans(vs1, cs_rot,
+       [0, 0, 0,   0, 10, 0],
+       [500, 0, 0, 500, 10, 0],
+       .1)
+ 
+     c1.setTranslateParams(cs_center, 0, 1000)
+ 
+     checkTrans(vs1, cs_rot,
+       [0, 0, 0,   0, 10, 0],
+       [0, 1000, 0, 10, 1000, 0],
+       .1)
+ 
+ 
+ 
+ 
+ 
+ 
+ # : vim: set syntax=python :
Index: gzz/test/tools/gfx.py
diff -c gzz/test/tools/gfx.py:1.4 gzz/test/tools/gfx.py:1.5
*** gzz/test/tools/gfx.py:1.4   Wed Oct 16 03:46:39 2002
--- gzz/test/tools/gfx.py       Sun Oct 20 05:33:17 2002
***************
*** 26,32 ****
  
  def checkAvgColor(x, y, w, h, color, delta=10):
      real = getAvgColor(x, y, w, h)
!     msg = str((color, real))
  
      for i in range(0,3):
        if abs(color[i]-real[i]) > delta:
--- 26,32 ----
  
  def checkAvgColor(x, y, w, h, color, delta=10):
      real = getAvgColor(x, y, w, h)
!     msg = str((color, real, ":", x, y, w, h))
  
      for i in range(0,3):
        if abs(color[i]-real[i]) > delta:
***************
*** 35,41 ****
  
  def checkNotAvgColor(x, y, w, h, color, delta=10):
      real = getAvgColor(x, y, w, h)
!     msg = str((color, real))
  
      for i in range(0,3):
        if abs(color[i]-real[i]) > delta:
--- 35,41 ----
  
  def checkNotAvgColor(x, y, w, h, color, delta=10):
      real = getAvgColor(x, y, w, h)
!     msg = str((color, real, ":", x, y, w, h))
  
      for i in range(0,3):
        if abs(color[i]-real[i]) > delta:




reply via email to

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