/[gzz]/gzz/test/gzz/gfx/gl/glvobcoorder.test
ViewVC logotype

Diff of /gzz/test/gzz/gfx/gl/glvobcoorder.test

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.11 by tjl, Sat Oct 19 14:29:54 2002 UTC revision 1.12 by tjl, Sun Oct 20 09:33:17 2002 UTC
# Line 1  Line 1 
1  needGL()  needGL()
2    
3    from gzz.vob import *
4    from java.awt import Color
5    
6  from gzz.gfx.gl import GLVobCoorder, GL  from gzz.gfx.gl import GLVobCoorder, GL
7    from gzz.gfx.gl import GL, GLRen, GLCache, PaperMill
8  from jarray import array, zeros  from jarray import array, zeros
9    from test.tools.gfx import *
10    
11    vs = getvs()
12    c = vs.coords
13    
14    interp = zeros(1000, 'i')
15    interp[0] = 999
16    vs1 = getvs()
17    c1 = vs1.coords
18    vs2 = getvs()
19    c2 = vs2.coords
20    
21  def checkTrans(c, cs, srclist, dstlist, delta=0):  def checkTrans(vs, cs, srclist, dstlist, delta=0, alsoGL = 1):
22      src = array(srclist, 'f')      src = array(srclist, 'f')
23      dst = zeros(len(src), 'f')      dst = zeros(len(src), 'f')
24      c.transformPoints3(cs, src, dst)      vs.coords.transformPoints3(cs, src, dst)
25      for i in range(0, len(src)):      for i in range(0, len(src)):
26          failIf(abs(dst[i]-dstlist[i]) > delta, str([srclist, dstlist, dst, i, dst[i], dstlist[i]]))          failIf(abs(dst[i]-dstlist[i]) > delta, str([srclist, dstlist, dst, i, dst[i], dstlist[i]]))
27        if alsoGL:
28            for i in range(0, len(src), 3):
29                vs.map.clear()
30                vs.map.put(SolidBgVob(Color.red))
31                d = """
32                    PointSize 3
33                    Color 1 1 1
34                    Begin POINTS
35                    Vertex %s %s %s
36                    End
37                """ % (src[i], src[i+1], src[i+2])
38                print "TEST: ",d
39                vs.map.put(GLCache.getCallListCoorded(d), cs)
40                render(vs)
41                checkNotAvgColor(
42                    int(dstlist[i])-1, int(dstlist[i+1])-1,
43                    3, 3, (255, 0, 0), delta=50)
44    
45  def checkInterp(c1, c2, i, fract, cs, srclist, dstlist, delta=0):              
46    
47    def checkInterp(vs1, vs2, i, fract, cs, srclist, dstlist, delta=0):
48      src = array(srclist, 'f')      src = array(srclist, 'f')
49      dst = zeros(len(src), 'f')      dst = zeros(len(src), 'f')
50      failUnless(c1.transformPoints3_interp(i, c2, fract, 0, cs, src, dst))      failUnless(vs1.coords.transformPoints3_interp(i, vs2.coords,
51                        fract, 0, cs, src, dst))
52      for i in range(0, len(src)):      for i in range(0, len(src)):
53          failIf(abs(dst[i]-dstlist[i]) > delta, str([srclist, dstlist, dst, i, dst[i], dstlist[i]]))          failIf(abs(dst[i]-dstlist[i]) > delta, str([srclist, dstlist, dst, i, dst[i], dstlist[i]]))
54    
55    
56  def testTransform():  def testTransform():
     c = GLVobCoorder()  
57    
58      cs1 = c.ortho(0, 5, 10, 15, 0.5, 1)      cs1 = c.ortho(0, 5, 10, 15, 0.5, 1)
59      checkTrans(c, cs1, [0, 0, 0, 1, 1, 1], [10, 15, 5, 10.5, 16, 6])      checkTrans(vs, cs1, [0, 0, 0, 1, 1, 1], [10, 15, 5, 10.5, 16, 6])
60    
61      cs2 = c.scale(0, 2, 3, 4)      cs2 = c.scale(0, 2, 3, 4)
62      checkTrans(c, cs2, [0, 0, 0, 1, 1, 1], [0, 0, 0, 2, 3, 4])      checkTrans(vs, cs2, [0, 0, 0, 1, 1, 1], [0, 0, 0, 2, 3, 4])
63    
64      cs3 = c.distort(0, 0, 0, 0.1, 0.1, 20, 5)      cs3 = c.distort(0, 0, 0, 0.1, 0.1, 20, 5)
65      checkTrans(c, cs3, [0, 0, 0, 0.001, 0.001, 1], [0, 0, 0, 0.02, 0.02, 1], delta=0.00001)      checkTrans(vs, cs3, [0, 0, 0, 0.001, 0.001, 1], [0, 0, 0, 0.02, 0.02, 1], delta=0.00001, alsoGL = 0)
66    
67      cs = c.concat(cs1, cs2)      cs = c.concat(cs1, cs2)
68      checkTrans(c, cs, [0, 0, 0, 1, 1, 1, 2, 2, 2], [10, 15, 5, 11, 18, 9, 12, 21, 13])      checkTrans(vs, cs, [0, 0, 0, 1, 1, 1, 2, 2, 2], [10, 15, 5, 11, 18, 9, 12, 21, 13])
69    
70  def checkInverse(c, cs):  def checkInverse(c, cs):
71      # unit cube      # unit cube
# Line 91  def testInverses(): Line 125  def testInverses():
125    
126          checkInverse(c, cs_dist)          checkInverse(c, cs_dist)
127    
 interp = zeros(1000, 'i')  
 interp[0] = 999  
 c1 = GLVobCoorder()  
 c2 = GLVobCoorder()  
   
128  def testInterpolateTranslation():  def testInterpolateTranslation():
129    
130      cs_trans1 = c1.translate(0, 10, 10)      cs_trans1 = c1.translate(0, 10, 10)
131      cs_trans2 = c2.translate(0, 100, 20)      cs_trans2 = c2.translate(0, 100, 20)
132    
133      interp[cs_trans1] = cs_trans2      interp[cs_trans1] = cs_trans2
134      checkInterp(c1, c2, interp, .5, cs_trans1,      checkInterp(vs1, vs2, interp, .5, cs_trans1,
135          [0, 0, 0],          [0, 0, 0],
136          [55, 15, 0]          [55, 15, 0]
137      )      )
# Line 112  def testInterpolateBuoy(): Line 141  def testInterpolateBuoy():
141      cs_anchor = c1.translate(0, 10, 0)      cs_anchor = c1.translate(0, 10, 0)
142      cs_b1 = c1.buoyOnCircle(0, cs_anchor, 0, 0, 20, -20, 0, 1)      cs_b1 = c1.buoyOnCircle(0, cs_anchor, 0, 0, 20, -20, 0, 1)
143    
144      checkTrans(c1, cs_b1,      checkTrans(vs1, cs_b1,
145          [0, 0, 0],          [0, 0, 0],
146          [20, 0, 0],          [20, 0, 0],
147          .1)          .1)
# Line 120  def testInterpolateBuoy(): Line 149  def testInterpolateBuoy():
149      cs_b2t = c2.affineCoordsys(0, 0, 200, 200, 1, 0, 0, 1)      cs_b2t = c2.affineCoordsys(0, 0, 200, 200, 1, 0, 0, 1)
150      interp[cs_b1] = cs_b2t      interp[cs_b1] = cs_b2t
151    
152      checkInterp(c1, c2, interp, .5, cs_b1,      checkInterp(vs1, vs2, interp, .5, cs_b1,
153          [0, 0, 0],          [0, 0, 0],
154          [110, 100, 0],          [110, 100, 0],
155          .1)          .1)
156    
157    def testNadir():
158    
159        cs_nadir = c1.translate(0, 500, 1000)  
160        cs_center = c1.translate(0, 500, 0)
161        cs_rot = c1.nadirOrigin(cs_center, cs_nadir)
162    
163        checkTrans(vs1, cs_rot,
164            [0, 0, 0,   0, 10, 0],
165            [500, 0, 0, 500, 10, 0],
166            .1)
167    
168        c1.setTranslateParams(cs_center, 0, 1000)
169    
170        checkTrans(vs1, cs_rot,
171            [0, 0, 0,   0, 10, 0],
172            [0, 1000, 0, 10, 1000, 0],
173            .1)
174    
175    
176    
177    
178    
179    
180    # : vim: set syntax=python :

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26