Thread: Wide-angle view
View Single Post
  #5  
Old 08-20-2009, 09:05 PM
Brett Lindberg Brett Lindberg is offline
Member
 
Join Date: Jul 2008
Posts: 18
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)
Reply With Quote