johannes2 |
08-19-2010 07:11 AM |
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]
|