[Bf-extensions-cvs] [3599066] master: Node Wrangler: Add Viewer Focus (from Sebastian Koenig)

Greg Zaal noreply at git.blender.org
Mon Nov 17 16:14:47 CET 2014


Commit: 3599066a4b9eb27b34a22069ee36ab0be39c2572
Author: Greg Zaal
Date:   Mon Nov 17 17:10:57 2014 +0200
Branches: master
https://developer.blender.org/rBA3599066a4b9eb27b34a22069ee36ab0be39c2572

Node Wrangler: Add Viewer Focus (from Sebastian Koenig)

In the compositor, double click on the backdrop image to set the tile center of Viewer nodes to that point.

===================================================================

M	node_efficiency_tools.py

===================================================================

diff --git a/node_efficiency_tools.py b/node_efficiency_tools.py
index 79071e9..f36046f 100644
--- a/node_efficiency_tools.py
+++ b/node_efficiency_tools.py
@@ -18,8 +18,8 @@
 
 bl_info = {
     "name": "Node Wrangler (aka Nodes Efficiency Tools)",
-    "author": "Bartek Skorupa, Greg Zaal",
-    "version": (3, 18),
+    "author": "Bartek Skorupa, Greg Zaal, Sebastian Koenig",
+    "version": (3, 19),
     "blender": (2, 72, 0),
     "location": "Node Editor Properties Panel or Ctrl-Space",
     "description": "Various tools to enhance and speed up node-based workflow",
@@ -3048,6 +3048,64 @@ class NWAddMultipleImages(Operator, ImportHelper):
         return {'FINISHED'}
 
 
+class NWViewerFocus(bpy.types.Operator):
+    """Set the viewer tile center to the mouse position"""
+    bl_idname = "node.nw_viewer_focus"
+    bl_label = "Viewer Focus"
+
+    x = bpy.props.IntProperty()
+    y = bpy.props.IntProperty()
+
+    @classmethod
+    def poll(cls, context):
+        return nw_check(context) and context.space_data.tree_type == 'CompositorNodeTree'
+
+    def execute(self, context):
+        return {'FINISHED'}
+
+    def invoke(self, context, event):
+        render = context.scene.render
+        space = context.space_data
+        percent = render.resolution_percentage*0.01
+        
+        for n in bpy.context.scene.node_tree.nodes:
+            if n.type == "VIEWER":
+                self.x = event.mouse_region_x
+                self.y = event.mouse_region_y
+
+                region_x=context.region.width
+                region_y=context.region.height
+
+                region_center_x=region_x/2
+                region_center_y=region_y/2
+
+                rel_region_mouse_x=region_x-self.x
+                rel_region_mouse_y=region_y-self.y
+                
+                bd_x = render.resolution_x*percent*space.backdrop_zoom
+                bd_y = render.resolution_y* percent*space.backdrop_zoom
+
+                backdrop_center_x=(bd_x/2)-space.backdrop_x
+                backdrop_center_y=(bd_y/2)-space.backdrop_y
+
+                margin_x = region_center_x-backdrop_center_x
+                margin_y = region_center_y-backdrop_center_y
+                
+                absolute_x_max = margin_x+bd_x
+                absolute_y_max = margin_y+bd_y
+
+                abs_mouse_x = (self.x-margin_x)/bd_x
+                abs_mouse_y = (self.y-margin_y)/bd_y
+
+                rel_bd_x = (bd_x-rel_region_mouse_x)
+                rel_bd_y = (bd_y-rel_region_mouse_y)
+
+                n.center_x = abs_mouse_x
+                n.center_y = abs_mouse_y
+
+        return self.execute(context)
+
+
 #
 #  P A N E L
 #
@@ -3826,182 +3884,184 @@ def bgreset_menu_func(self, context):
 #
 
 addon_keymaps = []
-# kmi_defs entry: (identifier, key, CTRL, SHIFT, ALT, props, nice name)
+# kmi_defs entry: (identifier, key, action, CTRL, SHIFT, ALT, props, nice name)
 # props entry: (property name, property value)
 kmi_defs = (
     # MERGE NODES
     # NWMergeNodes with Ctrl (AUTO).
-    (NWMergeNodes.bl_idname, 'NUMPAD_0', True, False, False,
+    (NWMergeNodes.bl_idname, 'NUMPAD_0', 'PRESS', True, False, False,
         (('mode', 'MIX'), ('merge_type', 'AUTO'),), "Merge Nodes (Automatic)"),
-    (NWMergeNodes.bl_idname, 'ZERO', True, False, False,
+    (NWMergeNodes.bl_idname, 'ZERO', 'PRESS', True, False, False,
         (('mode', 'MIX'), ('merge_type', 'AUTO'),), "Merge Nodes (Automatic)"),
-    (NWMergeNodes.bl_idname, 'NUMPAD_PLUS', True, False, False,
+    (NWMergeNodes.bl_idname, 'NUMPAD_PLUS', 'PRESS', True, False, False,
         (('mode', 'ADD'), ('merge_type', 'AUTO'),), "Merge Nodes (Add)"),
-    (NWMergeNodes.bl_idname, 'EQUAL', True, False, False,
+    (NWMergeNodes.bl_idname, 'EQUAL', 'PRESS', True, False, False,
         (('mode', 'ADD'), ('merge_type', 'AUTO'),), "Merge Nodes (Add)"),
-    (NWMergeNodes.bl_idname, 'NUMPAD_ASTERIX', True, False, False,
+    (NWMergeNodes.bl_idname, 'NUMPAD_ASTERIX', 'PRESS', True, False, False,
         (('mode', 'MULTIPLY'), ('merge_type', 'AUTO'),), "Merge Nodes (Multiply)"),
-    (NWMergeNodes.bl_idname, 'EIGHT', True, False, False,
+    (NWMergeNodes.bl_idname, 'EIGHT', 'PRESS', True, False, False,
         (('mode', 'MULTIPLY'), ('merge_type', 'AUTO'),), "Merge Nodes (Multiply)"),
-    (NWMergeNodes.bl_idname, 'NUMPAD_MINUS', True, False, False,
+    (NWMergeNodes.bl_idname, 'NUMPAD_MINUS', 'PRESS', True, False, False,
         (('mode', 'SUBTRACT'), ('merge_type', 'AUTO'),), "Merge Nodes (Subtract)"),
-    (NWMergeNodes.bl_idname, 'MINUS', True, False, False,
+    (NWMergeNodes.bl_idname, 'MINUS', 'PRESS', True, False, False,
         (('mode', 'SUBTRACT'), ('merge_type', 'AUTO'),), "Merge Nodes (Subtract)"),
-    (NWMergeNodes.bl_idname, 'NUMPAD_SLASH', True, False, False,
+    (NWMergeNodes.bl_idname, 'NUMPAD_SLASH', 'PRESS', True, False, False,
         (('mode', 'DIVIDE'), ('merge_type', 'AUTO'),), "Merge Nodes (Divide)"),
-    (NWMergeNodes.bl_idname, 'SLASH', True, False, False,
+    (NWMergeNodes.bl_idname, 'SLASH', 'PRESS', True, False, False,
         (('mode', 'DIVIDE'), ('merge_type', 'AUTO'),), "Merge Nodes (Divide)"),
-    (NWMergeNodes.bl_idname, 'COMMA', True, False, False,
+    (NWMergeNodes.bl_idname, 'COMMA', 'PRESS', True, False, False,
         (('mode', 'LESS_THAN'), ('merge_type', 'MATH'),), "Merge Nodes (Less than)"),
-    (NWMergeNodes.bl_idname, 'PERIOD', True, False, False,
+    (NWMergeNodes.bl_idname, 'PERIOD', 'PRESS', True, False, False,
         (('mode', 'GREATER_THAN'), ('merge_type', 'MATH'),), "Merge Nodes (Greater than)"),
-    (NWMergeNodes.bl_idname, 'NUMPAD_PERIOD', True, False, False,
+    (NWMergeNodes.bl_idname, 'NUMPAD_PERIOD', 'PRESS', True, False, False,
         (('mode', 'MIX'), ('merge_type', 'ZCOMBINE'),), "Merge Nodes (Z-Combine)"),
     # NWMergeNodes with Ctrl Alt (MIX or ALPHAOVER)
-    (NWMergeNodes.bl_idname, 'NUMPAD_0', True, False, True,
+    (NWMergeNodes.bl_idname, 'NUMPAD_0', 'PRESS', True, False, True,
         (('mode', 'MIX'), ('merge_type', 'ALPHAOVER'),), "Merge Nodes (Alpha Over)"),
-    (NWMergeNodes.bl_idname, 'ZERO', True, False, True,
+    (NWMergeNodes.bl_idname, 'ZERO', 'PRESS', True, False, True,
         (('mode', 'MIX'), ('merge_type', 'ALPHAOVER'),), "Merge Nodes (Alpha Over)"),
-    (NWMergeNodes.bl_idname, 'NUMPAD_PLUS', True, False, True,
+    (NWMergeNodes.bl_idname, 'NUMPAD_PLUS', 'PRESS', True, False, True,
         (('mode', 'ADD'), ('merge_type', 'MIX'),), "Merge Nodes (Color, Add)"),
-    (NWMergeNodes.bl_idname, 'EQUAL', True, False, True,
+    (NWMergeNodes.bl_idname, 'EQUAL', 'PRESS', True, False, True,
         (('mode', 'ADD'), ('merge_type', 'MIX'),), "Merge Nodes (Color, Add)"),
-    (NWMergeNodes.bl_idname, 'NUMPAD_ASTERIX', True, False, True,
+    (NWMergeNodes.bl_idname, 'NUMPAD_ASTERIX', 'PRESS', True, False, True,
         (('mode', 'MULTIPLY'), ('merge_type', 'MIX'),), "Merge Nodes (Color, Multiply)"),
-    (NWMergeNodes.bl_idname, 'EIGHT', True, False, True,
+    (NWMergeNodes.bl_idname, 'EIGHT', 'PRESS', True, False, True,
         (('mode', 'MULTIPLY'), ('merge_type', 'MIX'),), "Merge Nodes (Color, Multiply)"),
-    (NWMergeNodes.bl_idname, 'NUMPAD_MINUS', True, False, True,
+    (NWMergeNodes.bl_idname, 'NUMPAD_MINUS', 'PRESS', True, False, True,
         (('mode', 'SUBTRACT'), ('merge_type', 'MIX'),), "Merge Nodes (Color, Subtract)"),
-    (NWMergeNodes.bl_idname, 'MINUS', True, False, True,
+    (NWMergeNodes.bl_idname, 'MINUS', 'PRESS', True, False, True,
         (('mode', 'SUBTRACT'), ('merge_type', 'MIX'),), "Merge Nodes (Color, Subtract)"),
-    (NWMergeNodes.bl_idname, 'NUMPAD_SLASH', True, False, True,
+    (NWMergeNodes.bl_idname, 'NUMPAD_SLASH', 'PRESS', True, False, True,
         (('mode', 'DIVIDE'), ('merge_type', 'MIX'),), "Merge Nodes (Color, Divide)"),
-    (NWMergeNodes.bl_idname, 'SLASH', True, False, True,
+    (NWMergeNodes.bl_idname, 'SLASH', 'PRESS', True, False, True,
         (('mode', 'DIVIDE'), ('merge_type', 'MIX'),), "Merge Nodes (Color, Divide)"),
     # NWMergeNodes with Ctrl Shift (MATH)
-    (NWMergeNodes.bl_idname, 'NUMPAD_PLUS', True, True, False,
+    (NWMergeNodes.bl_idname, 'NUMPAD_PLUS', 'PRESS', True, True, False,
         (('mode', 'ADD'), ('merge_type', 'MATH'),), "Merge Nodes (Math, Add)"),
-    (NWMergeNodes.bl_idname, 'EQUAL', True, True, False,
+    (NWMergeNodes.bl_idname, 'EQUAL', 'PRESS', True, True, False,
         (('mode', 'ADD'), ('merge_type', 'MATH'),), "Merge Nodes (Math, Add)"),
-    (NWMergeNodes.bl_idname, 'NUMPAD_ASTERIX', True, True, False,
+    (NWMergeNodes.bl_idname, 'NUMPAD_ASTERIX', 'PRESS', True, True, False,
         (('mode', 'MULTIPLY'), ('merge_type', 'MATH'),), "Merge Nodes (Math, Multiply)"),
-    (NWMergeNodes.bl_idname, 'EIGHT', True, True, False,
+    (NWMergeNodes.bl_idname, 'EIGHT', 'PRESS', True, True, False,
         (('mode', 'MULTIPLY'), ('merge_type', 'MATH'),), "Merge Nodes (Math, Multiply)"),
-    (NWMergeNodes.bl_idname, 'NUMPAD_MINUS', True, True, False,
+    (NWMergeNodes.bl_idname, 'NUMPAD_MINUS', 'PRESS', True, True, False,
         (('mode', 'SUBTRACT'), ('merge_type', 'MATH'),), "Merge Nodes (Math, Subtract)"),
-    (NWMergeNodes.bl_idname, 'MINUS', True, True, False,
+    (NWMergeNodes.bl_idname, 'MINUS', 'PRESS', True, True, False,
         (('mode', 'SUBTRACT'), ('merge_type', 'MATH'),), "Merge Nodes (Math, Subtract)"),
-    (NWMergeNodes.bl_idname, 'NUMPAD_SLASH', True, True, False,
+    (NWMergeNodes.bl_idname, 'NUMPAD_SLASH', 'PRESS', True, True, False,
         (('mode', 'DIVIDE'), ('merge_type', 'MATH'),), "Merge Nodes (Math, Divide)"),
-    (NWMergeNodes.bl_idname, 'SLASH', True, True, False,
+    (NWMergeNodes.bl_idname, 'SLASH', 'PRESS', True, True, False,
         (('mode', 'DIVIDE'), ('merge_type', 'MATH'),), "Merge Nodes (Math, Divide)"),
-    (NWMergeNodes.bl_idname, 'COMMA', True, True, False,
+    (NWMergeNodes.bl_idname, 'COMMA', 'PRESS', True, True, False,
         (('mode', 'LESS_THAN'), ('merge_type', 'MATH'),), "Merge Nodes (Math, Less than)"),
-    (NWMergeNodes.bl_idname, 'PERIOD', True, True, False,
+    (NWMergeNodes.bl_idname, 'PERIOD', 'PRESS', True, True, False,
  

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list