git clone https://git.lucas.co/hou-control.git
keycam: add viewer event callback to automatically update aspect ratio on resize
viewer_states/keycam.py | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/viewer_states/keycam.py b/viewer_states/keycam.py
index 4be4c41..52b8bd4 100644
--- a/viewer_states/keycam.py
+++ b/viewer_states/keycam.py
@@ -57,14 +57,25 @@ class State(object):
self.guides.update()
self.hud = Hud(self)
self.hud.update()
+
+ # Register viewer event callback for resizing
+ self.scene_viewer.hou_tab.addEventCallback(self._onViewerEvent)
def onDraw(self, kwargs):
self.guides.draw(kwargs)
def onExit(self, kwargs):
+ # Cleanup callback
+ self.scene_viewer.hou_tab.removeEventCallback(self._onViewerEvent)
for viewport in self.scene_viewer.allViewports():
viewport.lockCameraToView(False)
+ def _onViewerEvent(self, **kwargs):
+ event_type = kwargs.get('event_type')
+ if event_type == hou.sceneViewerEvent.SizeChanged:
+ self.cam.fitAspectRatio()
+ self.guides.update()
+
def onKeyEvent(self, kwargs):
"""Keys are now handled via PluginHotkeyDefinitions and onMenuAction."""
return False