(self, event)
| 153 | |
| 154 | @exportRpc("viewport.mouse.zoom.wheel") |
| 155 | def updateZoomFromWheel(self, event): |
| 156 | if "Start" in event["type"]: |
| 157 | self.getApplication().InvokeEvent("StartInteractionEvent") |
| 158 | |
| 159 | renderWindow = self.getView(event["view"]) |
| 160 | if renderWindow and "spinY" in event: |
| 161 | zoomFactor = 1.0 - event["spinY"] / 10.0 |
| 162 | |
| 163 | camera = renderWindow.GetRenderers().GetFirstRenderer().GetActiveCamera() |
| 164 | fp = camera.GetFocalPoint() |
| 165 | pos = camera.GetPosition() |
| 166 | delta = [fp[i] - pos[i] for i in range(3)] |
| 167 | camera.Zoom(zoomFactor) |
| 168 | |
| 169 | pos2 = camera.GetPosition() |
| 170 | camera.SetFocalPoint([pos2[i] + delta[i] for i in range(3)]) |
| 171 | renderWindow.Modified() |
| 172 | |
| 173 | if "End" in event["type"]: |
| 174 | self.getApplication().InvokeEvent("EndInteractionEvent") |
| 175 | |
| 176 | |
| 177 | # ============================================================================= |
nothing calls this directly
no test coverage detected