I hacked my way around and came up with this: draws 40 windows across the top of the window. I could render to texture, and make one window, but would that be a lot better?
Code:
import viz
import math
class PanoWindowGroup:
def __init__(self, SubWins=40, windowHeight=0.3, vertFOV=90):
self.numSubWins = SubWins
self.winHeight = windowHeight
self.winFOV = 360.0/self.numSubWins
self.vFOV=vertFOV
self.sizeRat = 1.0/self.numSubWins
self.size = (self.sizeRat, self.winHeight)
self.subWinArr = []
#experimentally derived sub-window FOV ratio:
# self.subWinFOVrat = 4.3015/(pow(self.numSubWins,1.113))
for i in range(self.numSubWins):
scrPos = ((i*self.sizeRat),1.0)
direction = i*self.winFOV-60.0
print "Direction= ", direction
subWin = PanoSubWindow(scrPos, self.size, direction, self.winFOV, self.vFOV, self.subWinFOVrat )
self.subWinArr.append(subWin)
class PanoSubWindow:
def __init__(self, scrPos, sizer, direction, winFOV, vFOV, sWFR, viewPos=[0,0,0]):
print "Inputs: ", "scrPos= ", scrPos, " sizer= ", sizer, "direction= ",direction, "winFOV= ", winFOV, "vFOV= ", vFOV
self.vFOV = vFOV
self.size = sizer
self.subwindow = viz.addWindow(pos=scrPos, size=sizer)
self.subwindow.visible(0, viz.SCREEN)
self.subWinFOVrat = sWFR
self.subview = viz.addView()
self.subview.setPosition(viewPos)
self.subview.setEuler([direction,0,0])
self.subwindow.setView(self.subview)
# self.subwindow.fov(self.vFOV, self.subWinFOVrat)
self.subwindow.fov(self.vFOV, 0.075)