View Single Post
  #1  
Old 08-19-2010, 07:11 AM
johannes2 johannes2 is offline
Member
 
Join Date: Apr 2007
Posts: 7
Warning mouse() -> Set mouse() of window

Hi,


I'm getting the following error-message - which is difficult to locate as it is inside quite a long file.

** WARNING: mouse() method of view class has been removed. Set mouse() of window instead

My guess: I'm using the vizcam.py file you provided me some years ago to implement different navigational behavior. I think it is in there.


See for the code-snippet below.
Thank you.

HTML Code:
[HTML]import viz
import vizmat
import math

###########################################
############# Pivot Camera ################
###########################################

#BEGIN_PANORAMA_EVENT = viz.eventid('BeginPanoramaEvent')
#END_PANORAMA_EVENT = viz.eventid('EndPanoramaEvent')

class PivotNavigate1(viz.EventClass):
	
	PAN_SPEED = 2.0
	ROTATE_SPEED = 90.0
	
	def __init__(self,view=0):
		viz.EventClass.__init__(self)

		self.__PanScale = 1.0
		self.__RotateScale = 1.0

		if not view:
			view = viz.get(viz.MAIN_VIEWPOINT)
		
		self.__view = view
		self.__view.mouse(0)
		
		self.__center = [0,0,0]
		self.__distance = 2
		self.__lastmousepos = [0,0]
		
		self.__enabled = 1
		
		self.callback(viz.TIMER_EVENT,self.__ontimer)
		self.callback(viz.MOUSEWHEEL_EVENT,self.__onmousewheel)
		self.callback(viz.MOUSEDOWN_EVENT,self.__onmousedown)
		self.starttimer(0,0,viz.FOREVER)
		
	def __ontimer(self,num):
		mouse = viz.mousepos()
		if self.__enabled:
			button = viz.buttonstate()
			if viz.iskeydown(viz.KEY_RIGHT):
				#self.__view.rotate(self.__view.get(viz.HEAD_EULER)[0]+1,self.__view.get(viz.HEAD_EULER)[1],self.__view.get(viz.HEAD_EULER)[2])
				self.rotateRight((0.03)*self.__RotateScale*self.ROTATE_SPEED)
			if viz.iskeydown(viz.KEY_LEFT):
				#self.__view.rotate(self.__view.get(viz.HEAD_EULER)[0]-1,self.__view.get(viz.HEAD_EULER)[1],self.__view.get(viz.HEAD_EULER)[2])
				self.rotateRight((-0.03)*self.__RotateScale*self.ROTATE_SPEED)
			if viz.iskeydown(viz.KEY_SHIFT_L):
				 if button & viz.MOUSEBUTTON_LEFT:					
					panFactor = self.__PanScale*self.PAN_SPEED*self.__distance
					panX = -(mouse[0] - self.__lastmousepos[0])*panFactor
					panY = -(mouse[1] - self.__lastmousepos[1])*panFactor
					self.pan(panX,panY,0)
				
			elif viz.iskeydown(viz.KEY_TAB):
				 if button & viz.MOUSEBUTTON_LEFT:
					self.rotateRight((mouse[0] - self.__lastmousepos[0])*self.__RotateScale*self.ROTATE_SPEED)
					self.rotateUp(-(mouse[1] - self.__lastmousepos[1])*self.__RotateScale*self.ROTATE_SPEED)
		self.__lastmousepos = mouse
		
	def __onmousewheel(self,dir):
		if not self.__enabled:
			return
		self.pan(0,0,0.2*  dir)
#		distance = dir * (vizmat.Distance(self.__view.get(viz.HEAD_POS),self.__center) / 8.0)
#		self.__view.move(0,0,distance)
#		self.__distance -= distance
#	def __onmousewheel(self,dir):
#		distance = vizmat.Distance(self.__view.get(viz.HEAD_POS),self.__center) / 8.0
#		self.__view.move(0,0,dir*distance)
		
	def __onmousedown(self,button):
		if not self.__enabled:
			return
		#if button == viz.MOUSEBUTTON_LEFT and viz.iskeydown(viz.KEY_SHIFT_L):
		if button == viz.MOUSEBUTTON_LEFT and viz.iskeydown(viz.KEY_SHIFT_R):
			info = viz.pick(1)
			if info.intersected:
				self.setCenter(info.intersectPoint)

	def enable(self):
		self.__enabled = 1
		
	def disable(self):
		self.__enabled = 0

	def sensitivity(self,rotateScale,panScale):
		self.__RotateScale = rotateScale
		self.__PanScale = panScale

	def rotateRight(self,amount):
		oldPos = self.__view.get(viz.HEAD_POS)
		self.__view.translate(self.__center)
		self.__view.rotate(0,1,0,amount,viz.HEAD_ORI,viz.RELATIVE_WORLD)
#		self.__view.move(0,0,-self.__distance)
		self.__view.translate(oldPos)
		
	def rotateUp(self,amount):
		oldPos = self.__view.get(viz.HEAD_POS)
		self.__view.translate(self.__center)
		self.__view.rotate(1,0,0,amount,viz.HEAD_ORI,viz.RELATIVE_LOCAL)
		pitch = self.__view.get(viz.HEAD_PITCH)
		if abs(pitch) > 85.0:
			if pitch > 0:
				self.__view.rotate(1,0,0,85.0-pitch,viz.HEAD_ORI,viz.RELATIVE_LOCAL)
			else:
				self.__view.rotate(1,0,0,-85-pitch,viz.HEAD_ORI,viz.RELATIVE_LOCAL)
#		self.__view.move(0,0,-self.__distance)
		self.__view.translate(oldPos)
	def pan(self,x,y=0,z=0):		
		self.__view.translate(self.__center)
		self.__view.move(x,y,z)
		self.__center = self.__view.get(viz.HEAD_POS)
#		self.__view.move(0,0,-self.__distance)
		
	def setCenter(self,x,y=0,z=0):
		if viz._islist(x):
			center = x
		else:
			center = [x,y,z]
		diff = viz.Vector(center)
		diff = diff - self.__center
		pos = self.__view.get(viz.HEAD_POS)
		self.__view.translate(pos[0]+diff[0],pos[1]+diff[1],pos[2]+diff[2])
		self.__center = center

	def updateCenter(self):
		oldPos = self.__view.get(viz.HEAD_POS)
		self.__view.move(0,0,self.__distance)
		self.__center = self.__view.get(viz.HEAD_POS)
		self.__view.translate(oldPos)
		
	def updateDistance(self):
		self.__distance = vizmat.Distance(self.__view.get(viz.HEAD_POS),self.__center)
		self.__view.lookat(self.__center)
		
	def panCameraTo(self,x,y=0,z=0):
		self.__view.translate(x,y,z)
		self.updateCenter()

	def rotateCameraTo(self,x,y=0,z=0):
		self.__view.translate(x,y,z)
		self.updateDistance()
[/HTML]

Last edited by johannes2; 08-19-2010 at 07:11 AM. Reason: spelling mistake
Reply With Quote