[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