mapCameraController.py (1905B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\camera\mapCameraController.py 2 from eve.client.script.ui.camera.baseCameraController import BaseCameraController 3 from eve.client.script.ui.camera.cameraUtil import GetZoomDz, CheckInvertZoom 4 from carbonui.uicore import uicore 5 from eve.client.script.ui.shared.mapView.mapViewSettings import IsAbstractModeActive 6 import geo2 7 8 class MapCameraController(BaseCameraController): 9 kPan = 5.0 10 11 def __init__(self, mapViewID = None, cameraID = None): 12 self.cameraID = cameraID 13 self.mapViewID = mapViewID 14 BaseCameraController.__init__(self) 15 16 def GetViewport(self): 17 return self.GetCamera().GetViewport() 18 19 def OnMouseWheel(self, *args): 20 camera = self.GetCamera() 21 if camera: 22 dz = GetZoomDz() 23 camera.Zoom(dz * 0.0005) 24 25 def OnMouseMove(self, *args): 26 camera = self.GetCamera() 27 if uicore.uilib.leftbtn and uicore.uilib.rightbtn: 28 camera.Zoom(-CheckInvertZoom(uicore.uilib.dy) * 0.005) 29 elif uicore.uilib.leftbtn: 30 if IsAbstractModeActive(self.mapViewID): 31 self.PanAxis(camera) 32 else: 33 k = 0.01 34 camera.Orbit(k * self.GetMouseDX(), k * self.GetMouseDY()) 35 elif uicore.uilib.rightbtn: 36 if IsAbstractModeActive(self.mapViewID): 37 self.PanAxis(camera) 38 else: 39 self.Pan(camera) 40 41 def Pan(self, camera): 42 k = self.kPan 43 camera.Pan(-k * self.GetMouseDX(), k * self.GetMouseDY(), 0) 44 45 def PanAxis(self, camera): 46 k = self.kPan 47 dx = k * self.GetMouseDX() 48 dy = k * self.GetMouseDY() 49 xAxis = camera.GetXAxis() 50 yAxis = geo2.Vec3Cross(xAxis, camera.upDirection) 51 camera.PanAxis(xAxis, -dx) 52 camera.PanAxis(yAxis, -dy)