|  | 
| 
			 
			#1  
			
			
			
			
			
		 | |||
| 
 | |||
| 
				
				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()Last edited by johannes2; 08-19-2010 at 07:11 AM. Reason: spelling mistake | 
| 
			 
			#2  
			
			
			
			
			
		 | |||
| 
 | |||
| 
			
			The command used there for turning off standard mouse navigation has been removed. You can replace: Code: self.__view.mouse(0) Code: viz.mouse(viz.OFF) | 
|  | 
| 
 | 
 | 
|  Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post | 
| how to remove velocity when mouse is disabled? | jvacare1 | Vizard | 2 | 02-18-2010 10:25 AM | 
| Navigating an avatar using mouse position(2D) in 3D environment | james007 | Vizard | 1 | 10-16-2009 11:29 AM | 
| Using Window Buttons | Uttama_vizard | Vizard | 2 | 01-16-2008 10:25 AM | 
| Warning: CullVisitor | enkeli | Vizard | 1 | 06-05-2006 02:04 PM | 
| Warning in the output window | Adam | Vizard | 4 | 11-17-2005 07:08 AM |