[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz gfx/demo/xupdf.py gzz/view/xubuoy.py
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] gzz gfx/demo/xupdf.py gzz/view/xubuoy.py |
Date: |
Thu, 03 Oct 2002 03:33:59 -0400 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Tuomas J. Lukka <address@hidden> 02/10/03 03:33:58
Modified files:
gfx/demo : xupdf.py
Added files:
gzz/view : xubuoy.py
Log message:
Rudimentary split of xupdf
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/xupdf.py.diff?tr1=1.41&tr2=1.42&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/view/xubuoy.py?rev=1.1
Patches:
Index: gzz/gfx/demo/xupdf.py
diff -c gzz/gfx/demo/xupdf.py:1.41 gzz/gfx/demo/xupdf.py:1.42
*** gzz/gfx/demo/xupdf.py:1.41 Wed Oct 2 14:24:34 2002
--- gzz/gfx/demo/xupdf.py Thu Oct 3 03:33:58 2002
***************
*** 77,416 ****
space.cellTexter.setEnfilade(cell, p)
cells.append(cell)
! globalcursor = None
! globalspan = None
!
! # Paper coordinates of current focus
! globalx = 0
! globaly = 0
!
! globalusefancypaper = 1
!
! globalshowtessel = 0
!
! def moveToCell(cell, nx=1, ny=1):
! global globalcursor, globalx, globaly, globalview
! global globalforw, globalback, globalspan
!
! # Check type
! if 1: # PDF
! globalview = getCellPDFView(cell)
!
! globalcursor = cell
! globalx, globaly = nx, ny
!
! content = space.cellTexter.getEnfilade(cell, None)
! globalspan = enf2span(content)
! globalforw = xuindexer.getForwardIndex().getMatches(content)
! globalback = xuindexer.getBackwardIndex().getMatches(content)
!
! print "Xu: ",globalforw,globalback
!
! java.lang.System.gc()
! AbstractUpdateManager.chg()
!
! def getCellPDFView(cell):
! return pagespanview.CellPDFView(cell)
!
!
!
! def globalkey(key):
! global globalusefancypaper, globalshowtessel
! if '1' <= key <= '9':
! moveToCell(cells[int(key)-1])
! elif key == 'l':
! pagespanview.globalLOD = 1 - pagespanview.globalLOD
! print "Lod: ",pagespanview.globalLOD
! AbstractUpdateManager.chg()
! elif key == 'p':
! globalusefancypaper = not globalusefancypaper
! elif key == ',':
! pagespanview.globalseedoffs -= 1
! moveToCell(globalcursor)
! elif key == '.':
! pagespanview.globalseedoffs += 1
! moveToCell(globalcursor)
! elif key == 't':
! globalshowtessel = not globalshowtessel
!
! def checkGlobalCoords():
! global globalx, globaly
! if globalx < 0: globalx = 0
! if globaly < 0: globaly = 0
! if globalx > globalview.scaledsize[0]: globalx = globalview.scaledsize[0]
! if globaly > globalview.scaledsize[1]: globaly = globalview.scaledsize[1]
!
! fps_text = GLRen.createHorizText2(getFont(), "FOO", 1, 1, 1, 1)
! GL.setDebugVar("JNI.fps", 1)
! # Show the intended screen size
! def bg(vs):
! putnoc(vs, background((0.3,0.5,0.4)))
! putnoc(vs, getDListNocoords("""
! Disable TEXTURE_2D
! LineWidth 2
! Color 0 0 0
! Begin LINE_LOOP
! Vertex 0 0
! Vertex 0 %(h)s
! Vertex %(w)s %(h)s
! Vertex %(w)s 0
! End
! Enable TEXTURE_2D
! """ % { "w": screensize[0], "h": screensize[1] } ) )
! fps = vs.coords.coordsys(0, 10, 10, 20, 1.5, 1.5)
! vs.matcher.add(fps, "FPS")
! vs.map.put(fps_text, fps, 0)
!
!
! lineconn = GLRen.createLineConnector(0,0)
!
! class XuPDFBuoy:
! def __init__(self, linkindex, link):
! self.link = link
! self.linkindex = linkindex
! self.linkspan = link[linkindex].getList()[0]
! self.mat = enfoverlap.getMatches(link[linkindex])
! l = [m for m in self.mat]
! if len(l) == 0:
! self.cell = None
! return
! m = l[0]
! print m
! self.cell = m
! self.view = getCellPDFView(self.cell)
!
! p = self.linkspan.getLocation()
! d = self.linkspan.getSize()
! o = self.linkspan.offset()
! # print "page, loc, size: ", linkspan.offset(), p, d
! # print "P0, P1: ",p0, p1
!
! self.p0 = self.view.paperpoint(o, p.x, p.y)
! self.p1 = self.view.paperpoint(o, p.x+d.width, p.y+d.height)
! self.pctr = [0.5 * (self.p0[i] + self.p1[i]) for i in range(0,2)]
!
! self.eye = 0.2
! self.buoyscale = 400
!
! def add(self, vs, anchorX, anchorY, importance, floater,
! maincs = None):
! if not self.cell:
! return
! cell = self.cell
!
! cs1 = floater.addBuoy(anchorX, anchorY, importance, self.cell.getId(),
0, 0)
! cs1_zoom= vs.coords.distort(cs1, 0, 0, self.eye, self.eye,
self.buoyscale, self.buoyscale)
! vs.matcher.add(cs1_zoom, cell.getId()+"__bulg")
!
! cs1_trans = vs.coords.translateXY(cs1_zoom, -self.pctr[0],
-self.pctr[1])
! # cs1_trans = vs.coords.translateXY(cs1_zoom, 0, 0)
! vs.matcher.add(cs1_trans, cell.getId()+"__trans")
!
! self.cliprect = (self.p0[0], self.p0[1], self.p1[0], self.p1[1])
!
! self.view.placepapers(vs, cs1_trans, cliprect = self.cliprect,
! fancy = globalusefancypaper, showTessel = globalshowtessel)
!
! # Then, the xu link connector
! if maincs != None:
! mainlinkspan = self.link[1-self.linkindex].getList()[0]
! # XXX if cell not everything...
! mainpage = mainlinkspan.offset() - globalspan.offset()
! mainp = mainlinkspan.getLocation()
! mainoffsp = globalspan.getLocation()
! maind = mainlinkspan.getSize()
! mainpoint = globalview.paperpoint(mainpage,
mainp.x-mainoffsp.x+0.5*maind.width,
!
mainp.y-mainoffsp.y+0.5*maind.height)
!
! main_end_cs = vs.coords.coordsys(maincs, -20, mainpoint[0],
mainpoint[1], 0, 0)
!
! link_end_cs = vs.coords.coordsys(cs1_trans, -20, self.pctr[0],
self.pctr[1], 0, 0)
!
! vs.matcher.add(main_end_cs,
"link"+str(self.link)+str(self.linkindex))
! vs.matcher.add(link_end_cs,
"link"+str(self.link)+str(1-self.linkindex))
!
! print "lineconn!"
! putnoc(vs, getDListNocoords("""
! PushAttrib ENABLE_BIT
! Disable TEXTURE_2D
! LineWidth 5
! Enable BLEND
! Color 0 0 0 0.6
! """))
! vs.map.put(lineconn, main_end_cs, link_end_cs)
! putnoc(vs, getDListNocoords("""
! PopAttrib
! """))
!
! def hit(self, coords, point3):
! return self.view.hitClip(coords, point3, self.cliprect)
!
! if 1:
! selectPaper = Paper()
! selectPaper.setNPasses(1)
! pas = selectPaper.getPass(0)
! pas.setSetupcode("""
! PushAttrib ENABLE_BIT COLOR_BUFFER_BIT
! Disable TEXTURE_2D
! Disable DEPTH_TEST
! Disable STENCIL_TEST
! Color 1 1 1
! Enable BLEND
! BlendFunc ONE_MINUS_DST_COLOR ZERO
! """)
! pas.setTeardowncode("""
! PopAttrib
! """)
! selectPaperQuad = GLRen.createPaperQuad(selectPaper, -1,-1,1,1, 1)
!
! class Mode:
! def __init__(self, **args):
! self.__dict__ = args
!
! class XuPDFScene_PDFContext:
! def __init__(self):
! self.modes = [
! Mode(
! mag=(screensize[1]*1.6,screensize[1]/10),
! context=1,
! movefocus=0,
! eye = 0.2,
! ),
! Mode(
! mag=(screensize[1],screensize[1]), # full-screen
! context=0,
! movefocus=1,
! eye = 0.2,
! ),
! Mode(
! mag=(screensize[1]*2,screensize[1]/2), # full-screen
! context=0,
! movefocus=1,
! eye = 0.2,
! ),
! ]
!
! self.ctrx = screensize[0]/2
! self.ctry = screensize[1]/2
! self.rad = screensize[1]/2
! self.nadir = NadirAngler(self.ctrx, screensize[1]*2)
! self.clip = 0
! self.selectCS = None
! self.currentvs = None
! def key(self, key):
! global currentScene
! if key == 'm':
! rotatelist(self.modes)
! if key == 'c':
! self.clip = not self.clip
! def mouse(self, ev):
! global globalx, globaly
! if ev.getID() == ev.MOUSE_CLICKED:
! # scale = 0.01
! # globalx += (ev.getX() - screensize[0]/2) * scale
! # globaly += (ev.getY() - screensize[1]/2) * scale
! point = array([ev.getX(), ev.getY(), 0], 'f')
! for b in self.buoys:
! h = b.hit(self.currentvs.coords, point)
! if h:
! print "BUOY HIT!\n"
! moveToCell(b.cell, *h)
! AbstractUpdateManager.chg()
! return
! h = globalview.hitClip(self.currentvs.coords, point, None)
! if h:
! globalx,globaly = h
! else:
! print "Didn't hit anything"
! checkGlobalCoords()
! print "Mouse ",globalx, globaly
! AbstractUpdateManager.chg()
! elif ev.getID() == ev.MOUSE_PRESSED:
! self.pressx = ev.getX()
! self.pressy = ev.getY()
! self.origpt = None
! return
! elif ev.getID() == ev.MOUSE_DRAGGED:
! if not self.selectCS:
! self.selectCS =
self.currentvs.coords.affineCoordsys(self.papercs, 0, 0, 0, 1, 0, 0, 1)
! self.currentvs.map.put(selectPaperQuad, self.selectCS, 0)
! if not self.origpt:
! point = array([self.pressx, self.pressy, 0], 'f')
! dst = zeros(3, 'f')
! self.currentvs.coords.inverseTransformPoints3(self.papercs,
point, dst)
! self.corner1 = (dst[0], dst[1])
! point = array([ev.getX(), ev.getY(), 0], 'f')
! dst = zeros(3, 'f')
! self.currentvs.coords.inverseTransformPoints3(self.papercs, point,
dst)
! self.corner2 = (dst[0], dst[1])
! ctr = (0.5*(self.corner1[0]+self.corner2[0]),
! 0.5 *(self.corner1[1]+self.corner2[1]))
! s = (0.5*(self.corner1[0]-self.corner2[0]),
! 0.5 *(self.corner1[1]-self.corner2[1]))
! self.currentvs.coords.setAffineParams(self.selectCS, 0,
! ctr[0], ctr[1], s[0], 0, 0, s[1])
! # print "paint: ",ctr, s
! AbstractUpdateManager.chg()
! replaceNewScene(self.currentvs)
!
!
! else:
! print "Unused mouse: ",ev
! def scene(self, vs):
! bg(vs)
! bf = effects.NadirCircleFloater_NoAnchor(vs, (self.ctrx, self.ctry),
self.rad,
! self.nadir, 1)
! bfforw = effects.NadirCircleFloater_NoAnchor(vs, (self.ctrx,
self.ctry), self.rad,
! self.nadir, -1)
! print "Context"
!
! cs1 = bf.addCentralBuoy(globalcursor.getId())
!
!
! if self.modes[0].movefocus:
! focusy_at = globaly * screensize[1]
! else:
! focusy_at = self.ctry
!
! # The buoy cs is centered
! focusy_at -= self.ctry
!
! eye = self.modes[0].eye
! cs1_zoom= vs.coords.distort(cs1, 0, focusy_at,
! eye, eye, *(self.modes[0].mag))
! vs.matcher.add(cs1_zoom, globalcursor.getId()+"__bulg")
!
! cs1_trans = vs.coords.translateXY(cs1_zoom,
! -globalx, -globaly + focusy_at)
! vs.matcher.add(cs1_trans, globalcursor.getId()+"__trans")
!
! if self.clip:
! clip = (-0.2+globalx, -0.2+globaly, 0.2+globalx, 0.2+globaly)
! self.cliprect = clip
! else:
! w = globalview.papersize[0]
! extrax = 0.1
! extray = 0.1
! clip = (0-extrax, -extray, w+extrax, 1+extray)
! self.cliprect = None
!
! globalview.placepapers(vs, cs1_trans, cliprect = clip,
! fancy = globalusefancypaper, showTessel = globalshowtessel)
!
! self.buoys = []
!
! if self.modes[0].context:
! for forwlink in globalforw:
! b = XuPDFBuoy(1, (getattr(forwlink, "from"), forwlink.to))
! b.add(vs, 0, 0, 1, bfforw, maincs = cs1_trans)
! self.buoys.append(b)
! for backlink in globalback:
! b = XuPDFBuoy(0,(getattr(backlink,"from"), backlink.to))
! b.add(vs, 0, 0, 1, bf, maincs = cs1_trans)
! self.buoys.append(b)
! self.currentvs = vs
! self.selectCS = None
! self.papercs = cs1_trans
currentScene = XuPDFScene_PDFContext()
moveToCell(cells[1])
--- 77,83 ----
space.cellTexter.setEnfilade(cell, p)
cells.append(cell)
! execfile("gzz/view/xubuoy.py")
currentScene = XuPDFScene_PDFContext()
moveToCell(cells[1])
- [Gzz-commits] gzz gfx/demo/xupdf.py gzz/view/xubuoy.py,
Tuomas J. Lukka <=