[Bf-extensions-cvs] [6c1bcbe7] master: xedit: partial code update for 2.80

NBurn noreply at git.blender.org
Thu Mar 28 06:25:35 CET 2019


Commit: 6c1bcbe77e453a6061565461d40fdc10d714f448
Author: NBurn
Date:   Thu Mar 28 01:25:19 2019 -0400
Branches: master
https://developer.blender.org/rBAC6c1bcbe77e453a6061565461d40fdc10d714f448

xedit: partial code update for 2.80

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

M	exact_edit/xedit_set_meas.py

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

diff --git a/exact_edit/xedit_set_meas.py b/exact_edit/xedit_set_meas.py
index b1501fd9..f7cdd20f 100644
--- a/exact_edit/xedit_set_meas.py
+++ b/exact_edit/xedit_set_meas.py
@@ -25,12 +25,14 @@ import bpy
 import bmesh
 import bgl
 import blf
+import gpu
 from mathutils import geometry, Euler, Quaternion, Vector
 from bpy_extras import view3d_utils
 from bpy_extras.view3d_utils import location_3d_to_region_2d as loc3d_to_reg2d
 from bpy_extras.view3d_utils import region_2d_to_vector_3d as reg2d_to_vec3d
 from bpy_extras.view3d_utils import region_2d_to_location_3d as reg2d_to_loc3d
 from bpy_extras.view3d_utils import region_2d_to_origin_3d as reg2d_to_org3d
+from gpu_extras.batch import batch_for_shader
 
 # "Constant" values
 (
@@ -87,33 +89,33 @@ def editmode_refresh():
 def backup_blender_settings():
     backup = [
         deepcopy(bpy.context.tool_settings.use_snap),
-        deepcopy(bpy.context.tool_settings.snap_element),
+        deepcopy(bpy.context.tool_settings.snap_elements),
         deepcopy(bpy.context.tool_settings.snap_target),
-        deepcopy(bpy.context.space_data.pivot_point),
-        deepcopy(bpy.context.space_data.transform_orientation),
-        deepcopy(bpy.context.space_data.show_manipulator),
+        deepcopy(bpy.context.tool_settings.transform_pivot_point),
+        deepcopy(bpy.context.scene.transform_orientation_slots[0].type),
+        #deepcopy(bpy.context.space_data.show_manipulator),
         deepcopy(bpy.context.scene.cursor.location)]
     return backup
 
 
 def init_blender_settings():
     bpy.context.tool_settings.use_snap = False
-    bpy.context.tool_settings.snap_element = 'VERTEX'
+    bpy.context.tool_settings.snap_elements = {'VERTEX'}
     bpy.context.tool_settings.snap_target = 'CLOSEST'
-    bpy.context.space_data.pivot_point = 'ACTIVE_ELEMENT'
-    bpy.context.space_data.transform_orientation = 'GLOBAL'
-    bpy.context.space_data.show_manipulator = False
+    bpy.context.tool_settings.transform_pivot_point = 'ACTIVE_ELEMENT'
+    bpy.context.scene.transform_orientation_slots[0].type = 'GLOBAL'
+    #bpy.context.space_data.show_manipulator = False
     return
 
 
 def restore_blender_settings(backup):
     bpy.context.tool_settings.use_snap = deepcopy(backup[0])
-    bpy.context.tool_settings.snap_element = deepcopy(backup[1])
+    bpy.context.tool_settings.snap_elements = deepcopy(backup[1])
     bpy.context.tool_settings.snap_target = deepcopy(backup[2])
-    bpy.context.space_data.pivot_point = deepcopy(backup[3])
-    bpy.context.space_data.transform_orientation = deepcopy(backup[4])
-    bpy.context.space_data.show_manipulator = deepcopy(backup[5])
-    bpy.context.scene.cursor.location = deepcopy(backup[6])
+    bpy.context.tool_settings.transform_pivot_point = deepcopy(backup[3])
+    bpy.context.scene. transform_orientation_slots[0].type = deepcopy(backup[4])
+    #bpy.context.space_data.show_manipulator = deepcopy(backup[5])
+    bpy.context.scene.cursor.location = deepcopy(backup[5])
     return
 
 
@@ -230,23 +232,30 @@ class MenuHandler:
         font_id = 0
         blf.size(font_id, self.tsize, self.dpi)
         # draw title
-        bgl.glColor4f(*self.dis_colr)
         blf.position(font_id, self.titlco[0], self.titlco[1], 0)
+        blf.color(font_id, *self.dis_colr)
         blf.draw(font_id, self.title)
         # draw menu
         if menu_visible and menu is not None:
             for i in range(menu.cnt):
-                bgl.glColor4f(*menu.txtcolrs[i])
                 blf.position(font_id, menu.tcoords[i][0], menu.tcoords[i][1], 0)
+                blf.color(font_id, *menu.txtcolrs[i])
                 blf.draw(font_id, menu.texts[i])
 
             # draw arrow
+            '''
             bgl.glEnable(bgl.GL_BLEND)
             bgl.glColor4f(*self.act_colr)
             bgl.glBegin(bgl.GL_LINE_LOOP)
             for p in menu.arrows[menu.active]:
                 bgl.glVertex2f(*p)
             bgl.glEnd()
+            '''
+            shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
+            batch = batch_for_shader(shader, 'LINES', {"pos": menu.arrows[menu.active]})
+            shader.bind()
+            shader.uniform_float("color", self.act_colr)
+            batch.draw(shader)
 
 
 def test_reset_prev_popup_inputs():
@@ -336,7 +345,7 @@ class XEditMeasureInputPanel(bpy.types.Operator):
         # split row into 3 cells: 1st 1/3, 2nd 75% of 2/3, 3rd 25% of 2/3
         split = row.split(align=False)
         split.label(text="Measurement")
-        split = row.split(percentage=0.75, align=False)
+        split = row.split(factor=0.75, align=False)
         split.prop(self, 'float_new_meas', text="")
         split.operator("object.store_meas_inp_op", text="Store")
         row = self.layout.row(align=True)
@@ -420,26 +429,41 @@ class ViewButton():
             else:
                 self.ms_over = False
             # draw button box
+            '''
             bgl.glColor4f(*colr)
             bgl.glBegin(bgl.GL_LINE_STRIP)
             for coord in self.coords:
                 bgl.glVertex2f(coord[0], coord[1])
             bgl.glVertex2f(self.coords[0][0], self.coords[0][1])
             bgl.glEnd()
+            '''
+            shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
+            batch = batch_for_shader(shader, 'LINES', {"pos": self.coords})
+            shader.bind()
+            shader.uniform_float("color", colr)
+            batch.draw(shader)
+
             # draw outline around button box
             if highlight_mouse and self.ms_over:
-                bgl.glColor4f(*self.colr_off)
+                #bgl.glColor4f(*self.colr_off)
                 HO = 4  # highlight_mouse offset
                 offs = (-HO, -HO), (-HO, HO), (HO, HO), (HO, -HO)
-                bgl.glBegin(bgl.GL_LINE_STRIP)
+                #bgl.glBegin(bgl.GL_LINE_STRIP)
+                off_co = []
                 for i, coord in enumerate(self.coords):
-                    bgl.glVertex2f(coord[0] + offs[i][0], coord[1] + offs[i][1])
-                bgl.glVertex2f(self.coords[0][0] + offs[0][0], self.coords[0][1] + offs[0][1])
-                bgl.glEnd()
+                    off_co.append((coord[0] + offs[i][0], coord[1] + offs[i][1]))
+                off_co.append((self.coords[0][0] + offs[0][0], self.coords[0][1] + offs[0][1]))
+
+                shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
+                batch = batch_for_shader(shader, 'LINES', {"pos": off_co})
+                shader.bind()
+                shader.uniform_float("color", self.colr_off)
+                batch.draw(shader)
+
             # draw button text
-            bgl.glColor4f(*self.txt_colr)
-            blf.size(font_id, self.txt_sz, self.dpi)
             blf.position(font_id, self.txt_co[0], self.txt_co[1], 0)
+            blf.size(font_id, self.txt_sz, self.dpi)
+            blf.color(font_id, *self.txt_colr)
             blf.draw(font_id, self.txt)
         else:
             self.ms_over = False
@@ -627,7 +651,7 @@ def add_select(self):
                     elif type(sel) is bmesh.types.BMFace:
                         sel_verts = sel.verts
                     for v in sel_verts:
-                        v_co3d = m_w * v.co
+                        v_co3d = m_w @ v.co
                         add_pt(self, v_co3d)
                         if self.pt_cnt > 2:
                             exit_loop = True
@@ -659,7 +683,7 @@ def add_select_multi(self):
                     elif type(sel) is bmesh.types.BMFace:
                         sel_verts = sel.verts
                     for v in sel_verts:
-                        v_co3d = m_w * v.co
+                        v_co3d = m_w @ v.co
                         self.multi_tmp.try_add(v_co3d)
                         if self.multi_tmp.cnt == self.multi_tmp.max_cnt:
                             exit_loop = True
@@ -731,7 +755,7 @@ def new_select_multi(self):
                 elif type(sel) is bmesh.types.BMFace:
                     sel_verts = sel.verts
                 for v in sel_verts:
-                    v_co3d = m_w * v.co
+                    v_co3d = m_w @ v.co
                     self.multi_tmp.try_add(v_co3d)
                     if self.multi_tmp.cnt == self.multi_tmp.max_cnt:
                         exit_loop = True
@@ -776,7 +800,7 @@ def find_closest_point(loc):
         if obj.type == 'MESH':
             if len(obj.data.vertices) > 0:
                 for v in obj.data.vertices:
-                    v_co3d = obj.matrix_world * v.co
+                    v_co3d = obj.matrix_world @ v.co
                     v_co2d = loc3d_to_reg2d(region, rv3d, v_co3d)
                     if v_co2d is not None:
                         dist2d = (loc - v_co2d).length
@@ -785,7 +809,7 @@ def find_closest_point(loc):
                             closest = v_co3d
     return closest
 
-
+'''
 def draw_pt_2d(pt_co, pt_color, pt_size):
     if pt_co is not None:
         bgl.glEnable(bgl.GL_BLEND)
@@ -795,8 +819,19 @@ def draw_pt_2d(pt_co, pt_color, pt_size):
         bgl.glVertex2f(*pt_co)
         bgl.glEnd()
     return
+'''
 
+def draw_pt_2d(pt_co, pt_color, pt_size):
+    if pt_co is not None:
+        coords = [pt_co]
+        bgl.glPointSize(pt_size)
+        shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
+        batch = batch_for_shader(shader, 'POINTS', {"pos": coords})
+        shader.bind()
+        shader.uniform_float("color", pt_color)
+        batch.draw(shader)
 
+'''
 def draw_line_2d(pt_co_1, pt_co_2, pt_color):
     if None not in (pt_co_1, pt_co_2):
         bgl.glEnable(bgl.GL_BLEND)
@@ -807,6 +842,16 @@ def draw_line_2d(pt_co_1, pt_co_2, pt_color):
         bgl.glVertex2f(*pt_co_2)
         bgl.glEnd()
     return
+'''
+
+def draw_line_2d(pt_co_1, pt_co_2, pt_color):
+    if None not in (pt_co_1, pt_co_2):
+        coords = [pt_co_1, pt_co_2]
+        shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
+        batch = batch_for_shader(shader, 'LINES', {"pos": coords})
+        shader.bind()
+        shader.uniform_float("color", pt_color)
+        batch.draw(shader)
 
 
 def closest_to_point(pt, pts):
@@ -1138,39 +1183,39 @@ def find_correct_rot(ref_pts, pt_cnt):
 
 
 # Takes 2D Pivot

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list